ID |
Date |
Author |
Topic |
Subject |
51
|
09 Mar 2005 |
Ryu Sawada | Bug Report | default values in romeConfig.xml |
Recently, default values of steering parameters in romeConfig.xml are always 0. They are not as same
as values in SPFieldInitialization of definition XML file. |
50
|
09 Mar 2005 |
Ryu Sawada | Bug Report | Unanalyzed events |
In online mode, ROME often stops before finishing to analyze all events of runs.
When it happens, gAnalyzer->GetCurrentEventNumber() starts not from 1 but from analyzed event
number at previous run. And unanalyzed events at the previous run are mixed with the new run.
In mana.c of MIDAS, I found a part to wait until all events in buffers are analyzed when analyzer gets
TR_STOP signal, while ROME does not have.
I personaly don't need that all events are analyzed, but it is really problem that data of two runs are
mixed.
One way is to take similar way as midas analyzer, and the another way is just discard unanalyzed
events. |
49
|
06 Mar 2005 |
Ryu Sawada | Suggestion | Cint mode on online |
We sometimes want to use trees in ROME.
One way is to read it by TSocket connection. But treees are larger than histograms in general, and it
takes time to download.
And I need to make shared library when I changed the structure of folders.
So, I want to propose is to prepare Cint mode with continueing analysis in background.
Currently, when user press "i", ROME stops analysis and goes into cint mode. This is good for offline
mode, but this is not good for online mode. So I propose that when user press "I", ROME goes cint
mode, and continue analysis in background.
Then we can see Trees at run time.
In addition, If you are going to implement this feature, please prepare short way to call trees in cint mode.
If I understand correctly, the way to call a tree is like,
gAnalyzer->GetTreeObjectAt(0)->GetTree()->Draw("");
but it is too long to use in interactively and we need to remeber the number of trees.
gAnalyzer->GetTree("trigger")->Draw(); is better. |
48
|
28 Feb 2005 |
Ryu Sawada | Info | Run number in online mode |
We usually use ROME framework without specifying run number in romeConfig.xml and command line
in online mode.
Then it warns that "Error in <TArrayI::At>: index 0 out of bounds" when gROME-
>GetRunNumberStringAt(runNumberString,0) is called in ROMEEventLoop::Initialize. |
47
|
05 Feb 2005 |
Ryu Sawada | Bug Report | small problem of XML definition file |
About <EventHeader> in xml definition file.
In description page in ROME homepage, It is wirtten that <EventId> specifies the field.
But It seems that 'd' shoud be capital. |
46
|
28 Jan 2005 |
Matthias Schneebeli | Suggestion | messaging system |
> > I implemented the cm_msg calls.
>
> You should implement a central "message dispatcher". So all errors etc. should go to someting linke
> rome_msg(). If compiled with midas online support, rome_msg() should call cm_msg(). If rome is compiled
> without midas libraries, a printf() there would be enough. If someone uses rome in a different
> environment, only can function needs to be changed to reroute all messages to somewhere else.
Of course, that's the way I implemented that. |
45
|
27 Jan 2005 |
Stefan Ritt | Suggestion | messaging system |
> I implemented the cm_msg calls.
You should implement a central "message dispatcher". So all errors etc. should go to someting linke
rome_msg(). If compiled with midas online support, rome_msg() should call cm_msg(). If rome is compiled
without midas libraries, a printf() there would be enough. If someone uses rome in a different
environment, only can function needs to be changed to reroute all messages to somewhere else. |
44
|
27 Jan 2005 |
Matthias Schneebeli | Suggestion | messaging system |
> About warnings,errors and informations output in online mode.
>
> Probably we lauch ROME from web interface of MIDAS. And we don't see console of ROME.
> But we need to hear what ROME is saying.
>
> Normally midas analyzer and other applications use cm_msg function. This function shows messages
> proper place like web interface or ODBEdit windows and so on.
>
> I do not have much knowledge about it. Stefan may know better way.
I implemented the cm_msg calls. |
43
|
25 Jan 2005 |
Matthias Schneebeli | Info | small problems |
> These are not critical, but someone may complain some day.
>
> 1. ROMEBuilder.cpp:2315
> I wonder if maxNumberOfTasks should be maxNumberOfSteering.
> // count steering parameters
> 2316 numOfSteering[iTask]++;
> 2317 currentNumberOfSteerings = numOfSteering[iTask];
> 2318 if (numOfSteering[iTask]>=maxNumberOfTasks+1) {
> 2319 cout << "Maximal number of steering parameters reached : " << (max 2319
> NumberOfTasks+1) << " !" << endl;
> 2320 cout << "Terminating program." << endl;
> 2321 return false;
> 2322 }
>
> 2. ROMEBuilder.cpp:2437
> I wonder if maxNumberOfSteering should be maxNumberOfSteeringField.
> if (numOfSteerFields[iTask][actualSteerIndex]>=maxNumberOfSteer
> 2437 ing) {
> 2438 cout << "Maximal number of steering parameter fields in task 2438 '" <<
> taskName[iTask].Data() << "' reached : " << maxNumberOfSteering < 2438 < " !" << endl;
> 2439 cout << "Terminating program." << endl;
> 2440 return false;
> 2441 }
>
>
> 3. ROMEBuilder.cpp:6327
> I wonder if ROOTSYS should be ROOTSYS/include.
> 6327 #if defined( _MSC_VER )
> 6328 buffer.AppendFormatted("-I%%ROMESYS%%/include ");
> 6329 buffer.AppendFormatted("-I%%ROOTSYS%% ");
> 6330 #endif
> 6331 #if defined ( __linux__ ) || defined ( __APPLE__ )
> 6332 buffer.AppendFormatted("-I$ROMESYS/include ");
> 6333 buffer.AppendFormatted("-I$ROOTSYS ");
> 6334 #endif
>
> 4. ROMEBuilder.cpp:6806
> in ROMEBuilder::isNumber, there are some missing number types such as.
> Double32_t,Long64_t,ULong64_t
>
> 5. ROMEBuilder.cpp:6821
> in ROMEBuilder::isFloatingType, there are some missing floating types such as.
> Double32_t
Thanks |
42
|
24 Jan 2005 |
Ryu Sawada | Info | small problems |
These are not critical, but someone may complain some day.
1. ROMEBuilder.cpp:2315
I wonder if maxNumberOfTasks should be maxNumberOfSteering.
// count steering parameters
2316 numOfSteering[iTask]++;
2317 currentNumberOfSteerings = numOfSteering[iTask];
2318 if (numOfSteering[iTask]>=maxNumberOfTasks+1) {
2319 cout << "Maximal number of steering parameters reached : " << (max 2319
NumberOfTasks+1) << " !" << endl;
2320 cout << "Terminating program." << endl;
2321 return false;
2322 }
2. ROMEBuilder.cpp:2437
I wonder if maxNumberOfSteering should be maxNumberOfSteeringField.
if (numOfSteerFields[iTask][actualSteerIndex]>=maxNumberOfSteer
2437 ing) {
2438 cout << "Maximal number of steering parameter fields in task 2438 '" <<
taskName[iTask].Data() << "' reached : " << maxNumberOfSteering < 2438 < " !" << endl;
2439 cout << "Terminating program." << endl;
2440 return false;
2441 }
3. ROMEBuilder.cpp:6327
I wonder if ROOTSYS should be ROOTSYS/include.
6327 #if defined( _MSC_VER )
6328 buffer.AppendFormatted("-I%%ROMESYS%%/include ");
6329 buffer.AppendFormatted("-I%%ROOTSYS%% ");
6330 #endif
6331 #if defined ( __linux__ ) || defined ( __APPLE__ )
6332 buffer.AppendFormatted("-I$ROMESYS/include ");
6333 buffer.AppendFormatted("-I$ROOTSYS ");
6334 #endif
4. ROMEBuilder.cpp:6806
in ROMEBuilder::isNumber, there are some missing number types such as.
Double32_t,Long64_t,ULong64_t
5. ROMEBuilder.cpp:6821
in ROMEBuilder::isFloatingType, there are some missing floating types such as.
Double32_t |
41
|
20 Jan 2005 |
Ryu Sawada | Suggestion | headers of midas,xml2 and mysql |
> This is not so strong suggestion. I am just wondering.
>
> Currently ROME include headers of midas, xml2 and mysql.
> There are libraries for windows but no libraries for linux.
>
> I am afraid that there can be inconsequence between headers and libraries in futrue updates of these
> libraries, if compiler reads headers from rome/include instead of correct one.
>
> So, my suggestion is that move midas.h,libxml2 and mysql outside of header files search path for linux.
>
> for instance
> Make new directory rome/include/win.
> Put midas.h,libxml2 and mysql into it.
> Add $ROMESYS/include/win into header files search path in case of Windows.
>
>
> P.S.
> If midas.h is already very different from midas.h in MIDAS. This may be difficult.
I looked into gcc, then I found the header file which is found first is supposed to be used.
In ROME's case $(shell xml2-config --cflags) and $(shell mysql_config --cflags) are located before -I$(ROMESYS)/include/, so in principle
it is safe.
But about midas.h there still can be inconsequence, because -I$(ROMESYS)/include/ is located before -I$(MIDASSYS)/include/.
It this done on purpose to enable special features for ROME ?
---
One more thing. about libpaths.
If libpaths will be used only for specify the place where midas libraries were put. Followings can also work and more simple.
And I added midascflags, because to use same way as root,xml2 and mysql seems more beautiful.
And I moved -DHAVE_SQL and -DHAVE_MIDAS to sqlcflags and midascflags.
rootlibs := $(shell root-config --libs)
rootglibs := $(shell root-config --glibs)
rootcflags := $(shell root-config --cflags)
rootthreadlibs := -lThread
xmllibs := $(shell xml2-config --libs)
xmlcflags := $(shell xml2-config --cflags)
sqllibs := $(shell mysql_config --libs)
sqlcflags := $(shell mysql_config --cflags) -DHAVE_SQL
midaslibs := -L$(MIDASSYS)/lib -lmidas
midascflags := -I$(MIDASSYS)/include -DHAVE_MIDAS
clibs :=-lpthread -lHtml $(SYSLIBS)
clibs += -lutil
Libraries := $(libpaths) $(rootlibs) $(rootglibs) $(rootthreadlibs) $(xmllibs) $(clibs) $(sqllibs) $(midaslibs)
Flags := $(lpuserflags) $(rootcflags) $(xmlcflags) $(sqlcflags) $(midascflags)
Includes := -I$(ROMESYS)/include/ -I. -Iinclude/ -Iinclude/tasks/ -Iinclude/framework/ |
40
|
19 Jan 2005 |
Ryu Sawada | Suggestion | messaging system |
About warnings,errors and informations output in online mode.
Probably we lauch ROME from web interface of MIDAS. And we don't see console of ROME.
But we need to hear what ROME is saying.
Normally midas analyzer and other applications use cm_msg function. This function shows messages
proper place like web interface or ODBEdit windows and so on.
I do not have much knowledge about it. Stefan may know better way. |
39
|
19 Jan 2005 |
Ryu Sawada | Suggestion | headers of midas,xml2 and mysql |
This is not so strong suggestion. I am just wondering.
Currently ROME include headers of midas, xml2 and mysql.
There are libraries for windows but no libraries for linux.
I am afraid that there can be inconsequence between headers and libraries in futrue updates of these
libraries, if compiler reads headers from rome/include instead of correct one.
So, my suggestion is that move midas.h,libxml2 and mysql outside of header files search path for linux.
for instance
Make new directory rome/include/win.
Put midas.h,libxml2 and mysql into it.
Add $ROMESYS/include/win into header files search path in case of Windows.
P.S.
If midas.h is already very different from midas.h in MIDAS. This may be difficult. |
38
|
17 Jan 2005 |
Matthias Schneebeli | Bug Report | user input |
> After change of ROMEEventLoop.cpp 1.39, Program steerings don't work on Linux.
Sorry. |
37
|
16 Jan 2005 |
Ryu Sawada | Bug Report | user input |
After change of ROMEEventLoop.cpp 1.39, Program steerings don't work on Linux. |
36
|
12 Jan 2005 |
Ryu Sawada | Bug Report | invalid header |
When I built my application with romebuilder.
It complained like,
Error : File './/src/tasks/LPTXEGainCalib.cpp' has an invalid header !!!
Error : File './/src/tasks/LPTXETimeCalib.cpp' has an invalid header !!!
Error : File './/src/tasks/LPTUTTask.cpp' has an invalid header !!!
Headers looks like,
//// Author: Ryu Sawada
/////////////^@//////////////////////////////////////////////////////////////////
// //
Thre first time to build Just after I removed ^@, builder stopped warning.
But after that ^@ appeared again and builder starts warning.
I have several task files, but builder adds ^@ always these three files.
My source files are here.
cvs -d :ext:pc4466.psi.ch:/usr/local/cvsroot co lpframework |
35
|
11 Jan 2005 |
Matthias Schneebeli | Suggestion | user defined link in html file |
> I was asked to put change log of my rome application(LPframewok). I think the best place to put it is the
> html file which builder created. But of course to modify it is not good, because it will be overwritten by
> builder again.
>
> So, I want to propose to allow user to add links in the html file with the way like followings.
>
> (i) User defines links.
> ------ in LPframewok.xml ------
> <DocumentLinks>
> <DocumentLink>
> <Href>html/changelog.html</Href>
> <Text>Change log</Text>
> </DocumentLink>
> </DocumentLinks>
> -----------------------------------
>
> (ii)And html files looks like
> -----------------------------------
> Table of Contents
>
> • Introduction
> • Objects in the LPframework
> ? Tasks
> ? Folders
> ? Trees
> ? Midas Banks
> • Access Methods to Objects in the LPframework
> ? Folders
> ? Data Base
> ? Steering Parameters
> ? Histograms
> ? Midas Banks
> ? General
> • Class Overview
> • Links
> ? Change log
> -----------------------------------
>
> (iii)Users must write the target(html/changelog.html).
There will be a new link available "Additional Info" after "Class Overview".
This points to a file named "UserHTML.html" which can be modified by the user. |
34
|
10 Jan 2005 |
Matthias Schneebeli | Bug Report | long task description |
> When I made task description longer than about 80 characters. The description was not written in html
> file propery. It was shorten.
>
> I guess following lines in ROMEBuilder.cpp are relating to this.
>
>
> -----------
> pos = (char*)taskDescription[iTask].Data();
> lenTot = taskDescription[iTask].Length();
> while (pos-taskDescription[iTask].Data() < lenTot) {
> if (lenTot+(taskDescription[iTask].Data()-pos)<74)
> i=TMath::Min(75,lenTot);
> else for (i=74;pos[i]!=32&&i>0;i--) {}
> if (i<=0)
> i=TMath::Min(75,lenTot);
> pos[i] = 0;
> buffer.AppendFormatted("// %-74.74s \n",pos);
> pos = pos+i+1;
> }
done. thanks. |
33
|
10 Jan 2005 |
Matthias Schneebeli | Bug Report | long task description |
> When I made task description longer than about 80 characters. The description was not written in html
> file propery. It was shorten.
>
> I guess following lines in ROMEBuilder.cpp are relating to this.
>
>
> -----------
> pos = (char*)taskDescription[iTask].Data();
> lenTot = taskDescription[iTask].Length();
> while (pos-taskDescription[iTask].Data() < lenTot) {
> if (lenTot+(taskDescription[iTask].Data()-pos)<74)
> i=TMath::Min(75,lenTot);
> else for (i=74;pos[i]!=32&&i>0;i--) {}
> if (i<=0)
> i=TMath::Min(75,lenTot);
> pos[i] = 0;
> buffer.AppendFormatted("// %-74.74s \n",pos);
> pos = pos+i+1;
> }
done. thanks. |
32
|
09 Jan 2005 |
Ryu Sawada | Bug Report | long task description |
When I made task description longer than about 80 characters. The description was not written in html
file propery. It was shorten.
I guess following lines in ROMEBuilder.cpp are relating to this.
-----------
pos = (char*)taskDescription[iTask].Data();
lenTot = taskDescription[iTask].Length();
while (pos-taskDescription[iTask].Data() < lenTot) {
if (lenTot+(taskDescription[iTask].Data()-pos)<74)
i=TMath::Min(75,lenTot);
else for (i=74;pos[i]!=32&&i>0;i--) {}
if (i<=0)
i=TMath::Min(75,lenTot);
pos[i] = 0;
buffer.AppendFormatted("// %-74.74s \n",pos);
pos = pos+i+1;
} |