PandaRoot
PndEmcBWEndcapTimebasedWaveforms.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------
2 // Author List:
3 // Phil Strother Original author
4 // Dima Melnichuk - adaption for PANDA
5 // Philippp Mahlberg - integrtion in timebased simulation concept
6 // Guang Zhao - implementation for bwec
7 //----------------------------------------------------------------------
8 
9 //#pragma once
10 #ifndef PndEmcBWEndcapTimebasedWaveforms_H
11 #define PndEmcBWEndcapTimebasedWaveforms_H
12 
13 #include <PndPersistencyTask.h>
14 
15 class PndEmcMapper;
17 class PndEmcGeoPar;
23 class TClonesArray;
24 
25 #define MULTI
26 
36 {
37 public:
38  // Constructors
39  PndEmcBWEndcapTimebasedWaveforms(Int_t verbose=0, Bool_t storewaves=kFALSE);
40  // Destructor
42 
43  virtual InitStatus Init();
44  virtual void Exec(Option_t* opt);
45 
46  void RunTimebased(Bool_t timebased = kTRUE) { fActivateBuffering = timebased; }
47  void SetExternalSimulator(PndEmcAbsWaveformSimulator* simulator) { fExternalSimulator = simulator; }
48  void SetStorageOfData(Bool_t storeWaves = kTRUE) {SetPersistency(storeWaves);}
49  void StoreDataClass(Bool_t storeData = kTRUE) { fStoreDataClass = storeData; }
50  void SingleAPDMode(Bool_t mode = kTRUE) { fSingleAPDMode = mode; }
51  void NoiseMode(Int_t mode = 1) { fNoiseMode = mode; } // 1 for reduced ifft, 0 for full ifft
52  void RunTestMode(Double_t energy = 0.01) { fTestMode = kTRUE; fTestEnergy = energy; }
53 
54 protected:
56  virtual void SetParContainers();
57 
58 private:
59  // don't allow copying (-Weffc++)
61  PndEmcBWEndcapTimebasedWaveforms& operator= (const PndEmcBWEndcapTimebasedWaveforms&); // no implementation
62 
63 private:
64 
66  TClonesArray* fHitArray;
67 
69  PndEmcWaveformBuffer* fWaveformBuffer;
70 
71  Bool_t fStoreDataClass;
72  Bool_t fActivateBuffering;
73 
74  PndEmcBWEndcapDigiPar* fDigiPar;
75  PndEmcGeoPar* fGeoPar;
76 
77  Bool_t fUse_photon_statistic;
78  Double_t fNPhotoElectronsPerMeV;
79  Double_t fExcessNoiseFactor;
80 
81  PndEmcAbsWaveformSimulator* fExternalSimulator;
82  PndEmcMultiWaveformSimulator* fAPD_LOWHIGH;
83 
84  Bool_t fSingleAPDMode;
85  Int_t fNoiseMode;
86  Bool_t fTestMode;
87  Double_t fTestEnergy;
88 
90 };
91 
92 #endif
interface for waveform modifiers
PndEmcBWEndcapTimebasedWaveforms(Int_t verbose=0, Bool_t storewaves=kFALSE)
void SetPersistency(Bool_t val=kTRUE)
Simulator to create PndEmcMultiWaveform.
Emc geometry mapper.
Definition: PndEmcMapper.h:22
virtual void Exec(Option_t *opt)
Taks to create waveforms from hits.
Abstract base class for waveform simulator.
parameter set of Emc digitisation
pulseshape interface
buffer for waveforms, used by PndEmcFWEndcapTimebasedWaveforms
void SetExternalSimulator(PndEmcAbsWaveformSimulator *simulator)
void SetStorageOfData(Bool_t storeWaves=kTRUE)
Method to specify whether waveforms are stored or not.