FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
PndEmcWaveformDigitizer Class Reference

waveform digitzer More...

#include <PndEmcWaveformDigitizer.h>

Inheritance diagram for PndEmcWaveformDigitizer:
PndEmcAbsWaveformModifier

Public Member Functions

 PndEmcWaveformDigitizer ()
 
 PndEmcWaveformDigitizer (Int_t nBits, Double_t energyRange, Double_t inputScale)
 
virtual void Modify (PndEmcWaveform *wf)
 
virtual Double_t GetScale ()
 

Protected Member Functions

std::vector< Double_t > & GetWaveformReference (PndEmcWaveform *wf)
 
 ClassDef (PndEmcAbsWaveformModifier, 1)
 

Private Attributes

Int_t fNBits
 
Double_t fEnergyRange
 
Double_t fInputScale
 
Int_t fTotalChannels
 
Double_t fOneBitResolution
 

Detailed Description

waveform digitzer

Author
Ph. Mahlberg mahlb.nosp@m.erg@.nosp@m.hiskp.nosp@m..uni.nosp@m.-bonn.nosp@m..de

Definition at line 10 of file PndEmcWaveformDigitizer.h.

Constructor & Destructor Documentation

PndEmcWaveformDigitizer::PndEmcWaveformDigitizer ( )
PndEmcWaveformDigitizer::PndEmcWaveformDigitizer ( Int_t  nBits,
Double_t  energyRange,
Double_t  inputScale 
)

Definition at line 16 of file PndEmcWaveformDigitizer.cxx.

References fEnergyRange, fInputScale, fOneBitResolution, and fTotalChannels.

16  :
17  fNBits(nBits),
18  fEnergyRange(energyRange),
19  fInputScale(inputScale) {
20  fTotalChannels = (Int_t) (TMath::Power(2, nBits) + 0.5);
22 }

Member Function Documentation

PndEmcAbsWaveformModifier::ClassDef ( PndEmcAbsWaveformModifier  ,
 
)
protectedinherited
virtual Double_t PndEmcWaveformDigitizer::GetScale ( )
inlinevirtual
std::vector<Double_t>& PndEmcAbsWaveformModifier::GetWaveformReference ( PndEmcWaveform wf)
inlineprotectedinherited

Definition at line 24 of file PndEmcAbsWaveformModifier.h.

References PndEmcWaveform::fSignal.

Referenced by Modify(), PndEmcShapingNoiseAdder::Modify(), and PndEmcWfRescaler::Modify().

24  {
25  if(PndEmcMultiWaveform* multiWf = dynamic_cast<PndEmcMultiWaveform*>(wf)) {
26  Int_t activeWf = multiWf->GetActiveWaveform();
27  return multiWf->fSignals.at(activeWf);
28  }
29  return wf->fSignal;
30  }
std::vector< Double_t > fSignal
Class to hold multiple waveforms from one Emc Hit / ADC readout.
void PndEmcWaveformDigitizer::Modify ( PndEmcWaveform wf)
virtual

Implements PndEmcAbsWaveformModifier.

Definition at line 24 of file PndEmcWaveformDigitizer.cxx.

References Double_t, fOneBitResolution, fTotalChannels, and PndEmcAbsWaveformModifier::GetWaveformReference().

24  {
25  for(std::vector<Double_t>::iterator it=GetWaveformReference(wf).begin(); it!=GetWaveformReference(wf).end(); ++it) {
26  Double_t channel = TMath::Floor((*it)/fOneBitResolution); //digitize
27  (*it) = (channel > fTotalChannels) ? fTotalChannels : channel; //clipping
28  }
29 }
Double_t
std::vector< Double_t > & GetWaveformReference(PndEmcWaveform *wf)

Member Data Documentation

Double_t PndEmcWaveformDigitizer::fEnergyRange
private

Definition at line 22 of file PndEmcWaveformDigitizer.h.

Referenced by PndEmcWaveformDigitizer().

Double_t PndEmcWaveformDigitizer::fInputScale
private

Definition at line 23 of file PndEmcWaveformDigitizer.h.

Referenced by GetScale(), and PndEmcWaveformDigitizer().

Int_t PndEmcWaveformDigitizer::fNBits
private

Definition at line 21 of file PndEmcWaveformDigitizer.h.

Double_t PndEmcWaveformDigitizer::fOneBitResolution
private

Definition at line 26 of file PndEmcWaveformDigitizer.h.

Referenced by Modify(), and PndEmcWaveformDigitizer().

Int_t PndEmcWaveformDigitizer::fTotalChannels
private

Definition at line 25 of file PndEmcWaveformDigitizer.h.

Referenced by GetScale(), Modify(), and PndEmcWaveformDigitizer().


The documentation for this class was generated from the following files: