FairRoot/PandaRoot
PndEmcMultiWaveform.cxx
Go to the documentation of this file.
1 
2 //=============================================================================
3 // PndEmcMultiWaveform.cxx
4 //
5 // Class to hold multiple waveforms from one Emc Hit / ADC readout
6 //
7 // Author: Christian Hammmann
8 // chammann@hiskp.uni-bonn.de
9 //
10 //=============================================================================
11 
12 #include "PndEmcMultiWaveform.h"
13 #include "FairRootManager.h"
14 
15 
16 PndEmcMultiWaveform::PndEmcMultiWaveform(int trackId, long detId, long waveform_length, Int_t hitIndex):PndEmcWaveform(trackId,detId,0,waveform_length,hitIndex), //sample Rate=0
17  fSignals(1,std::vector<Double_t>(waveform_length,0.)),
18  fActiveWaveform(1)
19 {
20  if(FairRootManager::Instance()!=NULL) {
21  SetLink(FairLink(-1, FairRootManager::Instance()->GetEntryNr(), "EmcHit", hitIndex));
22  }
23 }
24 
26  fSignals.clear();
27  fSignals.at(0)=std::vector<Double_t>(fWaveformLength,0.);
28 }
29 
30 std::vector<Double_t> PndEmcMultiWaveform::GetSignal() const{
31  if( fActiveWaveform <1 || fActiveWaveform >= (int)fSignals.size()){
32  return fSignals.at(0);
33  }else{
34  return fSignals.at(fActiveWaveform);
35  }
36 }
37 
38 void PndEmcMultiWaveform::SetWaveform(const std::vector<Double_t>&signal,Int_t ,Int_t Waveform){ // length //[R.K.03/2017] unused variable(s)
39  if(Waveform < 0){
40  return;
41  }
42  if(Waveform>=(int)fSignals.size()){
43  fSignals.insert(fSignals.end(),Waveform-fSignals.size()+1,std::vector<Double_t>(fWaveformLength,0.));
44  }
45  fSignals[Waveform]= signal;
46 }
47 
48 
virtual std::vector< Double_t > GetSignal() const
void SetWaveform(const std::vector< Double_t > &signal, Int_t length, Int_t Waveform)
Double_t
represents a simulated waveform in an emc crystal
Class to hold multiple waveforms from one Emc Hit / ADC readout.
ClassImp(PndAnaContFact)
std::vector< std::vector< Double_t > > fSignals
virtual void clearAndReset()