PandaRoot
PndEmcFWEndcapTimebasedWaveforms.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 //----------------------------------------------------------------------
19 
20 //#pragma once
21 #ifndef PndEmcFWEndcapTimebasedWaveforms_H
22 #define PndEmcFWEndcapTimebasedWaveforms_H
23 
24 #include <PndPersistencyTask.h>
25 
26 class PndEmcMapper;
28 class PndEmcGeoPar;
34 class TClonesArray;
35 
36 #define MULTI
37 
47  public:
48  // Constructors
49  PndEmcFWEndcapTimebasedWaveforms(Int_t verbose = 0, Bool_t storewaves = kFALSE);
50  // Destructor
52 
53  virtual InitStatus Init();
54  virtual void Exec(Option_t *opt);
55 
56  void RunTimebased(Bool_t timebased = kTRUE) { fActivateBuffering = timebased; };
57  void SetExternalSimulator(PndEmcAbsWaveformSimulator *simulator) { fExternalSimulator = simulator; }
58  void SetStorageOfData(Bool_t storeWaves = kTRUE) { SetPersistency(storeWaves); };
59  void StoreDataClass(Bool_t storeData = kTRUE) { fStoreDataClass = storeData; };
60  void SetNewWvShape(Bool_t newShape = kTRUE) { fnewShape = newShape; }; // Set a new waveform shape
61 
62  protected:
64  virtual void SetParContainers();
65 
66  private:
67  // don't allow copying (-Weffc++)
69  PndEmcFWEndcapTimebasedWaveforms &operator=(const PndEmcFWEndcapTimebasedWaveforms &); // no implementation
70 
71  private:
73  TClonesArray *fHitArray;
74 
76  PndEmcWaveformBuffer *fWaveformBuffer;
77 
78  Bool_t fStoreWaves;
79  Bool_t fnewShape;
80  Bool_t fStoreDataClass;
81  Bool_t fActivateBuffering;
82 
83  PndEmcFWEndcapDigiPar *fDigiPar;
84  PndEmcGeoPar *fGeoPar;
85 
86  Bool_t fUse_photon_statistic;
87  Double_t fNPhotoElectronsPerMeV;
88  Double_t fExcessNoiseFactor;
89  Double_t SumEnergyofhits;
90  Double_t fEnergyDigiThreshold;
91 
92  PndEmcAbsWaveformSimulator *fExternalSimulator;
93  PndEmcMultiWaveformSimulator *fAPD_LOWHIGH;
94  PndEmcAbsPulseshape *fPulseshape;
95 
97 };
98 
99 #endif
interface for waveform modifiers
void StoreDataClass(Bool_t storeData=kTRUE)
Method to specify whether waveforms are stored or not.
virtual void Exec(Option_t *opt)
Taks to create waveforms from hits.
void SetPersistency(Bool_t val=kTRUE)
Simulator to create PndEmcMultiWaveform.
Emc geometry mapper.
Definition: PndEmcMapper.h:34
void SetExternalSimulator(PndEmcAbsWaveformSimulator *simulator)
Abstract base class for waveform simulator.
parameter set for the FWEndcap variant of waveform simulation
pulseshape interface
buffer for waveforms, used by PndEmcFWEndcapTimebasedWaveforms
void SetStorageOfData(Bool_t storeWaves=kTRUE)
PndEmcFWEndcapTimebasedWaveforms(Int_t verbose=0, Bool_t storewaves=kFALSE)