FairRoot/PandaRoot
Functions
runLumiDigi.cxx File Reference

Go to the source code of this file.

Functions

void runLumiDigi (const int verboseLevel=0, const int pitch=1)
 

Function Documentation

void runLumiDigi ( const int  verboseLevel = 0,
const int  pitch = 1 
)

Definition at line 1 of file runLumiDigi.cxx.

References ctime, digiparFile, Double_t, fRun, geoPar, inFile, outFile, parFile, parInput1, parInput2, rtdb, rtime, timer, TString, and verboseLevel.

2 {
3  // ----- Timer --------------------------------------------------------
4  TStopwatch timer;
5  timer.Start();
6 
7  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
8  gSystem->Load("libSds");
9  gSystem->Load("libSdsReco");
10  gSystem->Load("libLmd");
11  gSystem->Load("libLmdReco");
12  gSystem->Load("libLmdTrk");
13 
14  // Input file (MC events)
15  TString inFile="Lumi_MC";
16  inFile += ".root";
17  // Parameter file
18  TString parFile="Lumi_Params";
19  parFile += ".root";
20 
21  // Parameter file
22  TString digiparFile = "lumi.digi.par";
23  //TString digiparFile = "noMClumi.digi.par";
24  // TString digiparFile = "lumi";
25  // switch(pitch){
26  // case 0:{
27  // digiparFile += "50";
28  // break;}
29  // }
30 
31  // digiparFile += ".digi.par";
32 
33  // cout<<"digiparFile = "<<digiparFile<<endl;
34  // In general, the following parts need not be touched
35  // ========================================================================
36  // Output file
37  TString outFile = "Lumi_digi";
38  outFile += ".root";
39  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
40 
41  // ----- Reconstruction run -------------------------------------------
42  FairRunAna *fRun= new FairRunAna();
43  fRun->SetInputFile(inFile);
44  fRun->SetOutputFile(outFile);
45  fRun->SetEventMeanTime(50);// TODO: 50 ???
46 
47  // ----- Parameter database --------------------------------------------
48  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
49  FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE);
50  parInput1->open(parFile.Data(),"UPDATE");
51  rtdb->setFirstInput(parInput1);
52 // Bool_t kParameterMerged=kTRUE;
53 // FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
54 // output->open(parOutFile);
55 // rtdb->setOutput(output);
56  FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo();
57  parInput2->open(digiparFile.Data(),"in");
58  rtdb->setSecondInput(parInput2);
59 
60  // fRun->LoadGeometry();
61 
62 
63  // ----- Digitization ---------------------------------------
64 // PndMvdDigiTask* mvddigi = new PndMvdDigiTask();
65 // mvddigi->SetVerbose(verboseLevel);
66 // fRun->AddTask(mvddigi);
67  // =========================================================================
68  // ====== Hit Producers ======
69  // =========================================================================
70 
71  // ----- MVD Strip hit producer ---------------------------------------
72 // double topPitch=0.015,
73 // botPitch=0.015,
74 // orient=TMath::Pi()*(0.5),
75 // skew=TMath::Pi()*(0.5);
76 // TVector2 topAnchor(0.,0.);
77 // TVector2 botAnchor(0.,0.);
78 // int topFE = 10,
79 // botFE = 4,
80 // nrFEChannels = 128;
81 // double threshold=3000., noise=1000.;
82 // PndMvdStripHitProducer* mvdStripProd
83 // = new PndMvdStripHitProducer(topPitch, botPitch,
84 // orient, skew,
85 // topAnchor,botAnchor,
86 // topFE, botFE, nrFEChannels,
87 // threshold, noise);
88 
90  // PndLmdStripHitProducerDif* ssdStripProd = new PndLmdStripHitProducerDif(); //TEST
91  lmdStripProd->SetVerbose(verboseLevel);
92  fRun->AddTask(lmdStripProd);
93  // ----- MVD Pixel hit producer ---------------------------------------
94 // Double_t lx=0.01, ly=0.01, threshold=600, noise=200;
95 // PndMvdHybridHitProducer* mvdPixProd = new PndMvdHybridHitProducer(lx,ly,threshold,noise);
96  // PndSsdHybridHitProducer* ssdPixProd = new PndSsdHybridHitProducer();
97  // ssdPixProd->SetVerbose(verboseLevel);
98  // fRun->AddTask(ssdPixProd);
99 
100  // PndLmdNoiseProducer* lmdNoiseMaker = new PndLmdNoiseProducer();
101  // lmdNoiseMaker->SetVerbose(verboseLevel);
102  // fRun->AddTask(lmdNoiseMaker);
103 
104 
105 // FairParRootFileIo* output=new FairParRootFileIo(kTRUE);
106 // output->open(parOutFile.Data());
107 // rtdb->setOutput(output);
108  rtdb->setOutput(parInput1);
109  rtdb->print();
110  // ===== End of HitProducers =====
111  // =========================================================================
112  PndSdsGeoPar* geoPar = (PndSdsGeoPar*)(rtdb->getContainer("PndSdsGeoPar"));
113 
114  // ----- Intialise and run --------------------------------------------
115  fRun->Init();
116  fRun->Run(0,1000000);
117  rtdb->saveOutput();
118  rtdb->print();
119 
120  // ----- Finish -------------------------------------------------------
121  timer.Stop();
122  Double_t rtime = timer.RealTime();
123  Double_t ctime = timer.CpuTime();
124  cout << endl << endl;
125  cout << "Macro finished succesfully." << endl;
126  cout << "Output file is " << outFile << endl;
127  cout << "Parameter file is " << parFile << endl;
128  cout << "Real time " << rtime << " s, CPU time " << ctime << " s\a\a" << endl;
129  cout << endl;
130 
131 }
int verboseLevel
Definition: Lars/runMvdSim.C:7
PndMvdGeoPar * geoPar
TString outFile
Definition: hit_dirc.C:17
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
Double_t
TString parFile
Definition: hit_dirc.C:14
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