ID |
Date |
Author |
Topic |
Subject |
71
|
09 Apr 2005 |
Daniele Barbareschi | Bug Report | Compiling Builder |
I am Daniele Barbareschi, I am a Corrado Gatto's student
I work to interfacing between ALIROOT and MYSQL for CONSTANT CALIBRATION of
subdetector.
There's a bug in compiling...
NAME of file "ROMEXML.h,ROMEXML.cpp" in the ultimate version ROME is lowercase.
The gmake program return error.
Maybe ROMESQL too.
See you those files and similar.
D.B. |
70
|
07 Apr 2005 |
Ryu Sawada | Info | Compiler warning |
Followings are warning message from compiler, please check if they are correct.
When I changed line-490 like,
490 while ((obj = iterFolders->Next())) {
warning disappeared.
ROMEAnalyzer.cpp:490: warning: suggest parentheses around assignment used as truth value
//get folder names
485 TObject *obj;
486 TObjArray *names = new TObjArray(100);
487
488 TCollection *folders = folder->GetListOfFolders();
489 TIterator *iterFolders = folders->MakeIterator();
490 while (obj = iterFolders->Next()) {
491 ROMEString str;
492 str.SetFormatted("%s",obj->GetName());
493 names->Add(new TObjString(str.Data()));
494 }
495
ROMEString.cpp:74: warning: `int numberOfDigits' might be used uninitialized in this function
ROMEXMLDataBase.cpp:83: warning: `ROMEXML*xml' might be used uninitialized in this function |
69
|
03 Apr 2005 |
Ryu Sawada | Suggestion | user defined command line options |
This is not strong request, just a proposal because the same thing can be done by configuration file.
It may be useful if users can have his command line options.
For instance.
<CommandOptions>
<CommandOption>
<OptionFlag>m<OptionFlag>
<OptionName>isMC<OptionName>
<OptionType>Bool_t<OptionType>
<OptionInitialization>false<OptionInitialization>
</CommandOption>
<CommandOption>
<OptionFlag>t<OptionFlag>
<OptionName>TriggerType<OptionName>
<OptionType>Int_t<OptionType>
<OptionInitialization>0<OptionInitialization>
</COmmandOption>
</CommandOptions>
Then user can change the variable with command line option like
./megframework -m -t 2;
Then builder creates new method.
(Bool_t) MEGAnalyzer::GetisMC()
(Int_t) MEGAnalyzer::GetTriggerType() |
68
|
01 Apr 2005 |
Matthias Schneebeli | Info | Inportant !!! -> Changes in the user code requiered |
In the current cvs version of ROME several things have changed that require
changes in the user code.
- Most of the histogram parameters have been moved form the definition file to
the configuration file. Please consult the users guide.
- Database paths have also been moved to the configuration file. Furthermore
the format has changed for string replacements. It looks now like this :
<DataBasePath>"/AAA/BBB[0,%s]",/GSP/NumberOfBBB</DataBasePath>
For folders write : '/FolderName/FieldName'.
The format statement must always be %s!
- The tag 'InputDataFormat' has changed to 'DAQSystem' in the configuration
file.
- All bank access methods have to be accessed by gAnalyzer->GetMidas() not only
gAnalyzer.
Matthias |
67
|
30 Mar 2005 |
Matthias Schneebeli | Info | CVS_RSH |
> I recommended to my friend trying ROME, but he couldn't download it, because he didn't set CVS_RSH.
> There is no instruction for setting CVS_RSH in ROME download page.
>
> You had better to write about it.
Yes, thanks |
66
|
29 Mar 2005 |
Ryu Sawada | Suggestion | Input file format |
I am going to make a new ROME project to analyze MC data. Input file will be ROOT which is created by
h2root.
And my friend who is working on dark matter search at Columbia university in NY is going to use
ROME. His file format is special binary format.
If I understand correctly, currently ROME can read midas and ROOT format.
Midas file names are always assumed as "run99999.mid". (99999 is run number)
ROOT files need to have structure defined in definition xml file.
I guess this is not enough to analyze special binary format or ROOT files created by h2root.
What I propose is to allow users to have own daq class. It might be something like
<DAQs>
<DAQ>
<DAQName>daqname</DAQName>
</DAQ>
</DAQs>
Then builder creates [shortcut][daqname].h, [shortcut][daqname].cpp.
[shortcut][daqname] class inherits ROMEDAQSystem class, and users must fill GetTimeStamp(),
Initialize(), Connect(), ReadEvent(int event), Disconnect(), Termination()
When "InputDataFormat" in configuration xml file is "daqname" analyzer uses this class.
|
65
|
29 Mar 2005 |
Ryu Sawada | Info | Histograms |
It does not seem that fHistoNameTitleOverWritten,fHistoNameFolderTitleOverWritten and so on are not
initialized.
I'm afraid it is not safe
,because when ***OverWritten is "true" parameters are not supposed to be initialized.
In my case, framework tries to make a histogram whose number of bins is 1701143923.
This is my definition of the histogram. Do I need to add something?
<Histogram>
<HistName>hXeQsum</HistName>
<HistTitle>Qsum</HistTitle>
<HistFolderName>Xenon</HistFolderName>
<HistFolderTitle>Xenon</HistFolderTitle>
<HistType>TH1F</HistType>
<HistXNbins>4096</HistXNbins>
<HistXmin>0</HistXmin>
<HistXmax>5e5</HistXmax>
</Histogram> |
64
|
26 Mar 2005 |
Ryu Sawada | Bug Report | problem after changing xml library |
After changing xml library from libxml2 to mxml, examples (sample and MEG) can not be compiled.
My project does not work too. What is necessary to make it work? |
63
|
24 Mar 2005 |
Ryu Sawada | Info | CVS_RSH |
I recommended to my friend trying ROME, but he couldn't download it, because he didn't set CVS_RSH.
There is no instruction for setting CVS_RSH in ROME download page.
You had better to write about it. |
62
|
23 Mar 2005 |
Matthias Schneebeli | Bug Report | ResetFolders |
> > > In ROMEEventLoop.cpp::ReadEvent
> > > this->ResetFolders is called before fActiveDAQ->ReadEvent, so data in event headers are not updated
> > > properly.
> >
> > done
> I wonder if this is the reason why Jan couldn't read scaler events.
> Event ID was shifted by two events, so when scaler event comes, ROME can always recognize it as trigger events.
No the reason for Jan's problem was that rome never requested scaler events from the frontend. This is fixed now. |
61
|
23 Mar 2005 |
Matthias Schneebeli | Info | xmlwriter.h |
> I realized that some unix system distribution does not provide xmlwriter.h in standard libxml2-devel
> package.
>
> For instance, scientific linux (also PSI linux) does not.
> I installed it from source.
>
> Macintosh has xmlreader.h by default, and does not xmlwriter.h.
> I installed it by using FINK.
> (FINK is a unix package porter like CYGWIN.)
>
> Someone may ask about it someday.
> A problem is that compiler will find xmlwriter.h even if the system does not have it, because ROME has.
> This may make it hard that users find out the problem.
>
>
> How to install libxml2.
> ---- UNIX OS ----
> In most cases, to use standard way of the system is good. But some system does not provide xmlwriter.h. In this case you may need to
> install it from source.
> 1. download source from <a href="http://xmlsoft.org/">http://xmlsoft.org/</a>.
> 2. decompress it and go to created directory.
> 3. % ./configure [options as you like];
> 4. % make;
> 5. become super user, if you are going to install it in system.
> 6. % make install
>
> ---- MacOSX ----
> By default, Macintosh does not have xmlwriter.h. You can follow the same way as other UNIX OS. And other way is to use FINK. (I hope
> many users already installed it.)
> 1. install FINK (<a href="http://fink.sourceforge.net">http://fink.sourceforge.net</a>)
> 2. become super user.
> 3. apt-get update;
> 4. apt-get install libxml2 libxml2-shlibs libxml2-bin
> If you are goint to use also MySQL.
> 5. apt-get install mysql12-dev mysql12-shlibs
> (* package name can be changed in future, you may find it with "apt-cache search libxml2" or "apt-cache search mysql")
I have replaced libxml with mxml (written by Stefan) which is now included in the rome distribution.
So there's no install problem on linux anymore. |
60
|
21 Mar 2005 |
Ryu Sawada | Bug Report | ResetFolders |
> > In ROMEEventLoop.cpp::ReadEvent
> > this->ResetFolders is called before fActiveDAQ->ReadEvent, so data in event headers are not updated
> > properly.
>
> done
I wonder if this is the reason why Jan couldn't read scaler events.
Event ID was shifted by two events, so when scaler event comes, ROME can always recognize it as trigger events. |
59
|
21 Mar 2005 |
Matthias Schneebeli | 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.
done |
58
|
21 Mar 2005 |
Matthias Schneebeli | Bug Report | ResetFolders |
> In ROMEEventLoop.cpp::ReadEvent
> this->ResetFolders is called before fActiveDAQ->ReadEvent, so data in event headers are not updated
> properly.
done |
57
|
21 Mar 2005 |
Matthias Schneebeli | 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.
done |
56
|
21 Mar 2005 |
Matthias Schneebeli | 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.
done |
55
|
18 Mar 2005 |
Ryu Sawada | Info | xmlwriter.h |
I realized that some unix system distribution does not provide xmlwriter.h in standard libxml2-devel
package.
For instance, scientific linux (also PSI linux) does not.
I installed it from source.
Macintosh has xmlreader.h by default, and does not xmlwriter.h.
I installed it by using FINK.
(FINK is a unix package porter like CYGWIN.)
Someone may ask about it someday.
A problem is that compiler will find xmlwriter.h even if the system does not have it, because ROME has.
This may make it hard that users find out the problem.
How to install libxml2.
---- UNIX OS ----
In most cases, to use standard way of the system is good. But some system does not provide xmlwriter.h. In this case you may need to
install it from source.
1. download source from http://xmlsoft.org/.
2. decompress it and go to created directory.
3. % ./configure [options as you like];
4. % make;
5. become super user, if you are going to install it in system.
6. % make install
---- MacOSX ----
By default, Macintosh does not have xmlwriter.h. You can follow the same way as other UNIX OS. And other way is to use FINK. (I hope
many users already installed it.)
1. install FINK (http://fink.sourceforge.net)
2. become super user.
3. apt-get update;
4. apt-get install libxml2 libxml2-shlibs libxml2-bin
If you are goint to use also MySQL.
5. apt-get install mysql12-dev mysql12-shlibs
(* package name can be changed in future, you may find it with "apt-cache search libxml2" or "apt-cache search mysql") |
54
|
13 Mar 2005 |
Ryu Sawada | Info | Warning message from compiler (These are just warnings, not problems) |
I will summarize some points which g++ warned.
(1) I fixed following points.
*Made destructor of ROMEConfig and ROMEDataBase virtual.
*Removed or comment out unused variables.
int i in ROMEPATH::~ROMEPath()
char* defaultRow in ROMESQL::ReadField
char* c in ROMEString::SetFormatted
int istart,iend,iValue,jValue in ROMEXMLDataBase::Read
int istep,iValue,jValue in ROMEXMLDataBase::Write
ROMEStrArray *array in ROMEXMLDataBase::Write
(2) Following points are not fixed yet.
* There can be unused "int i" in several codes which builder generates. (ex. XXAnalyzer::InitMidasBanks
)
This is not a problem, but a little bit annoying. If it is very easy, please fix it.
* Please make sure this is not a problem.
in ROMEAnalyzer:: ResponseFunction
while (obj = iterFolders->Next()) {
ROMEString str;
str.SetFormatted("%s",obj->GetName());
names->Add(new TObjString(str.Data()));
}
*ROMEString.cpp:74: warning: `int numberOfDigits' might be used uninitialized in this function
*ROMEXMLDataBase.cpp:80: warning: `ROMEXML*xml' might be used uninitialized in this function
(3) This is not warning from g++, but request from me.
If it is very easy, please make ROMEString::SetFormatted,AppendFormatted to check that number of
arguments is correct. |
53
|
11 Mar 2005 |
Ryu Sawada | Info | make build |
I added new make target "build" in ARGUS. It may be useful also for ROME users.
in WriteMakefile(char* xmlFile)
.
.
.
int pdnameend = 0;
int pbnamestart = 0;
ROMEString xmlfile = xmlFile;
while((pdnameend = xmlfile.Index("/",1,pbnamestart,TString::kExact))!=-1)
pbnamestart = pdnameend+1;
ROMEString xmlbasename = xmlfile(pbnamestart,xmlfile.Length());
buffer.AppendFormatted("build::\n");
buffer.AppendFormatted(" $(ROMESYS)/bin/romebuilder.exe -i %s -o .",xmlbasename.Data());
if (makeOutput)
buffer.AppendFormatted(" -v");
if(noLink)
buffer.AppendFormatted(" -nl");
if(midas)
buffer.AppendFormatted(" -midas");
if(!sql)
buffer.AppendFormatted(" -nosql");
buffer.AppendFormatted("\n");
.
.
. |
52
|
10 Mar 2005 |
Ryu Sawada | Bug Report | ResetFolders |
In ROMEEventLoop.cpp::ReadEvent
this->ResetFolders is called before fActiveDAQ->ReadEvent, so data in event headers are not updated
properly. |