PandaRoot
BSEmcMultiWaveform.h
Go to the documentation of this file.
1 //=============================================================================
2 // BSEmcMultiWaveform.h
3 //
4 // Class to hold multiple waveforms from one Emc Hit / ADC readout
5 //
6 // Author: Christian Hammmann
7 // chammann@hiskp.uni-bonn.de
8 //
9 //=============================================================================
10 
11 //#pragma once
12 #ifndef BSEMCMULTIWAVEFORM_HH
13 #define BSEMCMULTIWAVEFORM_HH
14 
15 #include <memory>
16 #include <string>
17 #include <vector>
18 
19 #include "Rtypes.h"
20 #include "RtypesCore.h"
21 
22 #include "BSEmcDataBranchNames.h"
23 #include "BSEmcWaveform.h"
24 
25 class TBuffer;
26 class TClass;
27 class TMemberInspector;
28 
35 
37 
38  public:
39  BSEmcMultiWaveform() : BSEmcWaveform(), fSignals(1, std::vector<Double_t>(0, 0.)), fActiveWaveform(1) {}
40 
41  BSEmcMultiWaveform(Int_t t_trackid, Long_t t_detId, Long_t t_waveform_length = 128, Int_t t_hitIndex = -1);
42 
44  {
45  fSignal.clear();
46  fSignals.clear();
47  };
48 
49  void SetWaveform(const std::vector<Double_t> &t_signal, Int_t t_length, Int_t t_waveform);
50 
51  virtual void clearAndReset() /*override*/;
52 
53  virtual void Clear(Option_t * /*unused*/) /*override*/
54  {
55  fSignal.clear();
56  fSignals.clear();
57  };
58 
59  Int_t GetNumberOfWaveforms() const { return fSignals.size(); };
60  Int_t GetActiveWaveform() const { return fActiveWaveform; };
61  void SetActiveWaveform(Int_t t_active = 1) { fActiveWaveform = t_active; };
62  Int_t GetWaveformLength() const { return fSignals.at(fActiveWaveform).size(); }
63 
64  virtual std::vector<Double_t> GetSignal() const /*override*/;
65  const std::vector<Double_t> &GetSignal(Int_t t_waveform) const { return fSignals.at(t_waveform); }
66 
67  private:
68  std::vector<std::vector<Double_t>> fSignals{};
69  Int_t fActiveWaveform{-1};
70 
72 };
73 
74 #endif /*BSEMCMULTIWAVEFORM_HH*/
virtual void clearAndReset()
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
virtual std::vector< Double_t > GetSignal() const
Int_t GetActiveWaveform() const
Int_t GetNumberOfWaveforms() const
STL namespace.
interface for waveform modifiers
ClassDef(BSEmcAbsWaveformModifier, 1)
Class to hold multiple waveforms from one Emc Hit / ADC readout.
Int_t GetWaveformLength() const
void SetActiveWaveform(Int_t t_active=1)
const std::vector< Double_t > & GetSignal(Int_t t_waveform) const
std::vector< Double_t > fSignal
virtual void Clear(Option_t *)
void SetWaveform(const std::vector< Double_t > &t_signal, Int_t t_length, Int_t t_waveform)