PandaRoot
PndEmcMultiWaveformSimulator.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 PNDEMCMULTIWAVEFORMSIMULATOR_H_
14 #define PNDEMCMULTIWAVEFORMSIMULATOR_H_
15 
17 #include <vector>
18 
21 class TClonesArray;
22 
30  public:
32  PndEmcMultiWaveformSimulator(Double_t sampleRate, PndEmcAbsPulseshape *pulseshape, Int_t wfMultiplicity);
33 
37  virtual void AddModifier(PndEmcAbsWaveformModifier *wfModifier, Int_t wfIndex);
38 
39  virtual Double_t GetTotalScale(Int_t wfIndex);
40 
41  protected:
43  virtual PndEmcWaveform *MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore = nullptr);
44  virtual PndEmcWaveform *MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore = nullptr, Int_t detId = -1, Int_t trackId = -1, Int_t hitIndex = -1);
45 
46  private:
47  Int_t fWfMultiplicity;
48  std::vector<Int_t> fIndexList;
49 
50  PndEmcMultiWaveform *MultiplyWaveform(const PndEmcWaveform *singleWaveform, TClonesArray *arrayToStore);
51 
53 };
54 
55 #endif
virtual PndEmcWaveform * CallModifiers(PndEmcWaveform *wf)
interface for waveform modifiers
virtual void AddModifier(PndEmcAbsWaveformModifier *wfModifier, Int_t wfIndex)
Simulator to create PndEmcMultiWaveform.
virtual PndEmcWaveform * MakeWaveform(PndEmcWaveformData *wfData, TClonesArray *arrayToStore=nullptr)
ClassDef(PndEmcAbsWaveformSimulator, 3)
represents a simulated waveform in an emc crystal
Class to hold multiple waveforms from one Emc Hit / ADC readout.
pulseshape interface
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
virtual PndEmcWaveform * MakeSingleWaveform(Double_t hitEnergy, Double_t hitTime, TClonesArray *arrayToStore=nullptr, Int_t detId=-1, Int_t trackId=-1, Int_t hitIndex=-1)