FairRoot/PandaRoot
runLumiPixel1Digi.C
Go to the documentation of this file.
1 int runLumiPixel1Digi(const int nEvents = 10, const int startEvent = 0,
2  TString storePath = "tmpOutput", const int verboseLevel = 0,
3  const int pitch = 1) {
4  // ----- Timer --------------------------------------------------------
5  TStopwatch timer;
6  timer.Start();
7 
8  // Input file (MC events)
9  TString inFile = storePath + "/Lumi_MC_";
10  inFile += startEvent;
11  inFile += ".root";
12  // Parameter file
13  TString parFile = storePath + "/Lumi_Params_";
14  parFile += startEvent;
15  parFile += ".root";
16 
17  // Parameter file
18  TString digiparFile = "lumi.digi.par";
19 
20  // Output file
21  TString outFile = storePath + "/Lumi_digi_";
22  outFile += startEvent;
23  outFile += ".root";
24  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
25 
26  // ----- Reconstruction run -------------------------------------------
27  FairRunAna *fRun = new FairRunAna();
28 
29  FairFileSource *input_source = new FairFileSource(inFile);
30  // input_source->SetEventMeanTime(50);//[ns] 50= interaction rate 20 MHz;
31  input_source->SetEventMeanTime(80); //[ns] 80= interaction rate 12.5 MHz;
32  // example: cross-section(DPM el+inlel, 1.5 GeV/c)= 125 mb, L=10^32 -> interaction rate 12.5 MHz
33  // input_source->SetEventMeanTime(400);//[ns] 400= interaction rate 5 MHz; //15 GeV
34  fRun->SetSource(input_source);
35  fRun->SetOutputFile(outFile);
36 
37  // ----- Parameter database --------------------------------------------
38  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
39  FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE);
40  parInput1->open(parFile.Data(), "UPDATE");
41  rtdb->setFirstInput(parInput1);
42  FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo();
43  parInput2->open(digiparFile.Data(), "in");
44  rtdb->setSecondInput(parInput2);
45 
47  // PndLmdStripHitProducerDif* ssdStripProd = new PndLmdStripHitProducerDif(); //TEST
48  lmdStripProd->SetVerbose(verboseLevel);
49  fRun->AddTask(lmdStripProd);
50 
51  rtdb->setOutput(parInput1);
52  rtdb->print();
53  // ===== End of HitProducers =====
54  // =========================================================================
55  PndSdsGeoPar* geoPar = (PndSdsGeoPar*) (rtdb->getContainer("PndSdsGeoPar"));
56 
57  // ----- Intialise and run --------------------------------------------
58  fRun->Init();
59  fRun->Run(0, nEvents);
60  rtdb->saveOutput();
61  rtdb->print();
62 
63  // ----- Finish -------------------------------------------------------
64  timer.Stop();
65  Double_t rtime = timer.RealTime();
66  Double_t ctime = timer.CpuTime();
67  cout << endl << endl;
68  cout << "Macro finished succesfully." << endl;
69  cout << "Output file is " << outFile << endl;
70  cout << "Parameter file is " << parFile << endl;
71  cout << "Real time " << rtime << " s, CPU time " << ctime << " s\a\a" << endl;
72  cout << endl;
73 
74  // temporary fix to avoid double frees at the destruction of te program for pandaroot/fairroot with root6
75  gGeoManager->GetListOfVolumes()->Delete();
76  gGeoManager->GetListOfShapes()->Delete();
77  delete gGeoManager;
78 
79  return 0;
80 }
int verboseLevel
Definition: Lars/runMvdSim.C:7
PndMvdGeoPar * geoPar
TString outFile
Definition: hit_dirc.C:17
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
int runLumiPixel1Digi(const int nEvents=10, const int startEvent=0, TString storePath="tmpOutput", const int verboseLevel=0, const int pitch=1)
Double_t rtime
Definition: hit_dirc.C:113
TString digiparFile