[Brahms-dev-l] small bugs in banapp tree2datamap.cxx

From: Ionut Christian Arsene <i.c.arsene@fys.uio.no>
Date: Wed Mar 22 2006 - 03:41:05 EST
     Hi Truls,

    While trying to run tree2datamap i discovered some small bugs. My 
version of banapp is about a week old and maybe somebody spotted them 
already but i will enumerate them anyway:
1. In main():
    if (!outname.Contains(".root"))
       throw BrError("main", "Output name should end with .root (%s)", outname.Data());
   This is not a bug actually, but outname contains the option output-base 
which was used in the analyze_app package and is just the base name of the 
output file. An analyze_app user will give only something like "-o fsdata" 
which results in an error. My opinion is that is better either to change 
the long name of the option (from --output-base to something like 
--output-file) or to skip the check
           if(!outname.Contains(".root"))

2. In main():
    if (fOptMan->GetFloatOpt("cent-min") < 0.0 ||
         fOptMan->GetFloatOpt("cent-min") < fOptMan->GetFloatOpt("cent-max"))
       throw BrError("main", "Centrality cut ill defined %f < c < %f",
                     fOptMan->GetFloatOpt("cent-min"), fOptMan->GetFloatOpt("cent-max"));
   This "if" statement will always give TRUE because always cent-min < 
cent-max. Probably the sign < should be replaced by >

3. Also in main():
   This bug was reported by Pawel also i think. At some point you 
initialize the gGeo in order to load the geometry and acceptance maps, but 
for that you need the global variable gSpec to be initialized (gSpec is 
initialized later when you call checkSetting()). I took a portion of the 
checkSetting() function where you initialize gSpec and putted just before 
the "if" block where you load the geometry.

4. In checkSetting():
   Int_t angle = atoi(specset.Data());
   Char_t pol  = specset[specset.Index(TRegexp("[abAB]"))];
   specset.Remove(0, specset.Index(TRegexp("[abAB]")));
   Int_t field = atoi(specset.Data());

    At least in my version, i don't get the right value for the field which 
leads to program crash. I found that if i add 1 to the argument of the 
TString.Remove() member then the field gets the right value.
   specset.Remove(0, specset.Index(TRegexp("[abAB]"))+1);

5. In RunInfo():
   TFile* InputFile = TFile::Open(fOptMan->GetStrOpt("tree-file"));

   fOptMan doesn't find the "tree-file" option because the input option is 
specified like this in the begining:
   new BrAppStringOption('i', "input-tree",  "Root input filename", "");
   So one of these lines should be changed.


     Thats it for now. If i spot more bugs i'll send them to you.

          Cheers,
             Ionut
_______________________________________________
Brahms-dev-l mailing list
Brahms-dev-l@lists.bnl.gov
http://lists.bnl.gov/mailman/listinfo/brahms-dev-l
Received on Wed Mar 22 03:41:56 2006

This archive was generated by hypermail 2.1.8 : Wed Mar 22 2006 - 03:42:10 EST