diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 9417c162e665b886ab94e4cc4521c00733d82a36..0381a755b548a20c28dfbf86312c97be51b59578 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -26,6 +26,7 @@ configurable. #include "TMath.h" #include "THaTrackProj.h" +#include "THcRawAdcHit.h" #include <cstring> #include <cstdio> @@ -36,7 +37,7 @@ using namespace std; //_____________________________________________________________________________ THcAerogel::THcAerogel( const char* name, const char* description, - THaApparatus* apparatus ) : + THaApparatus* apparatus ) : THaNonTrackingDetector(name,description,apparatus) { // Normal constructor with name and description @@ -45,6 +46,22 @@ THcAerogel::THcAerogel( const char* name, const char* description, fPosADCHits = new TClonesArray("THcSignalHit",16); fNegADCHits = new TClonesArray("THcSignalHit",16); + frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frPosAdcPed = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + + frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frNegAdcPed = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + InitArrays(); // fTrackProj = new TClonesArray( "THaTrackProj", 5 ); @@ -60,6 +77,22 @@ THcAerogel::THcAerogel( ) : fPosADCHits = NULL; fNegADCHits = NULL; + frPosAdcPedRaw = NULL; + frPosAdcPeakIntRaw = NULL; + frPosAdcPeakAmpRaw = NULL; + + frPosAdcPed = NULL; + frPosAdcPeakInt = NULL; + frPosAdcPeakAmp = NULL; + + frNegAdcPedRaw = NULL; + frNegAdcPeakIntRaw = NULL; + frNegAdcPeakAmpRaw = NULL; + + frNegAdcPed = NULL; + frNegAdcPeakInt = NULL; + frNegAdcPeakAmp = NULL; + InitArrays(); } @@ -74,6 +107,22 @@ THcAerogel::~THcAerogel() delete fNegTDCHits; fNegTDCHits = NULL; delete fPosADCHits; fPosADCHits = NULL; delete fNegADCHits; fNegADCHits = NULL; + + delete frPosAdcPedRaw; frPosAdcPedRaw = NULL; + delete frPosAdcPeakIntRaw; frPosAdcPeakIntRaw = NULL; + delete frPosAdcPeakAmpRaw; frPosAdcPeakAmpRaw = NULL; + + delete frPosAdcPed; frPosAdcPed = NULL; + delete frPosAdcPeakInt; frPosAdcPeakInt = NULL; + delete frPosAdcPeakAmp; frPosAdcPeakAmp = NULL; + + delete frNegAdcPedRaw; frNegAdcPedRaw = NULL; + delete frNegAdcPeakIntRaw; frNegAdcPeakIntRaw = NULL; + delete frNegAdcPeakAmpRaw; frNegAdcPeakAmpRaw = NULL; + + delete frNegAdcPed; frNegAdcPed = NULL; + delete frNegAdcPeakInt; frNegAdcPeakInt = NULL; + delete frNegAdcPeakAmp; frNegAdcPeakAmp = NULL; } //_____________________________________________________________________________ @@ -257,6 +306,26 @@ Int_t THcAerogel::DefineVariables( EMode mode ) {"ntdc_pos_hits", "Number of Positive Tube Hits", "fNTDCPosHits"}, {"ntdc_neg_hits", "Number of Negative Tube Hits", "fNTDCNegHits"}, {"ngood_hits", "Total number of good hits", "fNGoodHits"}, + + {"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + + {"posAdcPedRaw", "List of Positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPeakIntRaw", "List of Positive raw ADC peak integrals.", "frPosAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"posAdcPeakAmpRaw", "List of Positive raw ADC peak amplitudes.", "frPosAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"posAdcPed", "List of Positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, + {"posAdcPeakInt", "List of Positive ADC peak integrals.", "frPosAdcPeakInt.THcSignalHit.GetData()"}, + {"posAdcPeakAmp", "List of Positive ADC peak amplitudes.", "frPosAdcPeakAmp.THcSignalHit.GetData()"}, + + {"negAdcPedRaw", "List of Negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPeakIntRaw", "List of Negative raw ADC peak integrals.", "frNegAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"negAdcPeakAmpRaw", "List of Negative raw ADC peak amplitudes.", "frNegAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"negAdcPed", "List of Negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, + {"negAdcPeakInt", "List of Negative ADC peak integrals.", "frNegAdcPeakInt.THcSignalHit.GetData()"}, + {"negAdcPeakAmp", "List of Negative ADC peak amplitudes.", "frNegAdcPeakAmp.THcSignalHit.GetData()"}, + { 0 } }; @@ -298,6 +367,21 @@ void THcAerogel::Clear(Option_t* opt) fNegNpe[itube] = 0.0; } + frPosAdcPedRaw->Clear(); + frPosAdcPeakIntRaw->Clear(); + frPosAdcPeakAmpRaw->Clear(); + + frPosAdcPed->Clear(); + frPosAdcPeakInt->Clear(); + frPosAdcPeakAmp->Clear(); + + frNegAdcPedRaw->Clear(); + frNegAdcPeakIntRaw->Clear(); + frNegAdcPeakAmpRaw->Clear(); + + frNegAdcPed->Clear(); + frNegAdcPeakInt->Clear(); + frNegAdcPeakAmp->Clear(); } //_____________________________________________________________________________ @@ -327,9 +411,40 @@ Int_t THcAerogel::Decode( const THaEvData& evdata ) Int_t nNegTDCHits=0; Int_t nPosADCHits=0; Int_t nNegADCHits=0; + + UInt_t nrPosAdcHits = 0; + UInt_t nrNegAdcHits = 0; + while(ihit < fNhits) { THcAerogelHit* hit = (THcAerogelHit *) fRawHitList->At(ihit); + Int_t padnum = hit->fCounter; + + THcRawAdcHit& rawPosAdcHit = hit->GetRawAdcHitPos(); + for (UInt_t thit=0; thit<rawPosAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frPosAdcPedRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPedRaw()); + ((THcSignalHit*) frPosAdcPed->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPed()); + + ((THcSignalHit*) frPosAdcPeakIntRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frPosAdcPeakInt->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakInt()); + + ((THcSignalHit*) frPosAdcPeakAmpRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frPosAdcPeakAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmp()); + ++nrPosAdcHits; + } + THcRawAdcHit& rawNegAdcHit = hit->GetRawAdcHitNeg(); + for (UInt_t thit=0; thit<rawNegAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frNegAdcPedRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPedRaw()); + ((THcSignalHit*) frNegAdcPed->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPed()); + + ((THcSignalHit*) frNegAdcPeakIntRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frNegAdcPeakInt->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakInt()); + + ((THcSignalHit*) frNegAdcPeakAmpRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frNegAdcPeakAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmp()); + ++nrNegAdcHits; + } + Int_t adc_pos; Int_t adc_neg; Int_t tdc_pos=-1; diff --git a/src/THcAerogel.h b/src/THcAerogel.h index 4dfbf63377a41b59a1c64ce2ad8e7dcc5892f3f2..815fda5584fd7769f0c7f914099932dc26c3de9d 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -96,6 +96,22 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { Int_t fTdcOffset; /* Global TDC offset */ + TClonesArray* frPosAdcPedRaw; + TClonesArray* frPosAdcPeakIntRaw; + TClonesArray* frPosAdcPeakAmpRaw; + + TClonesArray* frPosAdcPed; + TClonesArray* frPosAdcPeakInt; + TClonesArray* frPosAdcPeakAmp; + + TClonesArray* frNegAdcPedRaw; + TClonesArray* frNegAdcPeakIntRaw; + TClonesArray* frNegAdcPeakAmpRaw; + + TClonesArray* frNegAdcPed; + TClonesArray* frNegAdcPeakInt; + TClonesArray* frNegAdcPeakAmp; + void Setup(const char* name, const char* description); virtual void InitializePedestals( ); diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 0a22560b830e1fe2d4a9f77a6b58952fcef0cb67..91ffd76d478ccee2917f2b3782d3cc0819755373 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -43,11 +43,20 @@ using std::setprecision; //_____________________________________________________________________________ THcCherenkov::THcCherenkov( const char* name, const char* description, - THaApparatus* apparatus ) : + THaApparatus* apparatus ) : THaNonTrackingDetector(name,description,apparatus) { // Normal constructor with name and description fADCHits = new TClonesArray("THcSignalHit",16); + + frAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frAdcPed = new TClonesArray("THcSignalHit", 16); + frAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + cout << "fADCHits " << fADCHits << endl; InitArrays(); cout << "fADCHits " << fADCHits << endl; @@ -61,6 +70,14 @@ THcCherenkov::THcCherenkov( ) : // Constructor fADCHits = NULL; + frAdcPedRaw = NULL; + frAdcPeakIntRaw = NULL; + frAdcPeakAmpRaw = NULL; + + frAdcPed = NULL; + frAdcPeakInt = NULL; + frAdcPeakAmp = NULL; + InitArrays(); } @@ -104,6 +121,14 @@ THcCherenkov::~THcCherenkov() // Destructor delete fADCHits; fADCHits = NULL; + delete frAdcPedRaw; frAdcPedRaw = NULL; + delete frAdcPeakIntRaw; frAdcPeakIntRaw = NULL; + delete frAdcPeakAmpRaw; frAdcPeakAmpRaw = NULL; + + delete frAdcPed; frAdcPed = NULL; + delete frAdcPeakInt; frAdcPeakInt = NULL; + delete frAdcPeakAmp; frAdcPeakAmp = NULL; + DeleteArrays(); } @@ -242,6 +267,17 @@ Int_t THcCherenkov::DefineVariables( EMode mode ) {"ncherhit", "Number of Hits(Cherenkov)", "fNCherHit"}, {"certrackcounter", "Tracks inside Cherenkov region", "fCerTrackCounter"}, {"cerfiredcounter", "Tracks with engough Cherenkov NPEs ", "fCerFiredCounter"}, + + {"adcCounter", "List of ADC counter numbers.", "frPosAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + + {"adcPedRaw", "List of raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}, + {"adcPeakIntRaw", "List of raw ADC peak integrals.", "frAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"adcPeakAmpRaw", "List of raw ADC peak amplitudes.", "frAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"adcPed", "List of ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}, + {"adcPeakInt", "List of ADC peak integrals.", "frAdcPeakInt.THcSignalHit.GetData()"}, + {"adcPeakAmp", "List of ADC peak amplitudes.", "frAdcPeakAmp.THcSignalHit.GetData()"}, + { 0 } }; @@ -267,6 +303,14 @@ void THcCherenkov::Clear(Option_t* opt) fNPE[itube] = 0; } + frAdcPedRaw->Clear(); + frAdcPeakIntRaw->Clear(); + frAdcPeakAmpRaw->Clear(); + + frAdcPed->Clear(); + frAdcPeakInt->Clear(); + frAdcPeakAmp->Clear(); + } //_____________________________________________________________________________ @@ -289,9 +333,27 @@ Int_t THcCherenkov::Decode( const THaEvData& evdata ) Int_t ihit = 0; Int_t nADCHits=0; + + UInt_t nrAdcHits = 0; + while(ihit < fNhits) { THcCherenkovHit* hit = (THcCherenkovHit *) fRawHitList->At(ihit); + Int_t padnum = hit->fCounter; + + THcRawAdcHit& rawAdcHit = hit->GetRawAdcHitPos(); + for (UInt_t thit=0; thit<rawAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frAdcPedRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPedRaw()); + ((THcSignalHit*) frAdcPed->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPed()); + + ((THcSignalHit*) frAdcPeakIntRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frAdcPeakInt->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakInt()); + + ((THcSignalHit*) frAdcPeakAmpRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frAdcPeakAmp->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakAmp()); + ++nrAdcHits; + } + // ADC hit if(hit->GetRawAdcHitPos().GetPeakIntRaw() > 0) { THcSignalHit *sighit = (THcSignalHit*) fADCHits->ConstructedAt(nADCHits++); diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h index c05c43df4c2aee53e3a2a3a872bfad3ac510c7ea..9f2b122cfa3460f64ad76362ce071bbe0f350e74 100644 --- a/src/THcCherenkov.h +++ b/src/THcCherenkov.h @@ -85,6 +85,14 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList { Double_t* fPed; Double_t* fThresh; + TClonesArray* frAdcPedRaw; + TClonesArray* frAdcPeakIntRaw; + TClonesArray* frAdcPeakAmpRaw; + + TClonesArray* frAdcPed; + TClonesArray* frAdcPeakInt; + TClonesArray* frAdcPeakAmp; + void Setup(const char* name, const char* description); virtual void InitializePedestals( ); diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx index 9b511f9424efa83bbff690b1cf27547bb5a26072..af338f6559092a0859ceedc5d561a5615416ba2a 100644 --- a/src/THcScintillatorPlane.cxx +++ b/src/THcScintillatorPlane.cxx @@ -15,6 +15,8 @@ class instatiates one object per plane. #include "THcHitList.h" #include "THcHodoscope.h" #include "TClass.h" +#include "THcRawAdcHit.h" +#include "THcRawTdcHit.h" #include <cstring> #include <cstdio> @@ -27,7 +29,7 @@ ClassImp(THcScintillatorPlane) //______________________________________________________________________________ THcScintillatorPlane::THcScintillatorPlane( const char* name, - const char* description, + const char* description, const Int_t planenum, THaDetectorBase* parent ) : THaSubDetector(name,description,parent) @@ -42,6 +44,27 @@ THcScintillatorPlane::THcScintillatorPlane( const char* name, frNegADCSums = new TClonesArray("THcSignalHit",16); frPosADCPeds = new TClonesArray("THcSignalHit",16); frNegADCPeds = new TClonesArray("THcSignalHit",16); + + frPosTdcTimeRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frPosTdcTime = new TClonesArray("THcSignalHit", 16); + frPosAdcPed = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + + frNegTdcTimeRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frNegTdcTime = new TClonesArray("THcSignalHit", 16); + frNegAdcPed = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + fPlaneNum = planenum; fTotPlanes = planenum; fNScinHits = 0; @@ -68,6 +91,27 @@ THcScintillatorPlane::~THcScintillatorPlane() delete frNegADCSums; delete frPosADCPeds; delete frNegADCPeds; + + delete frPosTdcTimeRaw; + delete frPosAdcPedRaw; + delete frPosAdcPeakIntRaw; + delete frPosAdcPeakAmpRaw; + + delete frPosTdcTime; + delete frPosAdcPed; + delete frPosAdcPeakInt; + delete frPosAdcPeakAmp; + + delete frNegTdcTimeRaw; + delete frNegAdcPedRaw; + delete frNegAdcPeakIntRaw; + delete frNegAdcPeakAmpRaw; + + delete frNegTdcTime; + delete frNegAdcPed; + delete frNegAdcPeakInt; + delete frNegAdcPeakAmp; + delete fpTimes; delete [] fScinTime; delete [] fScinSigma; @@ -271,6 +315,32 @@ Int_t THcScintillatorPlane::DefineVariables( EMode mode ) {"negadcsum", "List of Negative ADC Sample Sums", "frNegADCSums.THcSignalHit.GetData()"}, {"posadcped", "List of Positive ADC Pedestals", "frPosADCPeds.THcSignalHit.GetData()"}, {"negadcped", "List of Negative ADC Pedestals", "frNegADCPeds.THcSignalHit.GetData()"}, + + {"posTdcCounter", "List of positive TDC counter numbers.", "frPosTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}, + {"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"negTdcCounter", "List of negative TDC counter numbers.", "frNegTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}, + {"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + + {"posTdcTimeRaw", "List of positive raw TDC values.", "frPosTdcTimeRaw.THcSignalHit.GetData()"}, + {"posAdcPedRaw", "List of positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPeakIntRaw", "List of positive raw ADC peak integrals.", "frPosAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"posAdcPeakAmpRaw", "List of positive raw ADC peak amplitudes.", "frPosAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"posTdcTime", "List of positive TDC values.", "frPosTdcTime.THcSignalHit.GetData()"}, + {"posAdcPed", "List of positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, + {"posAdcPeakInt", "List of positive ADC peak integrals.", "frPosAdcPeakInt.THcSignalHit.GetData()"}, + {"posAdcPeakAmp", "List of positive ADC peak amplitudes.", "frPosAdcPeakAmp.THcSignalHit.GetData()"}, + + {"negTdcTimeRaw", "List of negative raw TDC values.", "frNegTdcTimeRaw.THcSignalHit.GetData()"}, + {"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPeakIntRaw", "List of negative raw ADC peak integrals.", "frNegAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"negAdcPeakAmpRaw", "List of negative raw ADC peak amplitudes.", "frNegAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"negTdcTime", "List of negative TDC values.", "frNegTdcTime.THcSignalHit.GetData()"}, + {"negAdcPed", "List of negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, + {"negAdcPeakInt", "List of negative ADC peak integrals.", "frNegAdcPeakInt.THcSignalHit.GetData()"}, + {"negAdcPeakAmp", "List of negative ADC peak amplitudes.", "frNegAdcPeakAmp.THcSignalHit.GetData()"}, + {"fptime", "Time at focal plane", "GetFpTime()"}, {"nhits", "Number of paddle hits (passed TDC Min and Max cuts for either end)", "GetNScinHits() "}, {"ngoodhits", "Number of paddle hits (passed tof tolerance and used to determine the focal plane time )", "GetNGoodHits() "}, @@ -294,6 +364,27 @@ void THcScintillatorPlane::Clear( Option_t* ) frNegTDCHits->Clear(); frPosADCHits->Clear(); frNegADCHits->Clear(); + + frPosTdcTimeRaw->Clear(); + frPosAdcPedRaw->Clear(); + frPosAdcPeakIntRaw->Clear(); + frPosAdcPeakAmpRaw->Clear(); + + frPosTdcTime->Clear(); + frPosAdcPed->Clear(); + frPosAdcPeakInt->Clear(); + frPosAdcPeakAmp->Clear(); + + frNegTdcTimeRaw->Clear(); + frNegAdcPedRaw->Clear(); + frNegAdcPeakIntRaw->Clear(); + frNegAdcPeakAmpRaw->Clear(); + + frNegTdcTime->Clear(); + frNegAdcPed->Clear(); + frNegAdcPeakInt->Clear(); + frNegAdcPeakAmp->Clear(); + fpTime = -1.e4; } @@ -361,6 +452,32 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) frNegADCSums->Clear(); frPosADCPeds->Clear(); frNegADCPeds->Clear(); + + UInt_t nrPosAdcHits = 0; + UInt_t nrNegAdcHits = 0; + UInt_t nrPosTdcHits = 0; + UInt_t nrNegTdcHits = 0; + + frPosTdcTimeRaw->Clear(); + frPosAdcPedRaw->Clear(); + frPosAdcPeakIntRaw->Clear(); + frPosAdcPeakAmpRaw->Clear(); + + frPosTdcTime->Clear(); + frPosAdcPed->Clear(); + frPosAdcPeakInt->Clear(); + frPosAdcPeakAmp->Clear(); + + frNegTdcTimeRaw->Clear(); + frNegAdcPedRaw->Clear(); + frNegAdcPeakIntRaw->Clear(); + frNegAdcPeakAmpRaw->Clear(); + + frNegTdcTime->Clear(); + frNegAdcPed->Clear(); + frNegAdcPeakInt->Clear(); + frNegAdcPeakAmp->Clear(); + //stripped fNScinHits=0; fHodoHits->Clear(); @@ -383,6 +500,44 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) Int_t padnum=hit->fCounter; Int_t index=padnum-1; + + THcRawTdcHit& rawPosTdcHit = hit->GetRawTdcHitPos(); + for (UInt_t thit=0; thit<rawPosTdcHit.GetNHits(); ++thit) { + ((THcSignalHit*) frPosTdcTimeRaw->ConstructedAt(nrPosTdcHits))->Set(padnum, rawPosTdcHit.GetTimeRaw()); + ((THcSignalHit*) frPosTdcTime->ConstructedAt(nrPosTdcHits))->Set(padnum, rawPosTdcHit.GetTime()); + ++nrPosTdcHits; + } + THcRawTdcHit& rawNegTdcHit = hit->GetRawTdcHitNeg(); + for (UInt_t thit=0; thit<rawNegTdcHit.GetNHits(); ++thit) { + ((THcSignalHit*) frNegTdcTimeRaw->ConstructedAt(nrNegTdcHits))->Set(padnum, rawNegTdcHit.GetTimeRaw()); + ((THcSignalHit*) frNegTdcTime->ConstructedAt(nrNegTdcHits))->Set(padnum, rawNegTdcHit.GetTime()); + ++nrNegTdcHits; + } + THcRawAdcHit& rawPosAdcHit = hit->GetRawAdcHitPos(); + for (UInt_t thit=0; thit<rawPosAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frPosAdcPedRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPedRaw()); + ((THcSignalHit*) frPosAdcPed->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPed()); + + ((THcSignalHit*) frPosAdcPeakIntRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frPosAdcPeakInt->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakInt()); + + ((THcSignalHit*) frPosAdcPeakAmpRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frPosAdcPeakAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmp()); + ++nrPosAdcHits; + } + THcRawAdcHit& rawNegAdcHit = hit->GetRawAdcHitNeg(); + for (UInt_t thit=0; thit<rawNegAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frNegAdcPedRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPedRaw()); + ((THcSignalHit*) frNegAdcPed->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPed()); + + ((THcSignalHit*) frNegAdcPeakIntRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frNegAdcPeakInt->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakInt()); + + ((THcSignalHit*) frNegAdcPeakAmpRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frNegAdcPeakAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmp()); + ++nrNegAdcHits; + } + // Need to be finding first hit in TDC range, not the first hit overall if (hit->GetRawTdcHitPos().GetNHits() > 0) ((THcSignalHit*) frPosTDCHits->ConstructedAt(nrPosTDCHits++))->Set(padnum, hit->GetRawTdcHitPos().GetTime()+fTdcOffset); diff --git a/src/THcScintillatorPlane.h b/src/THcScintillatorPlane.h index 2dcfe53ff931dd6d1418e88c29ff7e00aef05980..aaf8528569db2390f06a10e9e634ed9d0198020c 100644 --- a/src/THcScintillatorPlane.h +++ b/src/THcScintillatorPlane.h @@ -72,6 +72,26 @@ class THcScintillatorPlane : public THaSubDetector { TClonesArray* frNegADCPeds; TClonesArray* fHodoHits; + TClonesArray* frPosTdcTimeRaw; + TClonesArray* frPosAdcPedRaw; + TClonesArray* frPosAdcPeakIntRaw; + TClonesArray* frPosAdcPeakAmpRaw; + + TClonesArray* frPosTdcTime; + TClonesArray* frPosAdcPed; + TClonesArray* frPosAdcPeakInt; + TClonesArray* frPosAdcPeakAmp; + + TClonesArray* frNegTdcTimeRaw; + TClonesArray* frNegAdcPedRaw; + TClonesArray* frNegAdcPeakIntRaw; + TClonesArray* frNegAdcPeakAmpRaw; + + TClonesArray* frNegTdcTime; + TClonesArray* frNegAdcPed; + TClonesArray* frNegAdcPeakInt; + TClonesArray* frNegAdcPeakAmp; + Int_t fPlaneNum; /* Which plane am I 1-4 */ UInt_t fTotPlanes; /* so we can read variables that are not indexed by plane id */ UInt_t fNelem; /* Need since we don't inherit from @@ -158,5 +178,3 @@ class THcScintillatorPlane : public THaSubDetector { ClassDef(THcScintillatorPlane,0); // Scintillator bars in a plane }; #endif - - diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index 5bc7c41bd805e536284996374a8dae7bac93022c..a37c5b45a927f391690036b97c2111117e09cf08 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -31,7 +31,7 @@ ClassImp(THcShowerArray) //______________________________________________________________________________ THcShowerArray::THcShowerArray( const char* name, - const char* description, + const char* description, const Int_t layernum, THaDetectorBase* parent ) : THaSubDetector(name,description,parent) @@ -39,6 +39,14 @@ THcShowerArray::THcShowerArray( const char* name, fADCHits = new TClonesArray("THcSignalHit",100); fLayerNum = layernum; + frAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frAdcPed = new TClonesArray("THcSignalHit", 16); + frAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + fClusterList = new THcShowerClusterList; // List of hit clusters } @@ -51,6 +59,14 @@ THcShowerArray::~THcShowerArray() delete fADCHits; + delete frAdcPedRaw; frAdcPedRaw = NULL; + delete frAdcPeakIntRaw; frAdcPeakIntRaw = NULL; + delete frAdcPeakAmpRaw; frAdcPeakAmpRaw = NULL; + + delete frAdcPed; frAdcPed = NULL; + delete frAdcPeakInt; frAdcPeakInt = NULL; + delete frAdcPeakAmp; frAdcPeakAmp = NULL; + delete [] fA; delete [] fP; delete [] fA_p; @@ -314,6 +330,17 @@ Int_t THcShowerArray::DefineVariables( EMode mode ) {"e", "Energy Depositions per block", "fE"}, {"earray", "Energy Deposition in array", "fEarray"}, { "ntracks", "Number of shower tracks", "fNtracks" }, + + {"adcCounter", "List of ADC counter numbers.", "frPosAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + + {"adcPedRaw", "List of raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}, + {"adcPeakIntRaw", "List of raw ADC peak integrals.", "frAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"adcPeakAmpRaw", "List of raw ADC peak amplitudes.", "frAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"adcPed", "List of ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}, + {"adcPeakInt", "List of ADC peak integrals.", "frAdcPeakInt.THcSignalHit.GetData()"}, + {"adcPeakAmp", "List of ADC peak amplitudes.", "frAdcPeakAmp.THcSignalHit.GetData()"}, + { 0 } }; @@ -337,6 +364,14 @@ void THcShowerArray::Clear( Option_t* ) } fClusterList->clear(); + frAdcPedRaw->Clear(); + frAdcPeakIntRaw->Clear(); + frAdcPeakAmpRaw->Clear(); + + frAdcPed->Clear(); + frAdcPeakInt->Clear(); + frAdcPeakAmp->Clear(); + } //_____________________________________________________________________________ @@ -617,6 +652,14 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) Int_t nADCHits=0; fADCHits->Clear(); + frAdcPedRaw->Clear(); + frAdcPeakIntRaw->Clear(); + frAdcPeakAmpRaw->Clear(); + + frAdcPed->Clear(); + frAdcPeakInt->Clear(); + frAdcPeakAmp->Clear(); + for(Int_t i=0;i<fNelem;i++) { fA[i] = 0; fA_p[i] = 0; @@ -634,6 +677,9 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) Int_t ngood = 0; Int_t threshold = 100; + + UInt_t nrAdcHits = 0; + while(ihit < nrawhits) { THcRawShowerHit* hit = (THcRawShowerHit *) rawhits->At(ihit); @@ -641,6 +687,20 @@ Int_t THcShowerArray::ProcessHits(TClonesArray* rawhits, Int_t nexthit) break; } + Int_t padnum = hit->fCounter; + + THcRawAdcHit& rawAdcHit = hit->GetRawAdcHitPos(); + for (UInt_t thit=0; thit<rawAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frAdcPedRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPedRaw()); + ((THcSignalHit*) frAdcPed->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPed()); + + ((THcSignalHit*) frAdcPeakIntRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frAdcPeakInt->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakInt()); + + ((THcSignalHit*) frAdcPeakAmpRaw->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frAdcPeakAmp->ConstructedAt(nrAdcHits))->Set(padnum, rawAdcHit.GetPeakAmp()); + ++nrAdcHits; + } // Should check that counter # is in range if (fUsingFADC) { diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index 8f59f2004830791f12f16e7e2091a597593935f9..9196cef48e4cd1295ee8358637b8c29d3c45b7ce 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -135,6 +135,14 @@ protected: THcShowerClusterList* fClusterList; // List of hit clusters + TClonesArray* frAdcPedRaw; + TClonesArray* frAdcPeakIntRaw; + TClonesArray* frAdcPeakAmpRaw; + + TClonesArray* frAdcPed; + TClonesArray* frAdcPeakInt; + TClonesArray* frAdcPeakAmp; + virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine ); ClassDef(THcShowerArray,0); // Fly;s Eye calorimeter array diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx index a0246ceef9efbad265768cb0d792397033aa534e..425ac3d76cc207ab0dbe19da3ba6723105dfb24a 100644 --- a/src/THcShowerPlane.cxx +++ b/src/THcShowerPlane.cxx @@ -30,7 +30,7 @@ ClassImp(THcShowerPlane) //______________________________________________________________________________ THcShowerPlane::THcShowerPlane( const char* name, - const char* description, + const char* description, const Int_t layernum, THaDetectorBase* parent ) : THaSubDetector(name,description,parent) @@ -39,6 +39,22 @@ THcShowerPlane::THcShowerPlane( const char* name, fPosADCHits = new TClonesArray("THcSignalHit",fNelem); fNegADCHits = new TClonesArray("THcSignalHit",fNelem); + frPosAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frPosAdcPed = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frPosAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + + frNegAdcPedRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakIntRaw = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmpRaw = new TClonesArray("THcSignalHit", 16); + + frNegAdcPed = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakInt = new TClonesArray("THcSignalHit", 16); + frNegAdcPeakAmp = new TClonesArray("THcSignalHit", 16); + //#if ROOT_VERSION_CODE < ROOT_VERSION(5,32,0) // fPosADCHitsClass = fPosADCHits->GetClass(); // fNegADCHitsClass = fNegADCHits->GetClass(); @@ -54,6 +70,22 @@ THcShowerPlane::~THcShowerPlane() delete fPosADCHits; delete fNegADCHits; + frPosAdcPedRaw = NULL; + frPosAdcPeakIntRaw = NULL; + frPosAdcPeakAmpRaw = NULL; + + frPosAdcPed = NULL; + frPosAdcPeakInt = NULL; + frPosAdcPeakAmp = NULL; + + frNegAdcPedRaw = NULL; + frNegAdcPeakIntRaw = NULL; + frNegAdcPeakAmpRaw = NULL; + + frNegAdcPed = NULL; + frNegAdcPeakInt = NULL; + frNegAdcPeakAmp = NULL; + delete [] fA_Pos; delete [] fA_Neg; delete [] fA_Pos_p; @@ -216,6 +248,26 @@ Int_t THcShowerPlane::DefineVariables( EMode mode ) {"eplane", "Energy Deposition per plane", "fEplane"}, {"eplane_pos", "Energy Deposition per plane from pos. PMTs","fEplane_pos"}, {"eplane_neg", "Energy Deposition per plane from neg. PMTs","fEplane_neg"}, + + {"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPeakIntRaw.THcSignalHit.GetPaddleNumber()"}, + + {"posAdcPedRaw", "List of Positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPeakIntRaw", "List of Positive raw ADC peak integrals.", "frPosAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"posAdcPeakAmpRaw", "List of Positive raw ADC peak amplitudes.", "frPosAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"posAdcPed", "List of Positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, + {"posAdcPeakInt", "List of Positive ADC peak integrals.", "frPosAdcPeakInt.THcSignalHit.GetData()"}, + {"posAdcPeakAmp", "List of Positive ADC peak amplitudes.", "frPosAdcPeakAmp.THcSignalHit.GetData()"}, + + {"negAdcPedRaw", "List of Negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPeakIntRaw", "List of Negative raw ADC peak integrals.", "frNegAdcPeakIntRaw.THcSignalHit.GetData()"}, + {"negAdcPeakAmpRaw", "List of Negative raw ADC peak amplitudes.", "frNegAdcPeakAmpRaw.THcSignalHit.GetData()"}, + + {"negAdcPed", "List of Negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, + {"negAdcPeakInt", "List of Negative ADC peak integrals.", "frNegAdcPeakInt.THcSignalHit.GetData()"}, + {"negAdcPeakAmp", "List of Negative ADC peak amplitudes.", "frNegAdcPeakAmp.THcSignalHit.GetData()"}, + { 0 } }; @@ -229,6 +281,22 @@ void THcShowerPlane::Clear( Option_t* ) fPosADCHits->Clear(); fNegADCHits->Clear(); + frPosAdcPedRaw->Clear(); + frPosAdcPeakIntRaw->Clear(); + frPosAdcPeakAmpRaw->Clear(); + + frPosAdcPed->Clear(); + frPosAdcPeakInt->Clear(); + frPosAdcPeakAmp->Clear(); + + frNegAdcPedRaw->Clear(); + frNegAdcPeakIntRaw->Clear(); + frNegAdcPeakAmpRaw->Clear(); + + frNegAdcPed->Clear(); + frNegAdcPeakInt->Clear(); + frNegAdcPeakAmp->Clear(); + // Debug output. if ( ((THcShower*) GetParent())->fdbg_decoded_cal ) { cout << "---------------------------------------------------------------\n"; @@ -291,6 +359,22 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) fPosADCHits->Clear(); fNegADCHits->Clear(); + frPosAdcPedRaw->Clear(); + frPosAdcPeakIntRaw->Clear(); + frPosAdcPeakAmpRaw->Clear(); + + frPosAdcPed->Clear(); + frPosAdcPeakInt->Clear(); + frPosAdcPeakAmp->Clear(); + + frNegAdcPedRaw->Clear(); + frNegAdcPeakIntRaw->Clear(); + frNegAdcPeakAmpRaw->Clear(); + + frNegAdcPed->Clear(); + frNegAdcPeakInt->Clear(); + frNegAdcPeakAmp->Clear(); + for(Int_t i=0;i<fNelem;i++) { fA_Pos[i] = 0; fA_Neg[i] = 0; @@ -305,6 +389,9 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) fEplane_pos = 0; fEplane_neg = 0; + UInt_t nrPosAdcHits = 0; + UInt_t nrNegAdcHits = 0; + // Process raw hits. Get ADC hits for the plane, assign variables for each // channel. @@ -321,6 +408,33 @@ Int_t THcShowerPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) break; } + Int_t padnum = hit->fCounter; + + THcRawAdcHit& rawPosAdcHit = hit->GetRawAdcHitPos(); + for (UInt_t thit=0; thit<rawPosAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frPosAdcPedRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPedRaw()); + ((THcSignalHit*) frPosAdcPed->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPed()); + + ((THcSignalHit*) frPosAdcPeakIntRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frPosAdcPeakInt->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakInt()); + + ((THcSignalHit*) frPosAdcPeakAmpRaw->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frPosAdcPeakAmp->ConstructedAt(nrPosAdcHits))->Set(padnum, rawPosAdcHit.GetPeakAmp()); + ++nrPosAdcHits; + } + THcRawAdcHit& rawNegAdcHit = hit->GetRawAdcHitNeg(); + for (UInt_t thit=0; thit<rawNegAdcHit.GetNPulses(); ++thit) { + ((THcSignalHit*) frNegAdcPedRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPedRaw()); + ((THcSignalHit*) frNegAdcPed->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPed()); + + ((THcSignalHit*) frNegAdcPeakIntRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakIntRaw()); + ((THcSignalHit*) frNegAdcPeakInt->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakInt()); + + ((THcSignalHit*) frNegAdcPeakAmpRaw->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmpRaw()); + ((THcSignalHit*) frNegAdcPeakAmp->ConstructedAt(nrNegAdcHits))->Set(padnum, rawNegAdcHit.GetPeakAmp()); + ++nrNegAdcHits; + } + // Should probably check that counter # is in range if (fUsingFADC) { fA_Pos[hit->fCounter-1] = hit->GetRawAdcHitPos().GetData( diff --git a/src/THcShowerPlane.h b/src/THcShowerPlane.h index fdf8c0fa1d4e9c38e926592b4e1f49c312e21c20..0eb544ea3dbd1707b036729993aa3984a24d2fed 100644 --- a/src/THcShowerPlane.h +++ b/src/THcShowerPlane.h @@ -151,6 +151,22 @@ protected: Float_t *fNegSig; Float_t *fNegThresh; + TClonesArray* frPosAdcPedRaw; + TClonesArray* frPosAdcPeakIntRaw; + TClonesArray* frPosAdcPeakAmpRaw; + + TClonesArray* frPosAdcPed; + TClonesArray* frPosAdcPeakInt; + TClonesArray* frPosAdcPeakAmp; + + TClonesArray* frNegAdcPedRaw; + TClonesArray* frNegAdcPeakIntRaw; + TClonesArray* frNegAdcPeakAmpRaw; + + TClonesArray* frNegAdcPed; + TClonesArray* frNegAdcPeakInt; + TClonesArray* frNegAdcPeakAmp; + virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine ); virtual void InitializePedestals( );