PandaRoot
PndEmcBWEndcapTimebasedWaveforms.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //----------------------------------------------------------------------
14 // Author List:
15 // Phil Strother Original author
16 // Dima Melnichuk - adaption for PANDA
17 // Philippp Mahlberg - integrtion in timebased simulation concept
18 // Guang Zhao - implementation for bwec
19 //----------------------------------------------------------------------
20 
21 //#pragma once
22 #ifndef PndEmcBWEndcapTimebasedWaveforms_H
23 #define PndEmcBWEndcapTimebasedWaveforms_H
24 
25 #include <PndPersistencyTask.h>
26 
27 class PndEmcMapper;
29 class PndEmcGeoPar;
35 class TClonesArray;
36 
37 #define MULTI
38 
48 {
49 public:
50  // Constructors
51  PndEmcBWEndcapTimebasedWaveforms(Int_t verbose=0, Bool_t storewaves=kFALSE);
52  // Destructor
54 
55  virtual InitStatus Init();
56  virtual void Exec(Option_t* opt);
57 
58  void RunTimebased(Bool_t timebased = kTRUE) { fActivateBuffering = timebased; }
59  void SetExternalSimulator(PndEmcAbsWaveformSimulator* simulator) { fExternalSimulator = simulator; }
60  void SetStorageOfData(Bool_t storeWaves = kTRUE) {SetPersistency(storeWaves);}
61  void StoreDataClass(Bool_t storeData = kTRUE) { fStoreDataClass = storeData; }
62  void SingleAPDMode(Bool_t mode = kTRUE) { fSingleAPDMode = mode; }
63  void NoiseMode(Int_t mode = 1) { fNoiseMode = mode; } // 1 for reduced ifft, 0 for full ifft
64  void RunTestMode(Double_t energy = 0.01) { fTestMode = kTRUE; fTestEnergy = energy; }
65 
66 protected:
68  virtual void SetParContainers();
69 
70 private:
71  // don't allow copying (-Weffc++)
73  PndEmcBWEndcapTimebasedWaveforms& operator= (const PndEmcBWEndcapTimebasedWaveforms&); // no implementation
74 
75 private:
76 
78  TClonesArray* fHitArray;
79 
81  PndEmcWaveformBuffer* fWaveformBuffer;
82 
83  Bool_t fStoreDataClass;
84  Bool_t fActivateBuffering;
85 
86  PndEmcBWEndcapDigiPar* fDigiPar;
87  PndEmcGeoPar* fGeoPar;
88 
89  Bool_t fUse_photon_statistic;
90  Double_t fNPhotoElectronsPerMeV;
91  Double_t fExcessNoiseFactor;
92 
93  PndEmcAbsWaveformSimulator* fExternalSimulator;
94  PndEmcMultiWaveformSimulator* fAPD_LOWHIGH;
95 
96  Bool_t fSingleAPDMode;
97  Int_t fNoiseMode;
98  Bool_t fTestMode;
99  Double_t fTestEnergy;
100 
102 };
103 
104 #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:34
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.