/[PAMELA software]/DarthVader/TrackerLevel2/src/TrkProcess.cpp
ViewVC logotype

Diff of /DarthVader/TrackerLevel2/src/TrkProcess.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by pam-fi, Thu Sep 28 14:04:39 2006 UTC revision 1.16 by pam-fi, Thu Feb 27 11:24:43 2014 UTC
# Line 11  using namespace std; Line 11  using namespace std;
11  TrkProcess::TrkProcess(){  TrkProcess::TrkProcess(){
12            
13      idrun = 0;      idrun = 0;
14  //    DEBUG = false;  //    dbg_mode.SetNone();
15  //    VERBOSE = false;      get1  = 0;
16      dbg_mode.SetNone();      full1 = 0;
17      get1 = 0;      geth  = 0;
18      get2 = 1;      get2  = 1;
19        gete  = 1;
20      standalone = false;      standalone = false;
21      frame2 = "root";      frame2 = "root";
22      frame1 = "hbook";      frame1 = "root";
23        frameh = "root";
24        framee = "root";
25      outdir =  gSystem->WorkingDirectory();      outdir =  gSystem->WorkingDirectory();
26      pfolder = "/TrackerFolder";      pfolder = "/TrackerFolder";
27      if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;                if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;          
# Line 27  TrkProcess::TrkProcess(){ Line 30  TrkProcess::TrkProcess(){
30      if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;                if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;          
31      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 = false;      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 = false;
32    
33        if      (!frameh.CompareTo("root", TString::kIgnoreCase))  ifrooth = true;          
34        else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth = false;
35    
36      file1 = "";      file1 = "";
37      file2 = "";      file2 = "";
38            
39      ostatus = 0;      ostatus = 0;
40    
41        npar = 0;
42    
43        nskip = 0;
44    
45    //     TrkParams::SetTrackingMode();
46    //     TrkParams::SetPrecisionFactor();
47    //     TrkParams::SetStepMin();  
48        TrkParams::SetMiniDefault();
49        TrkParams::SetPFA();
50  };  };
51                    
52  /**  /**
# Line 43  TrkProcess::TrkProcess(ULong64_t run, TF Line 59  TrkProcess::TrkProcess(ULong64_t run, TF
59      idrun = run;      idrun = run;
60  //    DEBUG = false;  //    DEBUG = false;
61  //    VERBOSE = false;  //    VERBOSE = false;
62      dbg_mode.SetWarning();  //    dbg_mode.SetWarning();
63      get1 = 0;      get1  = 0;
64        full1 = 0;
65      get2 = 1;      get2 = 1;
66        geth = 0;
67        gete = 1;
68      standalone = false;      standalone = false;
69      frame2 = "root";      frame2 = "root";
70      frame1 = "root";      frame1 = "root";
71  //    ifroot1 = false;      frameh = "root";
72  //    ifroot2 = true;      framee = "root";
73          pfolder = "/TrackerFolder";      pfolder = "/TrackerFolder";
74          file1 = "";      file1 = "";
75      if(f2->IsOpen()){      if(f2->IsOpen()){
76                  file2  = f2->GetPath();          file2  = f2->GetPath();
77                  outdir = gSystem->DirName(gSystem->DirName(file2));          outdir = gSystem->DirName(gSystem->DirName(file2));
78          // check if the indicated output directory exists          // check if the indicated output directory exists
79                  FileStat_t t;          FileStat_t t;
80                  if( gSystem->GetPathInfo(outdir.Data(),t) )throw -12;          if( gSystem->GetPathInfo(outdir.Data(),t) )throw -12;
81      }else{      }else{
82                  file2 = "";              file2 = "";    
83                  outdir =  gSystem->WorkingDirectory();          outdir =  gSystem->WorkingDirectory();
84      };      };
85    
86      if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;                if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;          
# Line 70  TrkProcess::TrkProcess(ULong64_t run, TF Line 89  TrkProcess::TrkProcess(ULong64_t run, TF
89      if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;                if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;          
90      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
91    
92        if      (!frameh.CompareTo("root", TString::kIgnoreCase))  ifrooth = true;          
93        else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
94    
95      ostatus = 0;      ostatus = 0;
96        
97        npar=0;
98                    
99        nskip = 0;
100    
101    //     TrkParams::SetTrackingMode();
102    //     TrkParams::SetPrecisionFactor();
103    //     TrkParams::SetStepMin();  
104        TrkParams::SetMiniDefault();
105        TrkParams::SetPFA();
106    
107  };  };
108  /**  /**
109   * Set processing variables according to input custom parameters   * Set processing variables according to input custom parameters
110   */       */    
111  void TrkProcess::HandleCustomPar(int ncustom, char *vcustom[]){  int TrkProcess::HandleCustomPar(int ncustom, char *vcustom[]){
112    
113      for (int i=0; i< ncustom; i++){      for (int i=0; i< ncustom; i++){
114    
115          cout << "Handling Parameter " << i+1  << " of " << ncustom << ": "  << vcustom[i] << endl;
116    
117            // -----------------------------------------------------//
118            if (!strcmp(vcustom[i], "--simu")){
119                cout << "Setting DarthVader to use Simulated Data\n";
120                TrkParams::SetSimuFlag(kTRUE);
121                continue;
122            }  
123          // -----------------------------------------------------//          // -----------------------------------------------------//
124          if (!strcmp(vcustom[i], "-processFolder")){          if (!strcmp(vcustom[i], "-processFolder")){
125              if (++i >= ncustom) throw -3;              if (++i >= ncustom) throw -3;
# Line 87  void TrkProcess::HandleCustomPar(int ncu Line 127  void TrkProcess::HandleCustomPar(int ncu
127              continue;              continue;
128          }            }  
129          // -----------------------------------------------------//              // -----------------------------------------------------//    
130          if (!strcmp(vcustom[i], "--get1")){          if (!strcmp(vcustom[i], "--get1") || !strcmp(vcustom[i], "--get-level1") ){
131              get1 = 1;              get1  = 1;  
132                full1 = 0;
133                continue;
134            }  
135            // -----------------------------------------------------//    
136            if (!strcmp(vcustom[i], "--get1-full") || !strcmp(vcustom[i], "--get-level1-full") ){
137                get1  = 1;      
138                full1 = 1;
139              continue;              continue;
140          }            }  
141          // -----------------------------------------------------//              // -----------------------------------------------------//    
142          if (!strcmp(vcustom[i], "--dontget2")){          if (!strcmp(vcustom[i], "--geth") || !strcmp(vcustom[i], "--get-hough") ){
143                geth = 1;
144                continue;
145            }  
146            // -----------------------------------------------------//    
147            if (!strcmp(vcustom[i], "--dontget2") ||!strcmp(vcustom[i], "--dontget-level2") ){
148              get2 = 0;              get2 = 0;
149              continue;              continue;
150          }            }  
151          // -----------------------------------------------------//              // -----------------------------------------------------//    
152            if (!strcmp(vcustom[i], "--dontgete") ||!strcmp(vcustom[i], "--dontget-exttrack") ){
153                gete = 0;
154                continue;
155            }  
156            // -----------------------------------------------------//    
157          if (!strcmp(vcustom[i], "--standalone") || !strcmp(vcustom[i], "-s")){          if (!strcmp(vcustom[i], "--standalone") || !strcmp(vcustom[i], "-s")){
158              standalone = true;              standalone = true;
159              continue;              continue;
# Line 123  void TrkProcess::HandleCustomPar(int ncu Line 180  void TrkProcess::HandleCustomPar(int ncu
180              continue;              continue;
181          }            }  
182          // -----------------------------------------------------//              // -----------------------------------------------------//    
183            if (!strcmp(vcustom[i], "-framee")){
184                if (++i >= ncustom)throw -3;
185                gete = 1;
186                framee = vcustom[i];
187                continue;
188            }  
189            // -----------------------------------------------------//    
190            if (!strcmp(vcustom[i], "-pfa")){
191                if (++i >= ncustom)throw -3;
192                TrkParams::SetPFA(atoi(vcustom[i]));
193                continue;
194            }  
195            // -----------------------------------------------------//    
196            if (!strcmp(vcustom[i], "-skip")){
197                if (++i >= ncustom)throw -3;
198                nskip = atoi(vcustom[i]);
199                continue;
200            }  
201            // -----------------------------------------------------//    
202            if ( atoi(vcustom[i]) < 0){
203                if (++i >= ncustom)throw -3;
204                partype[npar]=-1*atoi(vcustom[i-1]);
205                parpath[npar]=vcustom[i];
206                npar++;
207                continue;
208            }  
209            // -----------------------------------------------------//    
210          if (!strcmp(vcustom[i], "--verbose") || !strcmp(vcustom[i], "-v")){          if (!strcmp(vcustom[i], "--verbose") || !strcmp(vcustom[i], "-v")){
211  //          VERBOSE = true;              TrkParams::SetVerboseMode();
212              this->SetVerboseMode();              continue;
213            }
214            // -----------------------------------------------------//    
215            if (!strcmp(vcustom[i], "--warning") || !strcmp(vcustom[i], "-w")){
216                TrkParams::SetWarningMode();
217              continue;              continue;
218          }          }
219          // -----------------------------------------------------//              // -----------------------------------------------------//    
220            if (!strcmp(vcustom[i], "--help") || !strcmp(vcustom[i], "-h")){
221                PrintHelp();
222                return 1;
223            }
224            // -----------------------------------------------------//    
225          else if (!strcmp(vcustom[i], "--debug") || !strcmp(vcustom[i], "-d")){          else if (!strcmp(vcustom[i], "--debug") || !strcmp(vcustom[i], "-d")){
226  //          DEBUG = true;              TrkParams::SetDebugMode();
             this->SetDebugMode();  
227              continue;              continue;
228          };          };
229      }        }  
# Line 144  void TrkProcess::HandleCustomPar(int ncu Line 236  void TrkProcess::HandleCustomPar(int ncu
236      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
237      else    throw -201;      else    throw -201;
238                    
239  //     if(get1){      if      (!frameh.CompareTo("root", TString::kIgnoreCase))  ifrooth = true;          
240  //                    else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
241  //              TString filety;      else    throw -201;
242  //              if      ( ifroot1)  filety=".root";              
243  //              else if (!ifroot1)  filety=".rz";      if      (!framee.CompareTo("root", TString::kIgnoreCase))  ifroote = true;          
244  //              else    throw -200;      else if (!framee.CompareTo("hbook", TString::kIgnoreCase)) ifroote =false;
245  //                    else    throw -201;
246  //              TString base = file2;            
247  //              if(base.Contains(".Level2.root"))base = base(0,base.Index(".Level2.root"));      if(get1 && !get2)full1=true;
 //              else base = base(0,base.Index(".root"));  
 //              base = gSystem->BaseName(base);  
 //              file1 = outdir + "/"+ gSystem->BaseName(pfolder) + "/" + base +".Level1"+filety;  
 // //           cout << "Requested Level1 output. "<< endl << "Level1 File: "<< file1 << endl;  
 //              TString path = gSystem->DirName(file1);  
 //              FileStat_t t;  
 //              // check if processFolder directory exists, and possibly create it  
 //              if( gSystem->GetPathInfo(path.Data(),t) ) {  
 //                  if( gSystem->MakeDirectory(path.Data()) == -1)throw -13;  
 //              };  
 //              // if it does, open/create teh putput file  
 //  
 //     };  
248    
249      ostatus = 0;      ostatus = 0;
250    
251        return 0;
252    
253  };  };
254  /**  /**
255   * \brief Process Level0 event   * \brief Process Level0 event
# Line 179  void TrkProcess::HandleCustomPar(int ncu Line 260  void TrkProcess::HandleCustomPar(int ncu
260  void TrkProcess::ProcessEvent(TrkLevel0 *l0_event){  void TrkProcess::ProcessEvent(TrkLevel0 *l0_event){
261    
262      // fill Level0 common from Level0 object      // fill Level0 common from Level0 object
263      l0_event->GetCommonVar(&level0event_);      l0_event->GetLevel0Struct();
   
264      // process the event Level0->Level1->Level2      // process the event Level0->Level1->Level2
265      int F77err = 0;      int F77err = 0;
266      //      //
267      reductionflight_(&F77err);      reductionflight_(&F77err);
268      if(F77err < 0)throw F77err;      if(F77err < 0)throw F77err;
     //    else if(F77err > 0 && WarningMode())cout<<" WARNING ("<<F77err<<") - TrkCore - Level1 reduction (CN computation failure, ...)"<<endl;  
269      //      //
270      if(get2) analysisflight_();      if(get2) analysisflight_();
 //    if(F77err < 0)throw F77err;  
 //    else if(F77err > 0 && WarningMode())cout<<" WARNING ("<<F77err<<") - TrkCore - @ Level2 reduction "<<endl;  
271      //      //
272    
273      ostatus = F77err;      ostatus = F77err;
274            
275  };  };
276                                    
277  void TrkProcess::Dump(){  void TrkProcess::Dump(){
278        cout << endl;
279        cout << " |-------------------------------------| "<<endl;
280        cout << "   tracker-processing input-parameters   "<< endl;
281        cout << " |-------------------------------------| "<<endl;
282        cout << "   idRun            " << idrun << endl;
283        cout << "                    (skip " << nskip <<" events)"<< endl;    
284        cout << "   get level1       " << get1 << endl;
285        cout << "   full level1      " << full1 << endl;
286        cout << "   get level2       " << get2 << endl;
287        cout << "   get hough        " << geth << endl;
288        cout << "   get ext.tracking " << gete << endl;
289    //    cout << " frame1           " << frame1 << endl;
290    //    cout << " frame2           " << frame2 << endl;
291    //    cout << " frameh           " << frame2 << endl;
292    //    cout << " file1            " << file1 << endl;
293        cout << "   output file      " << file2 << endl;
294    //    cout << " outdir           " << outdir << endl;
295    //    cout << " process folder   " << pfolder << endl;
296    //    cout << " standalone mode  " << standalone << endl;
297        for(int i=0; i<npar; i++)
298            cout << "   force loading parameters of type "<<partype[i]<<" from <--- "<<parpath[i]<<endl;
299        cout<<endl;
300    
301      cout <<endl<< "Tracker process parameters: "<< endl;  //     cout << " debug mode      warning " << dbg_mode.warning << endl;
302      cout << " idRun           " << idrun << endl;  //     cout << " debug mode      verbose " << dbg_mode.verbose << endl;
303      cout << " get1            " << get1 << endl;  //     cout << " debug mode      debug   " << dbg_mode.debug << endl << endl;
     cout << " get2            " << get2 << endl;  
     cout << " frame1          " << frame1 << endl;  
     cout << " frame2          " << frame2 << endl;  
     cout << " file1           " << file1 << endl;  
     cout << " file2           " << file2 << endl;  
     cout << " outdir          " << outdir << endl;  
     cout << " process folder  " << pfolder << endl;  
     cout << " standalone mode " << standalone << endl;  
     cout << " debug mode      warning " << dbg_mode.warning << endl;  
     cout << " debug mode      verbose " << dbg_mode.verbose << endl;  
     cout << " debug mode      debug   " << dbg_mode.debug << endl << endl;  
304            
305  }  }
306    
307    void TrkProcess::PrintHelp(){
308    
309        printf( "\n\n +TRK [ options ] \n \n");
310    //    printf( "\n --version          : Print tracker software version and exit ");      
311        printf( "Options:");
312        printf( "\n --help, -h                     : Print this help and exit ");  
313    //    printf( "\n -idRun RUN         : ID number of the run to be processed (for reprocessing RUN=0) \n");
314    //    printf( "\n -outDir OUTDIR     : Path where to put the LEVEL2 output                    [default ./ ] ");
315    //    printf( "\n -processFolder DIR   : Directory (relative to OUTDIR) for other output files  [default TrackerFolder/ ] ");
316    //    printf( "\n -processFile FILE  : Name of the LEVEL2 output file                         [default RUN.Level2.root]");
317    //    printf( "\n -processFile1 FILE   : Name of the LEVEL1 output file                         [default RUN.Level1.rz]");
318    //    printf( "\n -frame1 FRAME        : type of output for LEVEL1, root/hbook                  [default hbook ] ");
319    //    printf( "\n -frame2 FRAME        : type of output for LEVEL2, root/hbook                  [default root  ] ");            
320        printf( "\n --get1, --get-level1           : get LEVEL1 output (store only cluster associated to tracks) [default (no LEVEL1 output) ]  ");
321        printf( "\n --get1-full, --get-level1-full : get LEVEL1 output (store all clusters)                      [default (no LEVEL1 output) ]  ");
322        printf( "\n --dontget2, --dontget-level2   : do not get LEVEL2 output                                    [default (get LEVEL2 output)]");
323    printf( "\n --dontgete, --dontget-exttrack     : do not get ext.tracking output                              [default (get LEVEL2 output)]");
324        printf( "\n --geth,, --get-hough           : get Hough-transform output                                  [default (no Hough-t. output) ]  ");
325        printf( "\n -pfa PFAID                     : type of output for LEVEL2, root/hbook                       [default 14 (COG4)  ] ");          
326        printf( "\n -N PATH                        : load parameter of type N=1,2... from PATH                   [default (from DB)  ] ");  
327        printf( "\n --verbose, -v                  : verbose mode ");      
328        printf( "\n --debug, -d                    : debug mode ");
329        printf( "\n --warning, -w                  : warning mode ");      
330        printf( "\n -skip NEV                      : skip first NEV events from each run ");        
331    //    printf( "\n --standalone, -s   : standalone mode (without RunInfo) ... but it might not work \n");        
332    //    printf( "\n -host HOST         : Name for the host                                      [default mysql://localhost/pamelaprod ]");
333    //    printf( "\n -user USER         : Username for the DB                                    [default anonymous] ");
334    //    printf( "\n -psw  PSW          : Password for the DB                                    [default (none)]\n \n \n");
335        
336    
337    }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.23