FairRoot/PandaRoot
PndMasterDigiTask.cxx
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndMasterDigiTask source file -----
3 // ----- Created 31/01/16 by S. Spataro -----
4 // ----- Wrapper for digitizing tasks -----
5 // -------------------------------------------------------------------------
6 
7 
8 #include "PndMasterDigiTask.h"
9 #include "PndMasterTask.h"
10 
12 #include "PndMvdDigiTask.h"
13 #include "PndMvdClusterTask.h"
14 #include "PndEmcHitsToWaveform.h"
15 #include "PndEmcWaveformToDigi.h"
16 #include "PndEmcMakeCluster.h"
17 #include "PndEmcMakeBump.h"
19 #include "PndSciTDigiTask.h"
20 #include "PndMdtHitProducerIdeal.h"
21 #include "PndMdtTrkProducer.h"
22 #include "PndDrcHitProducerReal.h"
23 #include "PndGemDigitize.h"
24 #include "PndGemFindHits.h"
27 #include "PndRichHitProducer.h"
28 
29 
35 // ----- Default constructor -------------------------------------------
37  PndMasterTask("Master Digitization Task"), fOptions(options)
38 {
39  digi = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
40 
41  // ----- STT digi producers --------------------------------
42  Add(new PndSttHitProducerRealFast()); // 0
43  digi.kPndSttHitProducerRealFast = GetListOfTasks()->GetSize()-1;
44 
45  // ----- MVD hit producers ---------------------------------
46  Add(new PndMvdDigiTask()); // 1
47  digi.kPndMvdDigiTask = GetListOfTasks()->GetSize()-1;
48  Add(new PndMvdClusterTask()); // 2
49  digi.kPndMvdClusterTask = GetListOfTasks()->GetSize()-1;
50 
51  // ----- EMC hit producers ---------------------------------
52  Add(new PndEmcHitsToWaveform()); // 3
53  digi.kPndEmcHitsToWaveform = GetListOfTasks()->GetSize()-1;
54  PndEmcWaveformToDigi* emcwavetodigi = new PndEmcWaveformToDigi();
55  Add(emcwavetodigi); // 4
56  digi.kPndEmcWaveformToDigi = GetListOfTasks()->GetSize()-1;
57  if(fOptions.Contains("fakeonline")){
58  emcwavetodigi->SetFakeOnline(true);
59  }
60 
61  Add(new PndEmcMakeCluster()); // 5
62  digi.kPndEmcMakeCluster = GetListOfTasks()->GetSize()-1;
63  Add(new PndEmcMakeBump()); // 6
64  digi.kPndEmcMakeBump = GetListOfTasks()->GetSize()-1;
65 
66  // ----- SciT hit producers -------------------------------
67  //Add(new PndSciTHitProducerIdeal()); // 7
68  Add(new PndSciTDigiTask()); // 7
69  digi.kPndSciTDigiTask = GetListOfTasks()->GetSize()-1;
70 
71  // ----- MDT hit producers ---------------------------------
72  Add(new PndMdtHitProducerIdeal()); // 8
73  digi.kPndMdtHitProducerIdeal = GetListOfTasks()->GetSize()-1;
74  ((PndMdtHitProducerIdeal*)GetListOfTasks()->At(digi.kPndMdtHitProducerIdeal))->SetPositionSmearing(.3); // position smearing [cm]
75  Add(new PndMdtTrkProducer()); // 9
76  digi.kPndMdtTrkProducer = GetListOfTasks()->GetSize()-1;
77 
78  // ----- DRC hit producers ---------------------------------
79  Add(new PndDrcHitProducerReal()); // 10
80  digi.kPndDrcHitProducerReal = GetListOfTasks()->GetSize()-1;
81 
82  // ----- GEM hit producers ---------------------------------
83  if ( (!fOptions.Contains("nogem")) && (!fOptions.Contains("gem0")))
84  {
85  Add(new PndGemDigitize("GEM Digitizer", 0)); // 11
86  digi.kPndGemDigitize = GetListOfTasks()->GetSize()-1;
87  Add(new PndGemFindHits("GEM Hit Finder", 0)); // 12
88  digi.kPndGemFindHits = GetListOfTasks()->GetSize()-1;
89  }
90 
91  // ----- FTS hit producers ---------------------------------
92  Add(new PndFtsHitProducerRealFast()); // 13
93  digi.kPndFtsHitProducerRealFast = GetListOfTasks()->GetSize()-1;
94 
95  // ----- Ftof hit producers ---------------------------
96  Add(new PndFtofHitProducerIdeal()); // 14
97  digi.kPndFtofHitProducerIdeal = GetListOfTasks()->GetSize()-1;
98 
99  // ----- Rich hit producers ---------------------------
100  if ( !fOptions.Contains("day1") || !fOptions.Contains("phase1") )
101  {
102  Add(new PndRichHitProducer()); // 15
103  digi.kPndRichHitProducer = GetListOfTasks()->GetSize()-1;
104  }
105 
106  SetVerbose(0);
107 }
108 // -------------------------------------------------------------------------
109 
112 {
113  // ----- STT digi producers --------------------------------
115 
116  // ----- MVD hit producers ---------------------------------
117  ((PndMvdDigiTask*)GetListOfTasks()->At(digi.kPndMvdDigiTask))->SetPersistance(pers);
118  ((PndMvdClusterTask*)GetListOfTasks()->At(digi.kPndMvdClusterTask))->SetPersistance(pers);
119 
120  // ----- EMC hit producers ---------------------------------
121  ((PndEmcHitsToWaveform*)GetListOfTasks()->At(digi.kPndEmcHitsToWaveform))->SetStorageOfData(kFALSE);
122  ((PndEmcWaveformToDigi*)GetListOfTasks()->At(digi.kPndEmcWaveformToDigi))->SetStorageOfData(kTRUE);
123  ((PndEmcMakeCluster*)GetListOfTasks()->At(digi.kPndEmcMakeCluster))->SetStorageOfData(kTRUE);
124  ((PndEmcMakeBump*)GetListOfTasks()->At(digi.kPndEmcMakeBump))->SetStorageOfData(kTRUE);
125 
126  // ----- SciT hit producers -------------------------------
127  //((PndSciTHitProducerIdeal*)GetListOfTasks()->At(digi.kPndSciTHitProducerIdeal))->SetPersistence(pers);
128  ((PndSciTDigiTask*)GetListOfTasks()->At(digi.kPndSciTDigiTask))->SetPersistency(pers);
129 
130  // ----- MDT hit producers ---------------------------------
131  ((PndMdtHitProducerIdeal*)GetListOfTasks()->At(digi.kPndMdtHitProducerIdeal))->SetPersistency(pers);
132  ((PndMdtTrkProducer*)GetListOfTasks()->At(digi.kPndMdtTrkProducer))->SetPersistency(pers);
133 
134  // ----- DRC hit producers ---------------------------------
135  ((PndDrcHitProducerReal*)GetListOfTasks()->At(digi.kPndDrcHitProducerReal))->SetPersistency(pers);
136 
137  if ( (!fOptions.Contains("nogem")) && (!fOptions.Contains("gem0")))
138  {
139  // ----- GEM hit producers ---------------------------------
140  ((PndGemDigitize*)GetListOfTasks()->At(digi.kPndGemDigitize))->SetPersistency(pers);
141  ((PndGemFindHits*)GetListOfTasks()->At(digi.kPndGemFindHits))->SetPersistency(pers);
142  }
143 
144  // ----- FTS hit producers ---------------------------------
146 
147  // ----- Ftof hit producers ---------------------------
148  ((PndFtofHitProducerIdeal*)GetListOfTasks()->At(digi.kPndFtofHitProducerIdeal))->SetPersistency(pers);
149 
150  if ( (!fOptions.Contains("day1")) )
151  {
152  // ----- Rich hit producers ---------------------------
153  ((PndRichHitProducer*)GetListOfTasks()->At(digi.kPndRichHitProducer))->SetPersistency(pers);
154  }
155 
156  return;
157 }
158 
159 // ----- Destructor ----------------------------------------------------
161 {
162 }
163 // -------------------------------------------------------------------------
164 
Takes list of PndEmcHits and creates PndEmcWaveform.
mychain Add("run.root")
void SetFakeOnline(bool d=true)
void SetVerbose(Int_t iVerbose=1)
Set the Verbosity to all the tasks.
Emc SetStorageOfData(kFALSE)
struct PndMasterDigiTask::digiTaskList digi
Abstract class for all the master task list classes.
Definition: PndMasterTask.h:21
The default digitization tasks.
virtual void SetPersistency(Bool_t pers=kTRUE)
Set the persistency of all the tasks.
Takes clusters and slits them up into bumps.
mdtHitProd SetPositionSmearing(0.3)
Task to cluster PndEmcDigis.
PndMasterDigiTask(TString options="")
Default constructor with options This string can be: "" -> default settings full setup "day1" -> Set...
ClassImp(PndAnaContFact)
virtual ~PndMasterDigiTask()
Destructor.
Takes list of PndEmcWaveform and creates PndEmcDigi.
DemoPR SetPersistence()
TString fOptions
Options parsed to the digitization.