FairRoot/PandaRoot
runLumiPixel2ePairFinder.C
Go to the documentation of this file.
1 /*
2  * Finds pixel hit pairs and stores them to pair File
3  *
4  * Author: Roman Klasen, roklasen@uni-mainz.de or klasen@kph.uni-mainz.de
5  *
6  */
7 
8 
9 void runLumiPixel2ePairFinder(const int nEvents=0, const int startEvent=00000, TString storePath="tmpOutput", const int verboseLevel=0)
10 {
11  // ----- Timer --------------------------------------------------------
12  TStopwatch timer;
13  timer.Start();
14 
15  gSystem->Load("libLmd");
16  gSystem->Load("libLmdSensorAligner");
17 
18  cout << "***********************\n";
19  cout << "Running PairFinderTask.\n";
20  cout << "***********************\n";
21 
22  // // ----- Input File ----------------------------------------------------
23  TString inFile=storePath+"/Lumi_digi_";
24  inFile += startEvent;
25  inFile += ".root";
26  TString inFileReco=storePath+"/Lumi_reco_";
27  inFileReco += startEvent;
28  inFileReco += ".root";
29 
30  // // ----- Parameter Files ------------------------------------------------
31  TString parFile=storePath+"/Lumi_Params_";
32  parFile += startEvent;
33  parFile += ".root";
34  TString digiparFile = "lumi.digi.par";
35  TString cutParameterfile = storePath + TString("/cutParameters.json");
36 
37 
38  // ----- Output File --------------------------------------------------
39  TString outFile = storePath+"/Lumi_Pairs_";
40  outFile += startEvent;
41  outFile += ".root";
42  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
43 
44  // ----- Pair Finder / Cut Finder Runs -------------------------------------------
45  FairRunAna *fRun = new FairRunAna();
46  FairFileSource input_source(inFile);
47  input_source.AddFriend(inFileReco);
48  fRun->SetSource(&input_source);
49  fRun->SetOutputFile(outFile);
50  // ------------------------------------------------------------------------
51 
52  // ----- Parameter database --------------------------------------------
53  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
54  FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE);
55  parInput1->open(parFile.Data(),"UPDATE");
56  rtdb->setFirstInput(parInput1);
57  FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo();
58  parInput2->open(digiparFile.Data(),"in");
59  rtdb->setSecondInput(parInput2);
60 
61 
62  // =========================================================================
63  // ===== Start of PairFinder =====
64  // ----- Actual Task --------------------------------------------------
65 
66  //use dynamic cut parameters
67  PndLmdPairFinderTask* pndLmdPairFinder = new PndLmdPairFinderTask();
68  pndLmdPairFinder->useDynamicCut(true, cutParameterfile.Data() );
69  fRun->AddTask(pndLmdPairFinder);
70 
71  rtdb->setOutput(parInput1);
72  rtdb->print();
73  // ===== End of PairFinder =====
74  // =========================================================================
75 
76  // ----- No Idea what this does ----------------------------------------
77  PndSdsGeoPar* geoPar = (PndSdsGeoPar*)(rtdb->getContainer("PndSdsGeoPar"));
78 
79  // ----- Initialize and run PairFinder ----------------------------------
80  fRun->Init();
81  fRun->Run(0,nEvents);
82  rtdb->saveOutput();
83  rtdb->print();
84 
85  // ----- Finish -------------------------------------------------------
86  timer.Stop();
87  Double_t rtime = timer.RealTime();
88  Double_t ctime = timer.CpuTime();
89  cout << endl << endl;
90  cout << "Macro finished successfully." << endl;
91  cout << "Real time " << rtime << " s, CPU time " << ctime << " s\a\a" << endl;
92  cout << endl;
93 
94  // temporary fix to avoid double frees at the destruction of te program for pandaroot/fairroot with root6
95  gGeoManager->GetListOfVolumes()->Delete();
96  gGeoManager->GetListOfShapes()->Delete();
97  delete gGeoManager;
98 
99  return;
100 }
int verboseLevel
Definition: Lars/runMvdSim.C:7
PndMvdGeoPar * geoPar
TString outFile
Definition: hit_dirc.C:17
void useDynamicCut(Bool_t value, std::string parameterFile)
Int_t startEvent
TString storePath
TGeoManager * gGeoManager
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
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
FairParAsciiFileIo * parInput2
Definition: conMvdDigi.C:26
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
Double_t rtime
Definition: hit_dirc.C:113
TString digiparFile
void runLumiPixel2ePairFinder(const int nEvents=0, const int startEvent=00000, TString storePath="tmpOutput", const int verboseLevel=0)