FairRoot/PandaRoot
Functions
runLumiPixel2Reco.C File Reference

Go to the source code of this file.

Functions

int runLumiPixel2Reco (const int nEvents=10, const int startEvent=0, TString storePath="tmpOutput", const int verboseLevel=0, bool misalign=false)
 

Function Documentation

int runLumiPixel2Reco ( const int  nEvents = 10,
const int  startEvent = 0,
TString  storePath = "tmpOutput",
const int  verboseLevel = 0,
bool  misalign = false 
)

Definition at line 1 of file runLumiPixel2Reco.C.

References ctime, DigiFile, Double_t, fRun, gGeoManager, PndLmdPixelClusterTask::Init(), nEvents, outFile, parFile, parInput1, rtdb, rtime, startEvent, storePath, timer, TString, and verboseLevel.

3  {
4  // ========================================================================
5  TString DigiFile = storePath + "/Lumi_digi_"; //"/Lumi_digi_noise_";//"/Lumi_digi_";
6  DigiFile += startEvent;
7  DigiFile += ".root";
8  // Parameter file
9  TString parFile = storePath + "/Lumi_Params_";
10  parFile += startEvent;
11  parFile += ".root";
12 
13  // Output file
14  TString outFile = storePath + "/Lumi_reco_";
15  outFile += startEvent;
16  outFile += ".root";
17 
18  //std::cout << "MCFile : " << MCFile.Data()<< std::endl;
19  //std::cout << "DigiFile: " << DigiFile.Data() << std::endl;
20  //std::cout << "RecoFile: " << outFile.Data() << std::endl;
21 
22  // ----- Timer --------------------------------------------------------
23  TStopwatch timer;
24  timer.Start();
25  // ------------------------------------------------------------------------
26 
27  // ----- Reconstruction run -------------------------------------------
28  FairRunAna *fRun = new FairRunAna();
29  FairFileSource input_source(DigiFile);
30  fRun->SetSource(&input_source);
31  fRun->SetOutputFile(outFile);
32  // ------------------------------------------------------------------------
33 
34  // ----- Parameter database --------------------------------------------
35  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
36  FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE);
37  parInput1->open(parFile.Data(), "UPDATE");
38 // FairParAsciiFileIo* parInput1 = new FairParAsciiFileIo();
39 // parInput1->open(parFile.Data(),"in");
40  rtdb->setFirstInput(parInput1);
41 
42  // alignment parameter file
43  // TString alignparFile = "lumi.align.par";//perfect! OLD
44  // TString alignparFile = "lumi.misalign.par";//misalignment! OLD
45  // TString alignparFile = "lumi.align_pixel_ideal.par";//perfect
46  /* TString alignparFile;
47  if(misalign){
48  alignparFile = storePath+"/lumi.misalign_pixel.par";//misalign
49  }
50  else{
51  alignparFile = "LMD_alignment/lumi.align_pixel_ideal.par";//perfect
52  }
53 
54  FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo();
55  parInput2->open(alignparFile.Data(),"in");
56  rtdb->setSecondInput(parInput2);*/
57 
58  /*Bool_t kParameterMerged=kTRUE;
59  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
60  output->open(parOutFile);
61  rtdb->setOutput(output);
62  */
63 // fRun->LoadGeometry();
64  // ------------------------------------------------------------------------
65  // =========================================================================
66  // ====== Hit Producers ======
67  // =========================================================================
68  // ----- LMD hit producer --------------------------------------------
70  lmdmccls->SetVerbose(verboseLevel);
71 
72  fRun->AddTask(lmdmccls);
73  rtdb->setOutput(parInput1);
74  rtdb->print();
75  // ===== End of HitProducers =====
76  // =========================================================================
77 
78  // ----- Intialise and run --------------------------------------------
79  fRun->Init();
80 
81  fRun->Run(0, nEvents);
82  // ------------------------------------------------------------------------
83 
84  rtdb->saveOutput();
85  rtdb->print();
86  // ----- Finish -------------------------------------------------------
87  timer.Stop();
88  Double_t rtime = timer.RealTime();
89  Double_t ctime = timer.CpuTime();
90  cout << endl << endl;
91  cout << "Macro finished succesfully." << endl;
92  cout << "Output file is " << outFile << endl;
93  cout << "Parameter file is " << parFile << endl;
94  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
95  cout << endl;
96  // ------------------------------------------------------------------------
97 
98  // temporary fix to avoid double frees at the destruction of te program for pandaroot/fairroot with root6
99  gGeoManager->GetListOfVolumes()->Delete();
100  gGeoManager->GetListOfShapes()->Delete();
101  delete gGeoManager;
102 
103  return 0;
104 }
int verboseLevel
Definition: Lars/runMvdSim.C:7
TString outFile
Definition: hit_dirc.C:17
Int_t startEvent
TString storePath
TGeoManager * gGeoManager
FairRunAna * fRun
Definition: hit_dirc.C:58
TString DigiFile
Double_t
TString parFile
Definition: hit_dirc.C:14
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
Double_t rtime
Definition: hit_dirc.C:113