FairRoot/PandaRoot
QA/timeOrdered/run_digi.C
Go to the documentation of this file.
1 #include "../auxi.C"
2 int run_digi()
3 {
4  // Macro created 20/09/2006 by S.Spataro
5  // It loads a simulation file and digitize hits
6 
7  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
8  Int_t iVerbose = 0; // just forget about it, for the moment
9 
10  // Input file (MC events)
11  TString inFile = "sim_complete.root";
12  Int_t nEvents = 0;
13 
14  PndFileNameCreator creator(inFile.Data());
15  TString parFile = creator.GetParFileName().c_str();
16  TString outFile = creator.GetDigiFileName("timebased").c_str();
17  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
18  // Digitisation file (ascii)
19  TString digiFile = "all.par";
20  // ----- Timer --------------------------------------------------------
21  TStopwatch timer;
22 
23  // ----- Reconstruction run -------------------------------------------
24  FairRunAna *fRun= new FairRunAna();
25  fRun->SetInputFile(inFile);
26  fRun->SetOutputFile(outFile);
27  fRun->SetGenerateRunInfo(kFALSE);
28  fRun->SetEventMeanTime(50);
29  //fRun->SetBeamTime(400, 2000);
30  fRun->SetUseFairLinks(kTRUE);
31  // ----- Parameter database --------------------------------------------
32  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
33  allDigiFile += "/macro/params/";
34  allDigiFile += digiFile;
35 
36  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
37  FairParRootFileIo* parInput1 = new FairParRootFileIo();
38  parInput1->open(parFile.Data());
39 
40  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
41  parIo1->open(allDigiFile.Data(),"in");
42 
43  rtdb->setFirstInput(parInput1);
44  rtdb->setSecondInput(parIo1);
45 
46  // ----- STT digi producers ---------------------------------
48  sttHitProducer->RunTimeBased();
49  fRun->AddTask(sttHitProducer);
50 
51  PndSttHitSorterTask* sttSorter = new PndSttHitSorterTask(5000, 50, "STTHit", "STTSortedHits", "PndSTT");
52  fRun->AddTask(sttSorter);
53 
54  // ----- MDV digi producers ---------------------------------
56  mvddigi->RunTimeBased();
57  mvddigi->SetVerbose(iVerbose);
58  fRun->AddTask(mvddigi);
59 
60  // ----- EMC hit producers ---------------------------------
61  //wf simulation
62  Bool_t storeWfDataClass = kTRUE;
63  Bool_t storeWf = kTRUE;
65  wfTask->StoreDataClass(storeWfDataClass);
66  wfTask->SetStorageOfData(storeWf);
67  wfTask->RunTimebased();
68 
69  Bool_t storeUnsortedDigis = kTRUE;
70  PndEmcFWEndcapDigi* digiTask = new PndEmcFWEndcapDigi(iVerbose, storeUnsortedDigis);
71 
72  PndEmcDigiSorterTask* sorterTask = new PndEmcDigiSorterTask(10000, 1, "EmcDigi", "EmcDigiSorted", "Emc");
73  sorterTask->SetVerbose(iVerbose);
74 
75  fRun->AddTask(wfTask);
76  fRun->AddTask(digiTask);
77  fRun->AddTask(sorterTask);
78 
79  //PndEmcHdrFiller* emcHdrFiller = new PndEmcHdrFiller();
80  //fRun->AddTask(emcHdrFiller); // ECM header
81 
82  // ----- SciT hit producers ---------------------------
83  Double_t SciTDeadtime = 1000;
84  Double_t SciTdt = 0.1;
85 
86  PndSciTDigiTask* SciTDigi = new PndSciTDigiTask();
87  SciTDigi->SetVerbose(iVerbose);
88  SciTDigi->SetDeadTime(SciTDeadtime);
89  SciTDigi->SetTimeResolution(SciTdt);
90  SciTDigi->RunTimeBased();
91  fRun->AddTask(SciTDigi);
92 
93  // ----- MDT hit producers ---------------------------------
95  mdtHitProd->SetPositionSmearing(.3); // position smearing [cm]
96  fRun->AddTask(mdtHitProd);
97 
98  // ----- DRC hit producers ---------------------------------
100  drchit->SetVerbose(iVerbose);
101  fRun->AddTask(drchit);
102 
103  // ----- GEM hit producers ---------------------------------
104  Int_t verboseLevel = 0;
105  PndGemDigitize* gemDigitize = new PndGemDigitize("GEM Digitizer", verboseLevel);
106  fRun->AddTask(gemDigitize);
107 
108 
109  // ----- FTS hit producers ---------------------------------
111  ftsHitProducer->RunTimeBased();
112  // fRun->AddTask(ftsHitProducer);
113 
114  PndFtsHitSorterTask* ftsSorter = new PndFtsHitSorterTask(5000, 50, "FTSHit", "FTSSortedHits", "PndFTS");
115  // fRun->AddTask(ftsSorter);
116 
117  // ----- Ftof hit producers ---------------------------
119  ftofhit->SetVerbose(iVerbose);
120  fRun->AddTask(ftofhit);
121 
122  // ----- Intialise and run --------------------------------------------
123  fRun->Init();
124 
125  timer.Start();
126  fRun->Run(0, nEvents);
127 
128  // ----- Finish -------------------------------------------------------
129  timer.Stop();
130  Double_t rtime = timer.RealTime();
131  Double_t ctime = timer.CpuTime();
132  cout << endl << endl;
133  cout << "Macro finished successfully." << endl;
134  cout << "Output file is " << outFile << endl;
135  cout << "Parameter file is " << parFile << endl;
136  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
137  cout << endl;
138  // ------------------------------------------------------------------------
139  cout << " Test passed" << endl;
140  cout << " All ok " << endl;
141 
142  CloseGeoManager();
143  return 0;
144 }
void SetDeadTime(Double_t deadtime)
int verboseLevel
Definition: Lars/runMvdSim.C:7
TString outFile
Definition: hit_dirc.C:17
void StoreDataClass(Bool_t storeData=kTRUE)
Method to specify whether waveforms are stored or not.
Taks to create waveforms from hits.
TString digiFile
Definition: bump_emc.C:20
TString inFile
Definition: hit_dirc.C:8
PndSttHitProducerRealFast * sttHitProducer
TString allDigiFile
Definition: hit_muo.C:36
void CloseGeoManager()
Definition: QA/auxi.C:11
FairRunAna * fRun
Definition: hit_dirc.C:58
Task to create digis from waveforms.
PndMdtHitProducerIdeal * mdtHitProd
Definition: hit_muo.C:162
PndDrcHitProducerReal * drchit
Definition: hit_dirc_draw.C:73
A simple class which adds the corresponding file extensions to a given base class.
Double_t
void SetTimeResolution(Double_t dt)
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
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
PndFtofHitProducerIdeal * ftofhit
Double_t ctime
Definition: hit_dirc.C:114
PndGemDigitize * gemDigitize
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
int run_digi()
PndMvdCreateDefaultApvMap * creator
void SetStorageOfData(Bool_t storeWaves=kTRUE)
Int_t iVerbose
PndMvdDigiTask * mvddigi
PndFtsHitProducerRealFast * ftsHitProducer
Double_t rtime
Definition: hit_dirc.C:113
void SetPositionSmearing(Float_t res)
Set the smearing of the PndMdtHit position.