FairRoot/PandaRoot
QA/mdt/digi_complete_tb.C
Go to the documentation of this file.
1 #include "../auxi.C"
2 
4 {
5  // Macro created 20/09/2006 by S.Spataro
6  // It loads a simulation file and digitize hits
7 
8  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
9  Int_t iVerbose = 0; // just forget about it, for the moment
10 
11  // Input file (MC events)
12  TString inFile = "sim_complete.root";
13 
14  // Parameter file
15  TString parFile = "simparams.root"; // at the moment you do not need it
16 
17  // Digitisation file (ascii)
18  TString digiFile = "all.par";
19 
20  // Output file
21  TString outFile = "digi_complete.root";
22 
23  // ----- Timer --------------------------------------------------------
24  TStopwatch timer;
25 
26  // ----- Reconstruction run -------------------------------------------
27  FairRunAna *fRun= new FairRunAna();
28  fRun->SetInputFile(inFile);
29  fRun->SetOutputFile(outFile);
30  fRun->SetGenerateRunInfo(kFALSE);
31  fRun->SetUseFairLinks(kTRUE);
32  // ----- Parameter database --------------------------------------------
33  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
34  allDigiFile += "/macro/params/";
35  allDigiFile += digiFile;
36 
37  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
38  FairParRootFileIo* parInput1 = new FairParRootFileIo();
39  parInput1->open(parFile.Data());
40 
41  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
42  parIo1->open(allDigiFile.Data(),"in");
43 
44  rtdb->setFirstInput(parInput1);
45  rtdb->setSecondInput(parIo1);
46 
47  // ----- STT digi producers ---------------------------------
49  fRun->AddTask(sttHitProducer);
50 
51  // ----- MDV digi producers ---------------------------------
53  mvddigi->SetVerbose(iVerbose);
54  fRun->AddTask(mvddigi);
55 
57  mvdmccls->SetVerbose(iVerbose);
58  fRun->AddTask(mvdmccls);
59 
60  // ----- EMC hit producers ---------------------------------
63  emcHitsToWaveform->SetStorageOfData(kFALSE);
64  //emcWaveformToDigi->SetStorageOfData(kFALSE);
65  fRun->AddTask(emcHitsToWaveform); // full digitization
66  fRun->AddTask(emcWaveformToDigi); // full digitization
67 
69  fRun->AddTask(emcMakeCluster);
70 
72  fRun->AddTask(emcMakeBump);
73 
74  //PndEmcHdrFiller* emcHdrFiller = new PndEmcHdrFiller();
75  //fRun->AddTask(emcHdrFiller); // ECM header
76 
77  // ----- SciT hit producers ---------------------------
79  tofhit->SetVerbose(iVerbose);
80  fRun->AddTask(tofhit);
81 
82  // ----- MDT hit producers ---------------------------------
83  PndMdtPointsToWaveform* mdtWaveform = new PndMdtPointsToWaveform(0, kTRUE);
84  fRun->AddTask(mdtWaveform);
85  PndMdtDigitization* mdtDigitization = new PndMdtDigitization(0, kTRUE);
86  fRun->AddTask(mdtDigitization);
87 
88  mdtWaveform->RunTimeBased();
89  mdtDigitization->RunTimeBased();
90  PndMdtDigiSorterTask* mdtDigiSorter = new PndMdtDigiSorterTask(20, 50, "MdtDigi", "TSMdtDigi", "Mdt");
91  fRun->AddTask(mdtDigiSorter);
92  mdtDigiSorter->SetVerbose(0);
93 
95  mdtHitProd->RunTimeBased();
96  fRun->AddTask(mdtHitProd);
97 
99  fRun->AddTask(mdtTrkProd);
100 
101  // ----- DRC hit producers ---------------------------------
103  drchit->SetVerbose(iVerbose);
104  fRun->AddTask(drchit);
105 
106  // ----- GEM hit producers ---------------------------------
107  Int_t verboseLevel = 0;
108  PndGemDigitize* gemDigitize = new PndGemDigitize("GEM Digitizer", verboseLevel);
109  fRun->AddTask(gemDigitize);
110 
111  PndGemFindHits* gemFindHits = new PndGemFindHits("GEM Hit Finder", verboseLevel);
112  fRun->AddTask(gemFindHits);
113 
114  // ----- FTS hit producers ---------------------------------
116  fRun->AddTask(ftsHitProducer);
117 
118  // ----- Ftof hit producers ---------------------------
120  ftofhit->SetVerbose(iVerbose);
121  fRun->AddTask(ftofhit);
122 
123  // ----- Intialise and run --------------------------------------------
124  fRun->Init();
125 
126  timer.Start();
127  fRun->Run();
128 
129  // ----- Finish -------------------------------------------------------
130  timer.Stop();
131  Double_t rtime = timer.RealTime();
132  Double_t ctime = timer.CpuTime();
133  cout << endl << endl;
134  cout << "Macro finished successfully." << endl;
135  cout << "Output file is " << outFile << endl;
136  cout << "Parameter file is " << parFile << endl;
137  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
138  cout << endl;
139  // ------------------------------------------------------------------------
140  cout << " Test passed" << endl;
141  cout << " All ok " << endl;
142 
143  CloseGeoManager();
144  return 0;
145 }
Takes list of PndEmcHits and creates PndEmcWaveform.
PndGemFindHits * gemFindHits
int verboseLevel
Definition: Lars/runMvdSim.C:7
PndEmcHitsToWaveform * emcHitsToWaveform
Definition: full_emc.C:60
int digi_complete_tb()
TString outFile
Definition: hit_dirc.C:17
TString digiFile
Definition: bump_emc.C:20
PndEmcMakeBump * emcMakeBump
Definition: bump_emc.C:63
TString inFile
Definition: hit_dirc.C:8
PndMvdStripClusterTask * mvdmccls
Definition: runclust.C:45
PndSttHitProducerRealFast * sttHitProducer
TString allDigiFile
Definition: hit_muo.C:36
void CloseGeoManager()
Definition: QA/auxi.C:11
PndFtofHitProducerIdeal * tofhit
Definition: hit_ftof.C:68
FairRunAna * fRun
Definition: hit_dirc.C:58
void SetStorageOfData(Bool_t val)
PndMdtHitProducerIdeal * mdtHitProd
Definition: hit_muo.C:162
PndDrcHitProducerReal * drchit
Definition: hit_dirc_draw.C:73
Double_t
TString parFile
Definition: hit_dirc.C:14
PndEmcMakeCluster * emcMakeCluster
Definition: full_emc.C:65
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
Takes clusters and slits them up into bumps.
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
PndFtofHitProducerIdeal * ftofhit
Double_t ctime
Definition: hit_dirc.C:114
PndGemDigitize * gemDigitize
PndEmcWaveformToDigi * emcWaveformToDigi
Definition: full_emc.C:61
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
Task to cluster PndEmcDigis.
virtual void RunTimeBased()
Int_t iVerbose
PndMdtTrkProducer * mdtTrkProd
Definition: hit_muo.C:166
Takes list of PndEmcWaveform and creates PndEmcDigi.
PndMvdDigiTask * mvddigi
PndFtsHitProducerRealFast * ftsHitProducer
Double_t rtime
Definition: hit_dirc.C:113