/[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.1.1.1 by mocchiut, Fri May 19 13:15:54 2006 UTC revision 1.9 by pam-fi, Fri Apr 27 10:39:57 2007 UTC
# Line 5  Line 5 
5  #include <TrkProcess.h>  #include <TrkProcess.h>
6  #include <iostream>  #include <iostream>
7  using namespace std;  using namespace std;
8    /**
9     * Create TrkProcess object, initializing the tracker processing variables at default values
10     */
11  TrkProcess::TrkProcess(){  TrkProcess::TrkProcess(){
12            
13      idrun = 0;      idrun = 0;
14      DEBUG = false;      dbg_mode.SetNone();
15      get1 = 0;      get1  = 0;
16      get2 = 1;      full1 = 0;
17        geth  = 0;
18        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;          
26      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 = false;
27            
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;
38  };  };
39                    
40    /**
41     * Create TrkProcess object, initializing the tracker processing variables according to input parameters.
42     * @param run Run ID
43     * @param f2 Pointer to output level2 file
44     */
45  TrkProcess::TrkProcess(ULong64_t run, TFile *f2){  TrkProcess::TrkProcess(ULong64_t run, TFile *f2){
46                    
47      idrun = run;      idrun = run;
48      DEBUG = false;  //    DEBUG = false;
49      get1 = 0;  //    VERBOSE = false;
50        dbg_mode.SetWarning();
51        get1  = 0;
52        full1 = 0;
53      get2 = 1;      get2 = 1;
54        geth = 0;
55      standalone = false;      standalone = false;
56      frame2 = "root";      frame2 = "root";
57      frame1 = "hbook";      frame1 = "root";
58      ifroot1 = false;      frameh = "root";
59      ifroot2 = true;      pfolder = "/TrackerFolder";
60      file1 = "";      file1 = "";
61      if(f2->IsOpen()){      if(f2->IsOpen()){
62          file2  = f2->GetPath();          file2  = f2->GetPath();
 //      TString temp = file2(0,file2.Last(':'));  
 //      outdir = temp(0,temp.Last('/'));  
63          outdir = gSystem->DirName(gSystem->DirName(file2));          outdir = gSystem->DirName(gSystem->DirName(file2));
64  // check if the indicated output directory exists          // check if the indicated output directory exists
65          FileStat_t t;          FileStat_t t;
66          if( gSystem->GetPathInfo(outdir.Data(),t) )throw -12;          if( gSystem->GetPathInfo(outdir.Data(),t) )throw -12;
67      }else{      }else{
68          file2 = "";              file2 = "";    
69          outdir =  gSystem->WorkingDirectory();          outdir =  gSystem->WorkingDirectory();
70      };      };
     pfolder = "/TrackerFolder";  
71    
72      if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;                if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;          
73      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;
# Line 60  TrkProcess::TrkProcess(ULong64_t run, TF Line 75  TrkProcess::TrkProcess(ULong64_t run, TF
75      if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;                if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;          
76      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
77    
78        if      (!frameh.CompareTo("root", TString::kIgnoreCase))  ifrooth = true;          
79        else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
80    
81        ostatus = 0;
82                    
83  };  };
84            /**
85  int TrkProcess::HandleCustomPar(int ncustom, char *vcustom[]){   * Set processing variables according to input custom parameters
86     */    
87    void TrkProcess::HandleCustomPar(int ncustom, char *vcustom[]){
88    
89      for (int i=0; i< ncustom; i++){      for (int i=0; i< ncustom; i++){
90                    
91          // -----------------------------------------------------//          // -----------------------------------------------------//
92          if (!strcmp(vcustom[i], "-processFolder")){          if (!strcmp(vcustom[i], "-processFolder")){
93              if (++i >= ncustom) throw -3;              if (++i >= ncustom) throw -3;
# Line 74  int TrkProcess::HandleCustomPar(int ncus Line 95  int TrkProcess::HandleCustomPar(int ncus
95              continue;              continue;
96          }            }  
97          // -----------------------------------------------------//              // -----------------------------------------------------//    
98          if (!strcmp(vcustom[i], "--get1")){          if (!strcmp(vcustom[i], "--get1") || !strcmp(vcustom[i], "--get-level1") ){
99              get1 = 1;              get1  = 1;  
100                full1 = 0;
101                continue;
102            }  
103            // -----------------------------------------------------//    
104            if (!strcmp(vcustom[i], "--get1-full") || !strcmp(vcustom[i], "--get-level1-full") ){
105                get1  = 1;      
106                full1 = 1;
107              continue;              continue;
108          }            }  
109          // -----------------------------------------------------//              // -----------------------------------------------------//    
110          if (!strcmp(vcustom[i], "--dontget2")){          if (!strcmp(vcustom[i], "--geth") || !strcmp(vcustom[i], "--get-hough") ){
111                geth = 1;
112                continue;
113            }  
114            // -----------------------------------------------------//    
115            if (!strcmp(vcustom[i], "--dontget2") ||!strcmp(vcustom[i], "--dontget-level2") ){
116              get2 = 0;              get2 = 0;
117              continue;              continue;
118          }            }  
# Line 110  int TrkProcess::HandleCustomPar(int ncus Line 143  int TrkProcess::HandleCustomPar(int ncus
143              continue;              continue;
144          }            }  
145          // -----------------------------------------------------//              // -----------------------------------------------------//    
146          else if (!strcmp(vcustom[i], "--verbose") || !strcmp(vcustom[i], "-v")){          if (!strcmp(vcustom[i], "--verbose") || !strcmp(vcustom[i], "-v")){
147              DEBUG = true;  //          VERBOSE = true;
148                this->SetVerboseMode();
149              continue;              continue;
150          }            }
151            // -----------------------------------------------------//    
152            else if (!strcmp(vcustom[i], "--debug") || !strcmp(vcustom[i], "-d")){
153    //          DEBUG = true;
154                this->SetDebugMode();
155                continue;
156            };
157      }        }  
158                        
159      if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;                if      (!frame2.CompareTo("root", TString::kIgnoreCase))  ifroot2 = true;          
160      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;      else if (!frame2.CompareTo("hbook", TString::kIgnoreCase)) ifroot2 =false;
161      else    throw -201;      else    throw -201;
# Line 123  int TrkProcess::HandleCustomPar(int ncus Line 163  int TrkProcess::HandleCustomPar(int ncus
163      if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;                if      (!frame1.CompareTo("root", TString::kIgnoreCase))  ifroot1 = true;          
164      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;      else if (!frame1.CompareTo("hbook", TString::kIgnoreCase)) ifroot1 =false;
165      else    throw -201;      else    throw -201;
166                
167      if(get1){      if      (!frameh.CompareTo("root", TString::kIgnoreCase))  ifrooth = true;          
168          TString filety;      else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false;
169          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  
170    
171      };      if(get1 && !get2)full1=true;
172    
173        ostatus = 0;
174    
175      return 0;  };
176    /**
177     * \brief Process Level0 event
178     * @param l0_event Pointer to an object of the tracker level0 class
179     * Starting from a Level0 object, this routine fills the level0 common, then calls
180     * the fortran routines, which process the event and fill level1 and level2 commons.
181     */
182    void TrkProcess::ProcessEvent(TrkLevel0 *l0_event){
183    
184        // fill Level0 common from Level0 object
185    //    l0_event->GetCommonVar(&level0event_);
186        l0_event->GetLevel0Struct();
187        // process the event Level0->Level1->Level2
188        int F77err = 0;
189        //
190        reductionflight_(&F77err);
191        if(F77err < 0)throw F77err;
192        //
193    //    int pfa=0; //<<< ETA
194        int pfa=14;//<<< COG4
195        if(get2) analysisflight_(&pfa);
196        //
197        ostatus = F77err;
198        
199  };  };
200                                    
201  void TrkProcess::Dump(){  void TrkProcess::Dump(){
202    
203      cout <<endl<< "Tracker process parameters: "<< endl;      cout <<endl<< "Tracker process parameters: "<< endl;
204      cout << " idRun           " << idrun << endl;      cout << " idRun           " << idrun << endl;
205      cout << " get1            " << get1 << endl;      cout << " get level1      " << get1 << endl;
206      cout << " get2            " << get2 << endl;      cout << " full level1     " << full1 << endl;
207        cout << " get level2      " << get2 << endl;
208        cout << " get hough       " << geth << endl;
209      cout << " frame1          " << frame1 << endl;      cout << " frame1          " << frame1 << endl;
210      cout << " frame2          " << frame2 << endl;      cout << " frame2          " << frame2 << endl;
211        cout << " frameh          " << frame2 << endl;
212      cout << " file1           " << file1 << endl;      cout << " file1           " << file1 << endl;
213      cout << " file2           " << file2 << endl;      cout << " file2           " << file2 << endl;
214      cout << " outdir          " << outdir << endl;      cout << " outdir          " << outdir << endl;
215      cout << " process folder  " << pfolder << endl;          cout << " process folder  " << pfolder << endl;
216      cout << " standalone mode " << standalone << endl;      cout << " standalone mode " << standalone << endl;
217      cout << " debug mode      " << DEBUG << endl<< endl;      cout << " debug mode      warning " << dbg_mode.warning << endl;
218        cout << " debug mode      verbose " << dbg_mode.verbose << endl;
219        cout << " debug mode      debug   " << dbg_mode.debug << endl << endl;
220            
221  }  }

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.23