diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 9dec9751bcc30872aca378a609414bf3d4284263..0cdd682e5223373a8580b6793fac4af0463f3c4e 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -53,6 +53,7 @@ THcAerogel::THcAerogel( ) : frPosAdcPed = NULL; frPosAdcPulseInt = NULL; frPosAdcPulseAmp = NULL; + frPosAdcPulseTime = NULL; frNegAdcPedRaw = NULL; frNegAdcPulseIntRaw = NULL; frNegAdcPulseAmpRaw = NULL; @@ -60,6 +61,7 @@ THcAerogel::THcAerogel( ) : frNegAdcPed = NULL; frNegAdcPulseInt = NULL; frNegAdcPulseAmp = NULL; + frNegAdcPulseTime = NULL; fPosAdcErrorFlag = NULL; fNegAdcErrorFlag = NULL; @@ -84,6 +86,7 @@ THcAerogel::~THcAerogel() delete frPosAdcPed; frPosAdcPed = NULL; delete frPosAdcPulseInt; frPosAdcPulseInt = NULL; delete frPosAdcPulseAmp; frPosAdcPulseAmp = NULL; + delete frPosAdcPulseTime; frPosAdcPulseTime = NULL; delete frNegAdcPedRaw; frNegAdcPedRaw = NULL; delete frNegAdcPulseIntRaw; frNegAdcPulseIntRaw = NULL; delete frNegAdcPulseAmpRaw; frNegAdcPulseAmpRaw = NULL; @@ -91,6 +94,7 @@ THcAerogel::~THcAerogel() delete frNegAdcPed; frNegAdcPed = NULL; delete frNegAdcPulseInt; frNegAdcPulseInt = NULL; delete frNegAdcPulseAmp; frNegAdcPulseAmp = NULL; + delete frNegAdcPulseTime; frNegAdcPulseTime = NULL; delete fPosAdcErrorFlag; fPosAdcErrorFlag = NULL; delete fNegAdcErrorFlag; fNegAdcErrorFlag = NULL; @@ -240,6 +244,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) frPosAdcPed = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frPosAdcPulseInt = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frPosAdcPulseAmp = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); + frPosAdcPulseTime = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frNegAdcPedRaw = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frNegAdcPulseIntRaw = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frNegAdcPulseAmpRaw = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); @@ -247,6 +252,7 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date ) frNegAdcPed = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frNegAdcPulseInt = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); frNegAdcPulseAmp = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); + frNegAdcPulseTime = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); fPosAdcErrorFlag = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); fNegAdcErrorFlag = new TClonesArray("THcSignalHit", fNelem*MaxNumAdcPulse); @@ -368,6 +374,7 @@ Int_t THcAerogel::DefineVariables( EMode mode ) {"posAdcPed", "Positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, {"posAdcPulseInt", "Positive ADC pulse integrals", "frPosAdcPulseInt.THcSignalHit.GetData()"}, {"posAdcPulseAmp", "Positive ADC pulse amplitudes", "frPosAdcPulseAmp.THcSignalHit.GetData()"}, + {"posAdcPulseTime", "Positive ADC pulse times", "frPosAdcPulseTime.THcSignalHit.GetData()"}, {"negAdcPedRaw", "Negative Raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, {"negAdcPulseIntRaw", "Negative Raw ADC pulse integrals", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}, @@ -376,6 +383,7 @@ Int_t THcAerogel::DefineVariables( EMode mode ) {"negAdcPed", "Negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, {"negAdcPulseInt", "Negative ADC pulse integrals", "frNegAdcPulseInt.THcSignalHit.GetData()"}, {"negAdcPulseAmp", "Negative ADC pulse amplitudes", "frNegAdcPulseAmp.THcSignalHit.GetData()"}, + {"negAdcPulseTime", "Negative ADC pulse times", "frNegAdcPulseTime.THcSignalHit.GetData()"}, { 0 } }; DefineVarsFromList( vars, mode); @@ -471,6 +479,7 @@ void THcAerogel::Clear(Option_t* opt) frPosAdcPed->Clear(); frPosAdcPulseInt->Clear(); frPosAdcPulseAmp->Clear(); + frPosAdcPulseTime->Clear(); frNegAdcPedRaw->Clear(); frNegAdcPulseIntRaw->Clear(); @@ -479,6 +488,7 @@ void THcAerogel::Clear(Option_t* opt) frNegAdcPed->Clear(); frNegAdcPulseInt->Clear(); frNegAdcPulseAmp->Clear(); + frNegAdcPulseTime->Clear(); fPosAdcErrorFlag->Clear(); fNegAdcErrorFlag->Clear(); @@ -584,6 +594,7 @@ Int_t THcAerogel::Decode( const THaEvData& evdata ) ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(npmt, rawPosAdcHit.GetPulseTime(thit)); if (rawPosAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 0); if (rawPosAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(npmt, 1); @@ -605,6 +616,7 @@ Int_t THcAerogel::Decode( const THaEvData& evdata ) ((THcSignalHit*) frNegAdcPulseAmp->ConstructedAt(nrNegAdcHits))->Set(npmt, rawNegAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frNegAdcPulseTimeRaw->ConstructedAt(nrNegAdcHits))->Set(npmt, rawNegAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(nrNegAdcHits))->Set(npmt, rawNegAdcHit.GetPulseTime(thit)); if (rawNegAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) fNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(npmt, 0); if (rawNegAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(npmt, 1); diff --git a/src/THcAerogel.h b/src/THcAerogel.h index c1a49931a55bd58b6b1eedd54182c3c036370611..55e8a58be449bef8911a5f95376656756e5a42db 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -84,6 +84,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { TClonesArray* frPosAdcPed; TClonesArray* frPosAdcPulseInt; TClonesArray* frPosAdcPulseAmp; + TClonesArray* frPosAdcPulseTime; TClonesArray* frNegAdcPedRaw; TClonesArray* frNegAdcPulseIntRaw; TClonesArray* frNegAdcPulseAmpRaw; @@ -91,6 +92,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { TClonesArray* frNegAdcPed; TClonesArray* frNegAdcPulseInt; TClonesArray* frNegAdcPulseAmp; + TClonesArray* frNegAdcPulseTime; TClonesArray* fPosAdcErrorFlag; TClonesArray* fNegAdcErrorFlag; // Individual PMT data objects diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 06c9768214c4156e699107129be424dc340ba2e4..4b8c42fd41814d71da604b7049ae7162f1f717ac 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -52,6 +52,7 @@ THcCherenkov::THcCherenkov( const char* name, const char* description, frAdcPed = new TClonesArray("THcSignalHit", MaxNumCerPmt*MaxNumAdcPulse); frAdcPulseInt = new TClonesArray("THcSignalHit", MaxNumCerPmt*MaxNumAdcPulse); frAdcPulseAmp = new TClonesArray("THcSignalHit", MaxNumCerPmt*MaxNumAdcPulse); + frAdcPulseTime = new TClonesArray("THcSignalHit", MaxNumCerPmt*MaxNumAdcPulse); fAdcErrorFlag = new TClonesArray("THcSignalHit", MaxNumCerPmt*MaxNumAdcPulse); fNumAdcHits = vector<Int_t> (MaxNumCerPmt, 0.0); @@ -80,6 +81,7 @@ THcCherenkov::THcCherenkov( ) : frAdcPed = NULL; frAdcPulseInt = NULL; frAdcPulseAmp = NULL; + frAdcPulseTime = NULL; fAdcErrorFlag = NULL; InitArrays(); @@ -96,6 +98,7 @@ THcCherenkov::~THcCherenkov() delete frAdcPed; frAdcPed = NULL; delete frAdcPulseInt; frAdcPulseInt = NULL; delete frAdcPulseAmp; frAdcPulseAmp = NULL; + delete frAdcPulseTime; frAdcPulseTime = NULL; delete fAdcErrorFlag; fAdcErrorFlag = NULL; DeleteArrays(); @@ -251,6 +254,7 @@ Int_t THcCherenkov::DefineVariables( EMode mode ) {"adcPed", "ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}, {"adcPulseInt", "ADC pulse integrals", "frAdcPulseInt.THcSignalHit.GetData()"}, {"adcPulseAmp", "ADC pulse amplitudes", "frAdcPulseAmp.THcSignalHit.GetData()"}, + {"adcPulseTime", "ADC pulse times", "frAdcPulseTime.THcSignalHit.GetData()"}, { 0 } }; DefineVarsFromList( vars, mode); @@ -302,6 +306,7 @@ void THcCherenkov::Clear(Option_t* opt) frAdcPed->Clear(); frAdcPulseInt->Clear(); frAdcPulseAmp->Clear(); + frAdcPulseTime->Clear(); fAdcErrorFlag->Clear(); for (UInt_t ielem = 0; ielem < fNumAdcHits.size(); ielem++) @@ -345,9 +350,9 @@ Int_t THcCherenkov::Decode( const THaEvData& evdata ) while(ihit < fNhits) { - THcCherenkovHit* hit = (THcCherenkovHit*) fRawHitList->At(ihit); - Int_t npmt = hit->fCounter; - THcRawAdcHit& rawAdcHit = hit->GetRawAdcHitPos(); + THcCherenkovHit* hit = (THcCherenkovHit*) fRawHitList->At(ihit); + Int_t npmt = hit->fCounter; + THcRawAdcHit& rawAdcHit = hit->GetRawAdcHitPos(); for (UInt_t thit = 0; thit < rawAdcHit.GetNPulses(); thit++) { @@ -361,6 +366,7 @@ Int_t THcCherenkov::Decode( const THaEvData& evdata ) ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(npmt, rawAdcHit.GetPulseTime(thit)); if (rawAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 0); if (rawAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) fAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(npmt, 1); diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h index bb7145b16beb2cc12de3e653a9fbeb8f64441523..b8f2bdf1a49d1ab191db3609d4de457d61488b11 100644 --- a/src/THcCherenkov.h +++ b/src/THcCherenkov.h @@ -101,6 +101,7 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList { TClonesArray* frAdcPed; TClonesArray* frAdcPulseInt; TClonesArray* frAdcPulseAmp; + TClonesArray* frAdcPulseTime; TClonesArray* fAdcErrorFlag; void Setup(const char* name, const char* description); diff --git a/src/THcRawAdcHit.cxx b/src/THcRawAdcHit.cxx index 60dd6eda5cb9016b32ee0e9aa6a90c300d570408..37b6b8e60e8a1c6dae65ecc4b5d6ac221ccdd20d 100644 --- a/src/THcRawAdcHit.cxx +++ b/src/THcRawAdcHit.cxx @@ -179,12 +179,9 @@ Returns 0 if no signal pedestal is set. #include "THcRawAdcHit.h" - #include <stdexcept> - #include "TString.h" - THcRawAdcHit::THcRawAdcHit() : TObject(), fNPedestalSamples(4), fNPeakSamples(9), @@ -194,32 +191,29 @@ THcRawAdcHit::THcRawAdcHit() : fHasMulti(kFALSE), fNPulses(0), fNSamples(0) {} - THcRawAdcHit& THcRawAdcHit::operator=(const THcRawAdcHit& right) { TObject::operator=(right); if (this != &right) { fPed = right.fPed; for (UInt_t i=0; i<fMaxNPulses; ++i) { - fPulseInt[i] = right.fPulseInt[i]; - fPulseAmp[i] = right.fPulseAmp[i]; + fPulseInt[i] = right.fPulseInt[i]; + fPulseAmp[i] = right.fPulseAmp[i]; fPulseTime[i] = right.fPulseTime[i]; } for (UInt_t i=0; i<fMaxNSamples; ++i) { fSample[i] = right.fSample[i]; } fHasMulti = right.fHasMulti; - fNPulses = right.fNPulses; + fNPulses = right.fNPulses; fNSamples = right.fNSamples; } return *this; } - THcRawAdcHit::~THcRawAdcHit() {} - void THcRawAdcHit::Clear(Option_t* opt) { TObject::Clear(opt); @@ -237,7 +231,6 @@ void THcRawAdcHit::Clear(Option_t* opt) { fNSamples = 0; } - void THcRawAdcHit::SetData(Int_t data) { if (fNPulses >= fMaxNPulses) { throw std::out_of_range( @@ -248,7 +241,6 @@ void THcRawAdcHit::SetData(Int_t data) { ++fNPulses; } - void THcRawAdcHit::SetSample(Int_t data) { if (fNSamples >= fMaxNSamples) { throw std::out_of_range( @@ -259,7 +251,6 @@ void THcRawAdcHit::SetSample(Int_t data) { ++fNSamples; } - void THcRawAdcHit::SetDataTimePedestalPeak( Int_t data, Int_t time, Int_t pedestal, Int_t peak ) { @@ -276,7 +267,6 @@ void THcRawAdcHit::SetDataTimePedestalPeak( ++fNPulses; } - Int_t THcRawAdcHit::GetRawData(UInt_t iPulse) const { if (iPulse >= fNPulses && iPulse != 0) { TString msg = TString::Format( @@ -293,7 +283,6 @@ Int_t THcRawAdcHit::GetRawData(UInt_t iPulse) const { } } - Double_t THcRawAdcHit::GetAverage(UInt_t iSampleLow, UInt_t iSampleHigh) const { if (iSampleHigh >= fNSamples || iSampleLow >= fNSamples) { TString msg = TString::Format( @@ -327,7 +316,6 @@ Int_t THcRawAdcHit::GetIntegral(UInt_t iSampleLow, UInt_t iSampleHigh) const { } } - Double_t THcRawAdcHit::GetData( UInt_t iPedLow, UInt_t iPedHigh, UInt_t iIntLow, UInt_t iIntHigh ) const { @@ -336,27 +324,22 @@ Double_t THcRawAdcHit::GetData( - GetAverage(iPedHigh, iPedLow) * (iIntHigh - iIntLow + 1); } - UInt_t THcRawAdcHit::GetNPulses() const { return fNPulses; } - UInt_t THcRawAdcHit::GetNSamples() const { return fNSamples; } - Bool_t THcRawAdcHit::HasMulti() const { return fHasMulti; } - Int_t THcRawAdcHit::GetPedRaw() const { return fPed; } - Int_t THcRawAdcHit::GetPulseIntRaw(UInt_t iPulse) const { if (iPulse < fNPulses) { return fPulseInt[iPulse]; @@ -373,7 +356,6 @@ Int_t THcRawAdcHit::GetPulseIntRaw(UInt_t iPulse) const { } } - Int_t THcRawAdcHit::GetPulseAmpRaw(UInt_t iPulse) const { if (iPulse < fNPulses) { return fPulseAmp[iPulse]; @@ -390,7 +372,6 @@ Int_t THcRawAdcHit::GetPulseAmpRaw(UInt_t iPulse) const { } } - Int_t THcRawAdcHit::GetPulseTimeRaw(UInt_t iPulse) const { if (iPulse < fNPulses) { return fPulseTime[iPulse]; @@ -407,7 +388,6 @@ Int_t THcRawAdcHit::GetPulseTimeRaw(UInt_t iPulse) const { } } - Int_t THcRawAdcHit::GetSampleRaw(UInt_t iSample) const { if (iSample < fNSamples) { return fSample[iSample]; @@ -421,26 +401,21 @@ Int_t THcRawAdcHit::GetSampleRaw(UInt_t iSample) const { } } - Double_t THcRawAdcHit::GetPed() const { - return static_cast<Double_t>(fPed)/static_cast<Double_t>(fNPedestalSamples); + return (static_cast<Double_t>(fPed)/static_cast<Double_t>(fNPedestalSamples))*GetAdcTomV(); } - Double_t THcRawAdcHit::GetPulseInt(UInt_t iPulse) const { - return static_cast<Double_t>(fPulseInt[iPulse]) - static_cast<Double_t>(fPed)*fPeakPedestalRatio; + return (static_cast<Double_t>(fPulseInt[iPulse]) - static_cast<Double_t>(fPed)*fPeakPedestalRatio)*GetAdcTopC(); } - Double_t THcRawAdcHit::GetPulseAmp(UInt_t iPulse) const { - return static_cast<Double_t>(fPulseAmp[iPulse]) - static_cast<Double_t>(fPed)/static_cast<Double_t>(fNPedestalSamples); + return (static_cast<Double_t>(fPulseAmp[iPulse]) - static_cast<Double_t>(fPed)/static_cast<Double_t>(fNPedestalSamples))*GetAdcTomV(); } - -//Int_t THcRawAdcHit::GetPulseTime(UInt_t iPulse) const { -// return static_cast<Double_t>(fAdcTime[iPulse]); -//} - +Double_t THcRawAdcHit::GetPulseTime(UInt_t iPulse) const { + return (static_cast<Double_t>(fPulseTime[iPulse])*GetAdcTons()); +} Int_t THcRawAdcHit::GetSampleIntRaw() const { Int_t integral = 0; @@ -452,12 +427,10 @@ Int_t THcRawAdcHit::GetSampleIntRaw() const { return integral; } - Double_t THcRawAdcHit::GetSampleInt() const { return static_cast<Double_t>(GetSampleIntRaw()) - GetPed()*static_cast<Double_t>(fNSamples); } - void THcRawAdcHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) { if (NSA < 0 || NSB < 0 || NPED < 0) { TString msg = TString::Format( @@ -471,5 +444,22 @@ void THcRawAdcHit::SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) { fPeakPedestalRatio = 1.0*fNPeakSamples/fNPedestalSamples; } +// FADC conversion factors +// Convert pedestal and amplitude to mV +Double_t THcRawAdcHit::GetAdcTomV() const { + // 1000 mV / 4096 ADC channels + return (fAdcRange*1000. / fNAdcChan); +} + +// Convert integral to pC +Double_t THcRawAdcHit::GetAdcTopC() const { + // (1 V / 4096 adc channels) * (4 ns time sample / 50 ohms input resistance) = 0.020 pc/channel + return (fAdcRange / fNAdcChan) * (fAdcTimeSample / fAdcImpedence); +} + +// Convert time sub samples to ns +Double_t THcRawAdcHit::GetAdcTons() const { + return fAdcTimeRes; +} ClassImp(THcRawAdcHit) diff --git a/src/THcRawAdcHit.h b/src/THcRawAdcHit.h index 86c565cf5f3b2f509c07073e2ddd3fa52b75f989..71a5c270230f7f1250cb23035fe3e608b78b1955 100644 --- a/src/THcRawAdcHit.h +++ b/src/THcRawAdcHit.h @@ -41,23 +41,33 @@ class THcRawAdcHit : public TObject { Double_t GetPed() const; Double_t GetPulseInt(UInt_t iPulse=0) const; Double_t GetPulseAmp(UInt_t iPulse=0) const; - //Int_t GetPulseTime(UInt_t iPulse=0) const; + Double_t GetPulseTime(UInt_t iPulse=0) const; //Int_t GetSample(UInt_t iSample=0) const; - Int_t GetSampleIntRaw() const; + Int_t GetSampleIntRaw() const; Double_t GetSampleInt() const; + Double_t GetAdcTomV() const; + Double_t GetAdcTopC() const; + Double_t GetAdcTons() const; void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED); protected: - static const UInt_t fMaxNPulses = 4; + static const UInt_t fMaxNPulses = 4; static const UInt_t fMaxNSamples = 511; + + // FADC conversion factors + const Double_t fNAdcChan = 4096.0; // Number of FADC channels in units of ADC channels + const Double_t fAdcRange = 1.0; // Dynamic range of FADCs in units of V, // TO-DO: Get fAdcRange from pre-start event + const Double_t fAdcImpedence = 50.0; // FADC input impedence in units of Ohms + const Double_t fAdcTimeSample = 4.0; // Length of FADC time sample in units of ns + const Double_t fAdcTimeRes = 0.0625; // FADC time resolution in units of ns Int_t fNPedestalSamples; // TODO: Get this from prestart event... Int_t fNPeakSamples; Double_t fPeakPedestalRatio; Double_t fSubsampleToTimeFactor; - + Int_t fPed; Int_t fPulseInt[fMaxNPulses]; Int_t fPulseAmp[fMaxNPulses]; diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx index 6f804ec68b409a6d165971f1222f983040c2ed08..a66064fb8a8c5e3110ff913ec64ddd86d73418b0 100644 --- a/src/THcScintillatorPlane.cxx +++ b/src/THcScintillatorPlane.cxx @@ -50,27 +50,29 @@ THcScintillatorPlane::THcScintillatorPlane( const char* name, frPosADCPeds = new TClonesArray("THcSignalHit",16); frNegADCPeds = new TClonesArray("THcSignalHit",16); - frPosTdcTimeRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); + frPosTdcTimeRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); frPosAdcPulseTimeRaw = new TClonesArray("THcSignalHit", 16); - frPosTdcTime = new TClonesArray("THcSignalHit", 16); - frPosAdcPed = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseInt = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frPosTdcTime = new TClonesArray("THcSignalHit", 16); + frPosAdcPed = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseInt = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseTime = new TClonesArray("THcSignalHit", 16); - frNegTdcTimeRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); + frNegTdcTimeRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); frNegAdcPulseTimeRaw = new TClonesArray("THcSignalHit", 16); - frNegTdcTime = new TClonesArray("THcSignalHit", 16); - frNegAdcPed = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseInt = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frNegTdcTime = new TClonesArray("THcSignalHit", 16); + frNegAdcPed = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseInt = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseTime = new TClonesArray("THcSignalHit", 16); fPlaneNum = planenum; fTotPlanes = planenum; @@ -106,6 +108,7 @@ THcScintillatorPlane::~THcScintillatorPlane() delete frPosAdcPed; delete frPosAdcPulseInt; delete frPosAdcPulseAmp; + delete frPosAdcPulseTime; delete frNegTdcTimeRaw; delete frNegAdcPedRaw; @@ -117,6 +120,7 @@ THcScintillatorPlane::~THcScintillatorPlane() delete frNegAdcPed; delete frNegAdcPulseInt; delete frNegAdcPulseAmp; + delete frNegAdcPulseTime; delete [] fPosCenter; @@ -351,6 +355,7 @@ Int_t THcScintillatorPlane::DefineVariables( EMode mode ) {"posAdcPed", "List of positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, {"posAdcPulseInt", "List of positive ADC pulse integrals.", "frPosAdcPulseInt.THcSignalHit.GetData()"}, {"posAdcPulseAmp", "List of positive ADC pulse amplitudes.", "frPosAdcPulseAmp.THcSignalHit.GetData()"}, + {"posAdcPulseTime", "List of positive ADC pulse times.", "frPosAdcPulseTime.THcSignalHit.GetData()"}, {"negTdcTimeRaw", "List of negative raw TDC values.", "frNegTdcTimeRaw.THcSignalHit.GetData()"}, {"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, @@ -362,6 +367,7 @@ Int_t THcScintillatorPlane::DefineVariables( EMode mode ) {"negAdcPed", "List of negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, {"negAdcPulseInt", "List of negative ADC pulse integrals.", "frNegAdcPulseInt.THcSignalHit.GetData()"}, {"negAdcPulseAmp", "List of negative ADC pulse amplitudes.", "frNegAdcPulseAmp.THcSignalHit.GetData()"}, + {"negAdcPulseTime", "List of negative ADC pulse times.", "frNegAdcPulseTime.THcSignalHit.GetData()"}, {"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}, // Hodo+ raw ADC multiplicity Int_t {"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}, // Hodo- raw ADC multiplicity "" @@ -454,6 +460,7 @@ void THcScintillatorPlane::Clear( Option_t* ) frPosAdcPed->Clear(); frPosAdcPulseInt->Clear(); frPosAdcPulseAmp->Clear(); + frPosAdcPulseTime->Clear(); frNegTdcTimeRaw->Clear(); frNegAdcPedRaw->Clear(); @@ -465,8 +472,7 @@ void THcScintillatorPlane::Clear( Option_t* ) frNegAdcPed->Clear(); frNegAdcPulseInt->Clear(); frNegAdcPulseAmp->Clear(); - - + frNegAdcPulseTime->Clear(); //Clear occupancies for (UInt_t ielem = 0; ielem < fNumGoodPosAdcHits.size(); ielem++) @@ -590,6 +596,7 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frPosAdcPed->Clear(); frPosAdcPulseInt->Clear(); frPosAdcPulseAmp->Clear(); + frPosAdcPulseTime->Clear(); frNegTdcTimeRaw->Clear(); frNegAdcPedRaw->Clear(); @@ -601,6 +608,7 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frNegAdcPed->Clear(); frNegAdcPulseInt->Clear(); frNegAdcPulseAmp->Clear(); + frNegAdcPulseTime->Clear(); //stripped fNScinHits=0; @@ -675,6 +683,7 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTime(thit)); if (rawPosAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(padnum, 0); if (rawPosAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(padnum, 1); @@ -695,6 +704,7 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frNegAdcPulseAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frNegAdcPulseTimeRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTime(thit)); if (rawNegAdcHit.GetPulseAmpRaw(thit) > 0) ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(padnum, 0); if (rawNegAdcHit.GetPulseAmpRaw(thit) <= 0) ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(padnum, 1); diff --git a/src/THcScintillatorPlane.h b/src/THcScintillatorPlane.h index a56889b4f14e9139526b4239a6eb57883baea1ff..bc900ed565a4bd07e16efd2c6f5029e1d2b095a9 100644 --- a/src/THcScintillatorPlane.h +++ b/src/THcScintillatorPlane.h @@ -89,6 +89,7 @@ class THcScintillatorPlane : public THaSubDetector { TClonesArray* frPosAdcPed; TClonesArray* frPosAdcPulseInt; TClonesArray* frPosAdcPulseAmp; + TClonesArray* frPosAdcPulseTime; TClonesArray* frNegTdcTimeRaw; TClonesArray* frNegAdcPedRaw; @@ -100,6 +101,7 @@ class THcScintillatorPlane : public THaSubDetector { TClonesArray* frNegAdcPed; TClonesArray* frNegAdcPulseInt; TClonesArray* frNegAdcPulseAmp; + TClonesArray* frNegAdcPulseTime; //Hodoscopes Multiplicities Int_t fTotNumPosAdcHits; diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index 007f5df9b5f154b5d07d120dbc9f7ccfcd685cb4..b5bbd8c225770d185eb9b5e9927f9ec5d57f4726 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -41,15 +41,16 @@ THcShowerArray::THcShowerArray( const char* name, fADCHits = new TClonesArray("THcSignalHit",100); fLayerNum = layernum; - frAdcPedRaw = new TClonesArray("THcSignalHit", 16); - frAdcErrorFlag = new TClonesArray("THcSignalHit", 16); - frAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); - frAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); + frAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frAdcErrorFlag = new TClonesArray("THcSignalHit", 16); + frAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); + frAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); frAdcPulseTimeRaw = new TClonesArray("THcSignalHit", 16); - frAdcPed = new TClonesArray("THcSignalHit", 16); - frAdcPulseInt = new TClonesArray("THcSignalHit", 16); - frAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frAdcPed = new TClonesArray("THcSignalHit", 16); + frAdcPulseInt = new TClonesArray("THcSignalHit", 16); + frAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frAdcPulseTime = new TClonesArray("THcSignalHit", 16); fClusterList = new THcShowerClusterList; // List of hit clusters } @@ -85,6 +86,7 @@ THcShowerArray::~THcShowerArray() delete frAdcPed; frAdcPed = NULL; delete frAdcPulseInt; frAdcPulseInt = NULL; delete frAdcPulseAmp; frAdcPulseAmp = NULL; + delete frAdcPulseTime; frAdcPulseTime = NULL; // delete [] fA; //delete [] fP; @@ -404,6 +406,7 @@ Int_t THcShowerArray::DefineVariables( EMode mode ) {"adcPed", "List of ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}, {"adcPulseInt", "List of ADC pulse integrals.", "frAdcPulseInt.THcSignalHit.GetData()"}, {"adcPulseAmp", "List of ADC pulse amplitudes.", "frAdcPulseAmp.THcSignalHit.GetData()"}, + {"adcPulseTime", "List of ADC pulse times.", "frAdcPulseTime.THcSignalHit.GetData()"}, { 0 } }; DefineVarsFromList( vars, mode); @@ -471,6 +474,7 @@ void THcShowerArray::Clear( Option_t* ) frAdcPed->Clear(); frAdcPulseInt->Clear(); frAdcPulseAmp->Clear(); + frAdcPulseTime->Clear(); for (UInt_t ielem = 0; ielem < fGoodAdcPed.size(); ielem++) { fGoodAdcPulseIntRaw.at(ielem) = 0.0; @@ -895,6 +899,7 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frAdcPed->Clear(); frAdcPulseInt->Clear(); frAdcPulseAmp->Clear(); + frAdcPulseTime->Clear(); for(Int_t i=0;i<fNelem;i++) { //fA[i] = 0; @@ -937,6 +942,8 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frAdcPulseTime->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPulseTime(thit)); + if (rawAdcHit.GetPulseAmp(thit)>0&&rawAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frAdcErrorFlag->ConstructedAt(nrAdcHits))->Set(padnum,0); } else { diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index 0ac6f1a87c440fdfc10ec01d0b45638fe4d5705a..acd12aed063d7fc0c1bef8f2411cd228faa61a69 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -193,6 +193,7 @@ protected: TClonesArray* frAdcPed; TClonesArray* frAdcPulseInt; TClonesArray* frAdcPulseAmp; + TClonesArray* frAdcPulseTime; //Quatitites for efficiency calculations. diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx index 2ae4b91339d681ac38948ac507f711c37d62c34b..3249b2edd4bca2e389721067f2ad09896e63ed6b 100644 --- a/src/THcShowerPlane.cxx +++ b/src/THcShowerPlane.cxx @@ -41,27 +41,29 @@ THcShowerPlane::THcShowerPlane( const char* name, fPosADCHits = new TClonesArray("THcSignalHit",fNelem); fNegADCHits = new TClonesArray("THcSignalHit",fNelem); - frPosAdcErrorFlag = new TClonesArray("THcSignalHit", 16); - frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcThreshold = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcErrorFlag = new TClonesArray("THcSignalHit", 16); + frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcThreshold = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); frPosAdcPulseTimeRaw = new TClonesArray("THcSignalHit", 16); - frPosAdcPed = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseInt = new TClonesArray("THcSignalHit", 16); - frPosAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frPosAdcPed = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseInt = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frPosAdcPulseTime = new TClonesArray("THcSignalHit", 16); - frNegAdcErrorFlag = new TClonesArray("THcSignalHit", 16); - frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcThreshold = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcErrorFlag = new TClonesArray("THcSignalHit", 16); + frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcThreshold = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseIntRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseAmpRaw = new TClonesArray("THcSignalHit", 16); frNegAdcPulseTimeRaw = new TClonesArray("THcSignalHit", 16); - frNegAdcPed = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseInt = new TClonesArray("THcSignalHit", 16); - frNegAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frNegAdcPed = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseInt = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseAmp = new TClonesArray("THcSignalHit", 16); + frNegAdcPulseTime = new TClonesArray("THcSignalHit", 16); //#if ROOT_VERSION_CODE < ROOT_VERSION(5,32,0) // fPosADCHitsClass = fPosADCHits->GetClass(); @@ -88,6 +90,7 @@ THcShowerPlane::~THcShowerPlane() delete frPosAdcPed; frPosAdcPed = NULL; delete frPosAdcPulseInt; frPosAdcPulseInt = NULL; delete frPosAdcPulseAmp; frPosAdcPulseAmp = NULL; + delete frPosAdcPulseTime; frPosAdcPulseTime = NULL; delete frNegAdcErrorFlag; frNegAdcErrorFlag = NULL; delete frNegAdcPedRaw; frNegAdcPedRaw = NULL; @@ -99,6 +102,7 @@ THcShowerPlane::~THcShowerPlane() delete frNegAdcPed; frNegAdcPed = NULL; delete frNegAdcPulseInt; frNegAdcPulseInt = NULL; delete frNegAdcPulseAmp; frNegAdcPulseAmp = NULL; + delete frNegAdcPulseTime; frNegAdcPulseTime = NULL; delete [] fPosPedSum; delete [] fPosPedSum2; @@ -316,6 +320,7 @@ Int_t THcShowerPlane::DefineVariables( EMode mode ) {"posAdcPed", "List of positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, {"posAdcPulseInt", "List of positive ADC pulse integrals.", "frPosAdcPulseInt.THcSignalHit.GetData()"}, {"posAdcPulseAmp", "List of positive ADC pulse amplitudes.", "frPosAdcPulseAmp.THcSignalHit.GetData()"}, + {"posAdcPulseTime", "List of positive ADC pulse times.", "frPosAdcPulseTime.THcSignalHit.GetData()"}, {"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, {"negAdcPulseIntRaw", "List of negative raw ADC pulse integrals.", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}, @@ -325,6 +330,7 @@ Int_t THcShowerPlane::DefineVariables( EMode mode ) {"negAdcPed", "List of negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, {"negAdcPulseInt", "List of negative ADC pulse integrals.", "frNegAdcPulseInt.THcSignalHit.GetData()"}, {"negAdcPulseAmp", "List of negative ADC pulse amplitudes.", "frNegAdcPulseAmp.THcSignalHit.GetData()"}, + {"negAdcPulseTime", "List of negative ADC pulse times.", "frNegAdcPulseTime.THcSignalHit.GetData()"}, { 0 } }; DefineVarsFromList( vars, mode); @@ -403,6 +409,7 @@ void THcShowerPlane::Clear( Option_t* ) frPosAdcPed->Clear(); frPosAdcPulseInt->Clear(); frPosAdcPulseAmp->Clear(); + frPosAdcPulseTime->Clear(); frNegAdcErrorFlag->Clear(); frNegAdcPedRaw->Clear(); @@ -414,6 +421,7 @@ void THcShowerPlane::Clear( Option_t* ) frNegAdcPed->Clear(); frNegAdcPulseInt->Clear(); frNegAdcPulseAmp->Clear(); + frNegAdcPulseTime->Clear(); for (UInt_t ielem = 0; ielem < fGoodPosAdcPed.size(); ielem++) { fGoodPosAdcPed.at(ielem) = 0.0; @@ -515,6 +523,7 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frPosAdcPed->Clear(); frPosAdcPulseInt->Clear(); frPosAdcPulseAmp->Clear(); + frPosAdcPulseTime->Clear(); frNegAdcErrorFlag->Clear(); frNegAdcPedRaw->Clear(); @@ -526,6 +535,7 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frNegAdcPed->Clear(); frNegAdcPulseInt->Clear(); frNegAdcPulseAmp->Clear(); + frNegAdcPulseTime->Clear(); /* for(Int_t i=0;i<fNelem;i++) { @@ -574,6 +584,8 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frPosAdcPulseAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frPosAdcPulseTimeRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPulseTime(thit)); + if (rawPosAdcHit.GetPulseAmp(thit)>0&&rawPosAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(nrPosAdcHits))->Set(padnum,0); } else { @@ -597,6 +609,8 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) ((THcSignalHit*) frNegAdcPulseAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseAmp(thit)); ((THcSignalHit*) frNegAdcPulseTimeRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTimeRaw(thit)); + ((THcSignalHit*) frNegAdcPulseTime->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPulseTime(thit)); + if (rawNegAdcHit.GetPulseAmp(thit)>0&&rawNegAdcHit.GetPulseIntRaw(thit)>0) { ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(nrNegAdcHits))->Set(padnum,0); } else { diff --git a/src/THcShowerPlane.h b/src/THcShowerPlane.h index a7952b8145db8ea3f34b92eb6235150c113b560f..19a43c5f2bcd60b2e8e00bbdbc80c6372e032554 100644 --- a/src/THcShowerPlane.h +++ b/src/THcShowerPlane.h @@ -205,6 +205,7 @@ protected: TClonesArray* frPosAdcPed; TClonesArray* frPosAdcPulseInt; TClonesArray* frPosAdcPulseAmp; + TClonesArray* frPosAdcPulseTime; TClonesArray* frNegAdcErrorFlag; TClonesArray* frNegAdcPedRaw; @@ -216,6 +217,7 @@ protected: TClonesArray* frNegAdcPed; TClonesArray* frNegAdcPulseInt; TClonesArray* frNegAdcPulseAmp; + TClonesArray* frNegAdcPulseTime; virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine );