PandaRoot
PndDiscTaskDigitization.h
Go to the documentation of this file.
1 //-------------------------------------------------------------------------
2 // Author: Oliver Merle (Oliver.Merle@exp2.physik.uni-giessen.de)
3 // Changes: Mustafa Schmidt (Mustafa.A.Schmidt@physik.uni-giessen.de)
4 // Date: 30.11.2015
5 // Description: Digitization of Monte Carlo hits
6 //-------------------------------------------------------------------------
7 
8 #ifndef PNDDISCTASKDIGITIZATION_H
9 #define PNDDISCTASKDIGITIZATION_H
10 
11 #define USESENSORGRID
12 
13 // project specific
14 #include "PndDiscNoiseGeneration.h"
15 #include "PndDiscPhotodetector.h"
16 #include "PndDiscSensorGrid.h"
17 
18 // FAIR/PROOT
19 #include <PndPersistencyTask.h>
20 #include "PndDetectorList.h"
21 #include "FairMCEventHeader.h"
22 #include "FairWriteoutBuffer.h"
23 
24 // ROOT
25 #include "TString.h"
26 #include <Math/Interpolator.h> // ROOT imports from GSL -> GPL License !!!
27 
28 // cpp
29 #include <set>
30 
31 // class TClonesArray;
32 
34  public:
36  PndDiscTaskDigitization(const char *name);
37  virtual ~PndDiscTaskDigitization();
38 
39  // Implement FairTask interface:
40  virtual InitStatus Init();
41  virtual InitStatus ReInit();
42  virtual void Exec(Option_t *opt);
43  virtual void FinishEvent();
44  virtual void FinishTask();
45 
46  void RunTimeBased(Bool_t time_based) { is_time_based = time_based; }
47 
48  // Additional functionality
49  void FilterParticleSpecies(Int_t pdg);
50  void SetRunMixed(Bool_t is_mixed = kTRUE)
51  {
52  is_run_mixed = is_mixed;
53  }
54 
55  protected:
59 
61  TClonesArray *tclarr_mc_points;
62  TClonesArray *tclarr_particle_tracks_in;
64  TClonesArray *array;
65  std::set<int> particle_types;
66 
67  FairWriteoutBuffer *writeout_buffer;
68 
69  FairMCEventHeader *fMcEventHeader;
70 
71  Bool_t is_run_mixed;
72  Bool_t is_time_based;
73  Bool_t is_persistent;
74 
75 #ifdef USESENSORGRID
77 #else
78  // ROOT::Math::Interpolator pde_interpolator; //!
79  DiscDIRC_NoiseGeneration noise_generator;
80 #endif
81 
82  ClassDef(PndDiscTaskDigitization, 1)
83 };
84 
85 #endif // PNDDISCTASKDIGITIZATION_H
virtual InitStatus Init()
virtual ~PndDiscTaskDigitization()
DiscDIRC_Photodetector * photo_detector
FairWriteoutBuffer * writeout_buffer
particle types to filter in output
TString branch_name_mc_point
Branch name where mc points were stored.
TString folder_name_digits
Folder name for output in root file.
virtual void Exec(Option_t *opt)
virtual InitStatus ReInit()
void SetRunMixed(Bool_t is_mixed=kTRUE)
virtual void FinishTask()
FairMCEventHeader * fMcEventHeader
Int_t mc_point_branch_id
Cache branch id of the mc point branch for linking with FairLink.
TClonesArray * tclarr_particle_tracks_out
void FilterParticleSpecies(Int_t pdg)
Bool_t is_persistent
Write buffer to disc on/off.
virtual void FinishEvent()
TString branch_name_digits
Branch name where digitized hits shall be stored.
void RunTimeBased(Bool_t time_based)
Bool_t is_time_based
Time based buffering on/off.
TClonesArray * tclarr_particle_tracks_in
to cache the pointer to input TClonesArray returned by IO manager.