| 11 | TrkProcess::TrkProcess(){ | TrkProcess::TrkProcess(){ | 
| 12 |  |  | 
| 13 | idrun = 0; | idrun = 0; | 
| 14 | dbg_mode.SetNone(); | //    dbg_mode.SetNone(); | 
| 15 | get1  = 0; | get1  = 0; | 
| 16 | full1 = 0; | full1 = 0; | 
| 17 | geth  = 0; | geth  = 0; | 
| 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 | /** | /** | 
| 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; | full1 = 0; | 
| 63 | get2 = 1; | get2 = 1; | 
| 89 | else if (!frameh.CompareTo("hbook", TString::kIgnoreCase)) ifrooth =false; | 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; | 
| 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 | } | } | 
| 228 |  |  | 
| 229 | ostatus = 0; | ostatus = 0; | 
| 230 |  |  | 
| 231 |  | return 0; | 
| 232 |  |  | 
| 233 | }; | }; | 
| 234 | /** | /** | 
| 235 | * \brief Process Level0 event | * \brief Process Level0 event | 
| 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 | 
|  | //    l0_event->GetCommonVar(&level0event_); |  | 
| 243 | l0_event->GetLevel0Struct(); | l0_event->GetLevel0Struct(); | 
| 244 | // process the event Level0->Level1->Level2 | // process the event Level0->Level1->Level2 | 
| 245 | int F77err = 0; | int F77err = 0; | 
| 247 | reductionflight_(&F77err); | reductionflight_(&F77err); | 
| 248 | if(F77err < 0)throw F77err; | if(F77err < 0)throw F77err; | 
| 249 | // | // | 
| 250 | int pfa=0; | if(get2) analysisflight_(); | 
|  | if(get2) analysisflight_(&pfa); |  | 
| 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 | cout <<endl<< "Tracker process parameters: "<< endl; | void TrkProcess::PrintHelp(){ | 
| 286 | cout << " idRun           " << idrun << endl; |  | 
| 287 | cout << " get level1      " << get1 << endl; | printf( "\n\n +TRK [ options ] \n \n"); | 
| 288 | cout << " full level1     " << full1 << endl; | //    printf( "\n --version          : Print tracker software version and exit "); | 
| 289 | cout << " get level2      " << get2 << endl; | printf( "Options:"); | 
| 290 | cout << " get hough       " << geth << 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 << " frameh          " << frame2 << endl; | //    printf( "\n -processFolder DIR   : Directory (relative to OUTDIR) for other output files  [default TrackerFolder/ ] "); | 
| 294 | cout << " file1           " << file1 << endl; | //    printf( "\n -processFile FILE  : Name of the LEVEL2 output file                         [default RUN.Level2.root]"); | 
| 295 | cout << " file2           " << file2 << endl; | //    printf( "\n -processFile1 FILE   : Name of the LEVEL1 output file                         [default RUN.Level1.rz]"); | 
| 296 | cout << " outdir          " << outdir << endl; | //    printf( "\n -frame1 FRAME        : type of output for LEVEL1, root/hbook                  [default hbook ] "); | 
| 297 | cout << " process folder  " << pfolder << endl; | //    printf( "\n -frame2 FRAME        : type of output for LEVEL2, root/hbook                  [default root  ] "); | 
| 298 | cout << " standalone mode " << standalone << endl; | printf( "\n --get1, --get-level1           : get LEVEL1 output (store only cluster associated to tracks) [default (no LEVEL1 output) ]  "); | 
| 299 | cout << " debug mode      warning " << dbg_mode.warning << endl; | printf( "\n --get1-full, --get-level1-full : get LEVEL1 output (store all clusters)                      [default (no LEVEL1 output) ]  "); | 
| 300 | cout << " debug mode      verbose " << dbg_mode.verbose << endl; | printf( "\n --dontget2, --dontget-level2   : do not get LEVEL2 output                                    [default (get LEVEL2 output)]"); | 
| 301 | cout << " debug mode      debug   " << dbg_mode.debug << endl << endl; | 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 | } | } |