PandaRoot
BSEmcMultiWaveformSimulator.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 #ifndef BSEMCMULTIWAVEFORMSIMULATOR_HH
14 #define BSEMCMULTIWAVEFORMSIMULATOR_HH
15 
16 #include <vector>
17 
18 #include "Rtypes.h"
19 #include "RtypesCore.h"
20 
22 
23 class BSEmcAbsPulseshape;
24 class BSEmcMultiWaveform;
25 class TClonesArray;
27 class BSEmcWaveform;
28 class BSEmcWaveformData;
29 class TBuffer;
30 class TClass;
31 class TMemberInspector;
32 
40  public:
42  BSEmcMultiWaveformSimulator(Double_t t_sampleRate, BSEmcAbsPulseshape *t_pulseshape, Int_t t_wfMultiplicity);
43 
47  virtual void AddModifier(BSEmcAbsWaveformModifier *t_wfModifier, Int_t t_wfIndex);
48 
49  virtual Double_t GetTotalScale(Int_t t_wfIndex);
50 
51  protected:
53  virtual BSEmcWaveform *MakeWaveform(BSEmcWaveformData *t_wfData, TClonesArray *t_arrayToStore = nullptr) /*override*/;
54  virtual BSEmcWaveform *MakeSingleWaveform(Double_t t_depositEnergy, Double_t t_depositTime, TClonesArray *t_arrayToStore = nullptr, Int_t t_detId = -1, Int_t t_trackId = -1,
55  Int_t t_depositIndex = -1) /*override*/;
56 
57  private:
58  Int_t fWfMultiplicity{-1};
59  std::vector<Int_t> fIndexList{};
60 
61  BSEmcMultiWaveform *MultiplyWaveform(const BSEmcWaveform *t_singleWaveform, TClonesArray *t_arrayToStore);
62 
64 };
65 
66 #endif /*BSEMCMULTIWAVEFORMSIMULATOR_HH*/
virtual BSEmcWaveform * MakeSingleWaveform(Double_t t_depositEnergy, Double_t t_depositTime, TClonesArray *t_arrayToStore=nullptr, Int_t t_detId=-1, Int_t t_trackId=-1, Int_t t_depositIndex=-1)
virtual BSEmcWaveform * CallModifiers(BSEmcWaveform *t_wf)
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:75
virtual BSEmcWaveform * MakeWaveform(BSEmcWaveformData *t_wfData, TClonesArray *t_arrayToStore=nullptr)
Simulator to create BSEmcMultiWaveform.
interface for waveform modifiers
ClassDef(BSEmcAbsWaveformSimulator, 3)
virtual void AddModifier(BSEmcAbsWaveformModifier *t_wfModifier, Int_t t_wfIndex)
pulseshape interface
represents a simulated waveform in an emc crystal, used by BSEmcFwEndcapTimebasedWaveforms ...
Class to hold multiple waveforms from one Emc Hit / ADC readout.