1 #ifndef _sevt_PMTRecData_h_
2 #define _sevt_PMTRecData_h_
5 #include <utl/ShadowPtr.h>
6 #include <utl/LameShadowPtr_fwd.h>
7 #include <utl/MultiTrace.h>
8 #include <utl/QuadraticFitData.h>
9 #include <utl/TabulatedFunctionErrors.h>
10 #include <utl/TabulatedFunction.h>
11 #include <utl/IteratorRange.h>
13 #include <utl/ExponentialFitData.h>
14 #include <sevt/StationConstants.h>
15 #include <sevt/SignalSegment.h>
16 #include <sdet/Station.h>
23 class PMTRecData_ROOT;
88 typedef std::pair<unsigned int, unsigned int>
Piece;
236 ERROR(
"PMTRecData:: Muon production depth already exists - Not replacing");
double GetVEMCharge() const
double GetFallTimeRMS() const
RMS of the fall time from the PMTs.
utl::MultiTrace< double >::ConstIterator ConstVEMTraceIterator
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledTrace< T > > Iterator
void SetGainRatio(const double da)
void SetOnlineVEMPeak(const double peak, const double peakErr)
utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Traces calibrated in VEM Peak.
double GetTotalCharge() const
Total charge.
void SetRiseTimeCleaned(const double riseTime, const double rms)
Holds result of the quadratic fit.
void AddTrace(const int size, const double binSize, const int label)
class to hold data at PMT level
double GetRiseTimeCleanedRMS() const
void SetIsVEMChargeFromHistogram(const bool is)
double GetFallTimeCleaned() const
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES(_Iterator_, _ConstIterator_, _NamePrefix_)
total (shower and background)
const utl::ExponentialFitData & GetMuonChargeSlopeFitData() const
double GetHistogramVEMCharge() const
bool HasFADCBaseline(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
void MakeVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
double GetRiseTime() const
Average rise time from the PMTs.
int fFADCBaselineWindow[sdet::PMTConstants::eNumberOfGains]
utl::MultiTrace< double >::Iterator VEMTraceIterator
An iterator over the available VEM trace sources.
double GetFallTimeCleanedRMS() const
void SetShapeParameter(const double shape)
void SetAreaOverPeak(const double areaOverPeak)
const utl::QuadraticFitData & GetMuonPeakFitData() const
double GetFallTime() const
Average fall time from the PMTs.
double GetMuonChargeSlope() const
Slope of the muon charge histogram.
bool is(const double a, const double b)
double GetHistogramVEMPeak() const
double fMuonPulseDecayTimeError
bool fIsVEMPeakFromHistogram
void SetFallTime(const double fallTime, const double rms)
utl::ExponentialFitData & GetMuonChargeSlopeFitData()
void SetFADCBinSize(const double binSize)
void SetMuonPulseDecayTime(const double time, const double tErr=0)
double GetFADCBaselineError(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
double GetMuonPulseDecayTime() const
Slope of the muon shape histogram.
int GetFADCSaturatedBins(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
void MakeFADCBaseline(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
utl::TabulatedFunctionErrors & GetMuonProductionDepth()
void SetVEMCharge(const double charge, const double chargeErr)
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledTrace< T > > ConstIterator
bool IsVEMChargeFromHistogram() const
const SignalSegmentCollection & GetSignals() const
double GetVEMChargeError() const
double fRiseTimeCleanedRMS
void SetFADCTraceLength(const unsigned int traceLength)
void SetPeakAmplitude(const double peak)
FlatPieceCollection & GetBaselineFlatPieces(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
double fFADCBaselineError[sdet::PMTConstants::eNumberOfGains]
const utl::TraceD & GetFADCBaseline(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
void SetFADCSaturatedBins(const int num, const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
ConstVEMTraceIterator VEMTracesEnd() const
utl::QuadraticFitData & GetMuonChargeFitData()
double GetOnlineVEMPeakError() const
class to hold reconstructed data at PMT level
void SetT40(const double t40)
utl::QuadraticFitData & GetMuonPeakFitData()
unsigned int fFADCTraceLength
double GetRiseTimeRMS() const
RMS of the rise time from the PMTs.
utl::ExponentialFitData & GetMuonShapeFitData()
void SetIsVEMPeakFromHistogram(const bool is)
double GetTotalChargeError() const
void SetHistogramVEMCharge(const double charge, const double chargeErr)
utl::ExponentialFitData fMuonChargeSlopeFitData
double GetOnlineVEMCharge() const
bool IsUsedInGlobalMPD() const
void SetVEMPeak(const double peak, const double peakErr)
void SetFallTimeCleaned(const double fallTime, const double rms)
void SetMuonChargeSlope(const double slope)
in unit of 1/VEM
double GetShapeParameter() const
void SetOnlineVEMCharge(const double charge, const double chargeErr)
void SetHistogramVEMPeak(const double peak, const double peakErr)
int fFADCSaturatedBins[sdet::PMTConstants::eNumberOfGains]
double fHistogramVEMCharge
int GetFADCBaselineWindow(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
void SetFADCBaselineWindow(const int sigma, const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
double fOnlineVEMPeakError
void SetTotalCharge(const double totalCharge, const double chErr=0)
double GetOnlineVEMChargeError() const
std::vector< Piece > FlatPieceCollection
const utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
void MakeMuonProductionDepth()
std::vector< SignalSegment > SignalSegmentCollection
const utl::ExponentialFitData & GetMuonShapeFitData() const
double GetOnlineVEMPeak() const
bool IsVEMPeakFromHistogram() const
double fMuonPulseDecayTime
sdet::PMTConstants::PMTGain GetGainUsed() const
void SetIsUsedInGlobalMPD(const bool is)
const utl::QuadraticFitData & GetMuonChargeFitData() const
SignalSegmentCollection & GetRawSignals()
double fHistogramVEMChargeError
double fHistogramVEMPeakError
utl::ShadowPtr< utl::TraceD > fFADCBaseline[sdet::PMTConstants::eNumberOfGains]
const utl::TabulatedFunctionErrors & GetMuonProductionDepth() const
Trace< T > & GetTrace(const int label=0)
Returns the trace for /par source.
double GetVEMPeakError() const
SignalSegmentCollection & GetSignals()
double GetMuonPulseDecayTimeError() const
void SetFADCBaselineError(const double error, const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
void SetT50(const double t50)
double GetRiseTimeCleaned() const
const FlatPieceCollection & GetBaselineFlatPieces(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
utl::QuadraticFitData fMuonChargeFitData
utl::QuadraticFitData fMuonPeakFitData
ConstVEMTraceIterator VEMTracesBegin() const
utl::ExponentialFitData fMuonShapeFitData
double GetHistogramVEMPeakError() const
SignalSegmentCollection fSignals
sdet::PMTConstants::PMTGain fGainUsed
utl::TraceD & GetFADCBaseline(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
void SetRiseTime(const double riseTime, const double rms)
void SetGainUsed(const sdet::PMTConstants::PMTGain gain)
VEMTraceIterator VEMTracesBegin()
double GetPeakAmplitude() const
Peak Amplitude.
utl::ShadowPtr< utl::TabulatedFunctionErrors > fMuonProductionDepth
bool HasVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
#define ERROR(message)
Macro for logging error messages.
const SignalSegmentCollection & GetRawSignals() const
VEMTraceIterator VEMTracesEnd()
double GetVEMPeak() const
std::pair< unsigned int, unsigned int > Piece
pieces of relative FADC flatnes in format [first, second)
double fFallTimeCleanedRMS
bool HasMuonProductionDepth() const
bool fIsVEMChargeFromHistogram
SignalSegmentCollection fRawSignals
FlatPieceCollection fFADCBaselineFlatPieces[sdet::PMTConstants::eNumberOfGains]
bool HasLabel(const int label) const
double GetAreaOverPeak() const
Area over peak.
double GetHistogramVEMChargeError() const
double GetGainRatio() const
double fOnlineVEMChargeError