FairRoot/PandaRoot
digi_sttcombi.C
Go to the documentation of this file.
1 void digi_sttcombi(char inFile [] = "points_sttcombi.root", //Input file (MC events)
2  char parFile [] = "params_sttcombi.root",//Parameter file
3  char outFile [] = "digi_sttcombi.root" //Output file
4  )
5 
6 {
7  // ========================================================================
8  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
9  Int_t iVerbose = 0;
10 
11  // Number of events to process
12  Int_t nEvents = 0;
13 
14  // ---- Load libraries -------------------------------------------------
15  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
16  rootlogon();
17  TString sysFile = gSystem->Getenv("VMCWORKDIR");
18  // ------------------------------------------------------------------------
19 
20  // --- Now choose concrete engines for the different tasks -------------
21  // ------------------------------------------------------------------------
22 
23  // In general, the following parts need not be touched
24  // ========================================================================
25 
26  // ----- Timer --------------------------------------------------------
27  TStopwatch timer;
28  timer.Start();
29  // ------------------------------------------------------------------------
30 
31  // ----- Digitization run -------------------------------------------
32  FairRunAna* fRun= new FairRunAna();
33  fRun->SetInputFile(inFile);
34  fRun->SetOutputFile(outFile);
35 
36  // ------------------------------------------------------------------------
37 
38  // ----- Parameter database --------------------------------------------
39  TString allDigiFile = sysFile+"/macro/params/all.par";
40 
41  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
42  FairParRootFileIo* parInput1 = new FairParRootFileIo();
43  parInput1->open(parFile);
44 
45  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
46  parIo1->open(allDigiFile,"in");
47 
48  rtdb->setFirstInput(parInput1);
49  rtdb->setSecondInput(parIo1);
50  // ------------------------------------------------------------------------
51 
52  // ----- STT digi producers ---------------------------------
54  fRun->AddTask(sttHitProducer);
55 
56  // ----- MDV digi producers ---------------------------------
58  mvddigi->SetVerbose(iVerbose);
59  fRun->AddTask(mvddigi);
60 
62  mvdmccls->SetVerbose(iVerbose);
63  fRun->AddTask(mvdmccls);
64 
65  // ----- EMC hit producers ---------------------------------
66 
68  emcHitProd->SetStorageOfData(kTRUE);
69  fRun->AddTask(emcHitProd);
70 
71  //PndEmcFullDigiTask* fdig = new PndEmcFullDigiTask(0,kTRUE);
72  //fdig->SetStorageOfData(kTRUE);
73  //fRun->AddTask(fdig);
74 
75  //PndEmcMakeDigi* emcMakeDigi=new PndEmcMakeDigi();
76  //fRun->AddTask(emcMakeDigi); // fast digitization
77 
80 
81  emcHitsToWaveform->SetStorageOfData(kTRUE);
82  emcWaveformToDigi->SetStorageOfData(kTRUE);
83 
84  fRun->AddTask(emcHitsToWaveform); // full digitization
85  fRun->AddTask(emcWaveformToDigi); // full digitization
86 
88  emcMakeCluster->SetStorageOfData(kTRUE);
89  fRun->AddTask(emcMakeCluster);
90 
92  emcMakeBump->SetStorageOfData(kTRUE);
93  fRun->AddTask(emcMakeBump);
94 
96  fRun->AddTask(emcHdrFiller); // ECM header
97 
99  emcMakeRecoHit->SetStorageOfData(kTRUE);
100  fRun->AddTask(emcMakeRecoHit);
101 
103  clspl->SetStorageOfData(kTRUE);
104  fRun->AddTask(clspl);
105 
106  PndEmc2DLocMaxFinder* localMaxF = new PndEmc2DLocMaxFinder();
107  localMaxF->SetStorageOfData(kTRUE);
108  fRun->AddTask(localMaxF);
109 
110  // ----- MDT hit producers ---------------------------------
112  mdtHitProd->SetPositionSmearing(.3); // position smearing [cm]
113  fRun->AddTask(mdtHitProd);
114 
116  fRun->AddTask(mdtTrkProd);
117 
118  // ----- DRC hit producers ---------------------------------
120  drchit->SetVerbose(iVerbose);
121  fRun->AddTask(drchit);
122 
123  // ----- GEM hit producers ---------------------------------
124  Int_t verboseLevel = 0;
125  PndGemDigitize* gemDigitize = new PndGemDigitize("GEM Digitizer", verboseLevel);
126  fRun->AddTask(gemDigitize);
127 
128  PndGemFindHits* gemFindHits = new PndGemFindHits("GEM Hit Finder", verboseLevel);
129  fRun->AddTask(gemFindHits);
130 
131  // ----- FTS hit producers ---------------------------------
133  //PndFtsHitProducerIdeal* ftsHitProducer = new PndFtsHitProducerIdeal();
134  //PndFtsHitProducerRealFull* ftsHitProducer = new PndFtsHitProducerRealFull();
135  fRun->AddTask(ftsHitProducer);
136 
137  // ----- Intialise and run --------------------------------------------
138  fRun->Init();
139  fRun->Run(0, nEvents);
140 
141  rtdb->saveOutput();
142  rtdb->print();
143 
144  // ------------------------------------------------------------------------
145 
146  // ----- Finish -------------------------------------------------------
147 
148  timer.Stop();
149  Double_t rtime = timer.RealTime();
150  Double_t ctime = timer.CpuTime();
151  cout << "\n\nMacro finished succesfully.\n"
152  << "Output file is " << outFile
153  << "\nParameter file is " << parFile
154  << "\nReal time " << rtime << " s, CPU time " << ctime << " s.\n\n";
155  // ------------------------------------------------------------------------
156 
157  exit(0);
158 }
Takes list of PndEmcHits and creates PndEmcWaveform.
void SetStorageOfData(Bool_t val)
Method to specify whether clusters are stored or not.
PndGemFindHits * gemFindHits
void SetStorageOfData(Bool_t p=kTRUE)
int verboseLevel
Definition: Lars/runMvdSim.C:7
Create PndEmcRecoHit from PndEmcBump.
PndEmcHitsToWaveform * emcHitsToWaveform
Definition: full_emc.C:60
void SetStorageOfData(Bool_t val)
exit(0)
TString outFile
Definition: hit_dirc.C:17
PndEmcMakeRecoHit * emcMakeRecoHit
creates PndEmcHits from PndEmcPoints
PndEmcMakeBump * emcMakeBump
Definition: bump_emc.C:63
PndMvdStripClusterTask * mvdmccls
Definition: runclust.C:45
PndSttHitProducerRealFast * sttHitProducer
TString allDigiFile
Definition: hit_muo.C:36
PndEmcHdrFiller * emcHdrFiller
Definition: full_emc.C:68
void digi_sttcombi(char inFile[]="points_sttcombi.root", char parFile[]="params_sttcombi.root", char outFile[]="digi_sttcombi.root")
Definition: digi_sttcombi.C:1
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
void SetStorageOfData(Bool_t val)
PndMdtHitProducerIdeal * mdtHitProd
Definition: hit_muo.C:162
void SetStorageOfData(Bool_t val)
PndDrcHitProducerReal * drchit
Definition: hit_dirc_draw.C:73
TString sysFile
Double_t
TString parFile
Definition: hit_dirc.C:14
PndEmcMakeCluster * emcMakeCluster
Definition: full_emc.C:65
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
splits clusters on the basis of exponential distance from the bump centroid
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void SetStorageOfData(Bool_t val)
PndEmcHitProducer * emcHitProd
void SetStorageOfData(Bool_t val)
Method to specify whether bumps are stored or not.
Takes clusters and slits them up into bumps.
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
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.
void SetStorageOfData(Bool_t p=kTRUE)
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
Searches for local maxima in a cluster.
Task to create Emc header.
void SetPositionSmearing(Float_t res)
Set the smearing of the PndMdtHit position.