PandaRoot
PndEmcShashlykTimebasedWaveforms.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 shashlyk
19 //----------------------------------------------------------------------
20 
21 //#pragma once
22 #ifndef PndEmcShashlykTimebasedWaveforms_H
23 #define PndEmcShashlykTimebasedWaveforms_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  PndEmcShashlykTimebasedWaveforms(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 RunTestMode(Double_t energy = 0.01) { fTestMode = kTRUE; fTestEnergy = energy; }
63 
64 protected:
66  virtual void SetParContainers();
67 
68 private:
69  // don't allow copying (-Weffc++)
71  PndEmcShashlykTimebasedWaveforms& operator= (const PndEmcShashlykTimebasedWaveforms&); // no implementation
72 
73 private:
74 
76  TClonesArray* fHitArray;
77 
79  PndEmcWaveformBuffer* fWaveformBuffer;
80 
81  Bool_t fStoreDataClass;
82  Bool_t fActivateBuffering;
83 
84  PndEmcShashlykDigiPar* fDigiPar;
85  PndEmcGeoPar* fGeoPar;
86 
87  Bool_t fUse_photon_statistic;
88  Double_t fNPhotoElectronsPerMeV;
89  Double_t fExcessNoiseFactor;
90  Double_t fSamplingFactor;
91 
92  PndEmcAbsWaveformSimulator* fExternalSimulator;
94 
95  Bool_t fTestMode;
96  Double_t fTestEnergy;
97 
99 };
100 
101 #endif
interface for waveform modifiers
void SetPersistency(Bool_t val=kTRUE)
Emc geometry mapper.
Definition: PndEmcMapper.h:34
Abstract base class for waveform simulator.
Taks to create waveforms from hits.
parameter set of Emc digitisation
PndEmcShashlykTimebasedWaveforms(Int_t verbose=0, Bool_t storewaves=kFALSE)
void SetExternalSimulator(PndEmcAbsWaveformSimulator *simulator)
pulseshape interface
buffer for waveforms, used by PndEmcFWEndcapTimebasedWaveforms
virtual void Exec(Option_t *opt)
void SetStorageOfData(Bool_t storeWaves=kTRUE)
Method to specify whether waveforms are stored or not.