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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.23