diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 7566498b140e6ee21eabd8e97cb41544bae62be1..d2a86ba14a4202c9cc980572e519ac411c1d9faa 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -350,95 +350,100 @@ Int_t THcAerogel::DefineVariables( EMode mode ) // Do we need to put the number of pos/neg TDC/ADC hits into the variables? // No. They show up in tree as Ndata.H.aero.postdchits for example - vector<RVarDef> vars; - - vars.push_back(RVarDef{"posAdcCounter", "Positive ADC counter numbers", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"negAdcCounter", "Negative ADC counter numbers", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"posAdcErrorFlag", "Error Flag for When FPGA Fails", "fPosAdcErrorFlag.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcErrorFlag", "Error Flag for When FPGA Fails", "fNegAdcErrorFlag.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}); // Aerogel occupancy - vars.push_back(RVarDef{"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}); // Aerogel occupancy - vars.push_back(RVarDef{"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}); // Aerogel multiplicity - vars.push_back(RVarDef{"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}); // Aerogel multiplicity - - vars.push_back(RVarDef{"totnumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}); // Aerogel multiplicity - vars.push_back(RVarDef{"numTracksMatched", "Number of Tracks Matched Per Region", "fNumTracksMatched"}); - vars.push_back(RVarDef{"numTracksFired", "Number of Tracks that Fired Per Region", "fNumTracksFired"}); - vars.push_back(RVarDef{"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"}); - vars.push_back(RVarDef{"totNumTracksFired", "Total Number of Tracks that Fired", "fTotNumTracksFired"}); - - vars.push_back(RVarDef{"posNpe", "Number of Positive PEs", "fPosNpe"}); - vars.push_back(RVarDef{"negNpe", "Number of Negative PEs", "fNegNpe"}); - vars.push_back(RVarDef{"posNpeSum", "Total Number of Positive PEs", "fPosNpeSum"}); - vars.push_back(RVarDef{"negNpeSum", "Total Number of Negative PEs", "fNegNpeSum"}); - vars.push_back(RVarDef{"npeSum", "Total Number of PEs", "fNpeSum"}); - - vars.push_back(RVarDef{"goodPosAdcPed", "Good Negative ADC pedestals", "fGoodPosAdcPed"}); - vars.push_back(RVarDef{"goodPosAdcPulseInt", "Good Negative ADC pulse integrals", "fGoodPosAdcPulseInt"}); - vars.push_back(RVarDef{"goodPosAdcPulseIntRaw", "Good Negative ADC raw pulse integrals", "fGoodPosAdcPulseIntRaw"}); - vars.push_back(RVarDef{"goodPosAdcPulseAmp", "Good Negative ADC pulse amplitudes", "fGoodPosAdcPulseAmp"}); - vars.push_back(RVarDef{"goodPosAdcPulseTime", "Good Negative ADC pulse times", "fGoodPosAdcPulseTime"}); - - vars.push_back(RVarDef{"goodNegAdcPed", "Good Negative ADC pedestals", "fGoodNegAdcPed"}); - vars.push_back(RVarDef{"goodNegAdcPulseInt", "Good Negative ADC pulse integrals", "fGoodNegAdcPulseInt"}); - vars.push_back(RVarDef{"goodNegAdcPulseIntRaw", "Good Negative ADC raw pulse integrals", "fGoodNegAdcPulseIntRaw"}); - vars.push_back(RVarDef{"goodNegAdcPulseAmp", "Good Negative ADC pulse amplitudes", "fGoodNegAdcPulseAmp"}); - vars.push_back(RVarDef{"goodNegAdcPulseTime", "Good Negative ADC pulse times", "fGoodNegAdcPulseTime"}); - if (fDebugAdc) { - vars.push_back(RVarDef{"posGain", "Positive PMT gains", "fPosGain"}); - vars.push_back(RVarDef{"negGain", "Negative PMT gains", "fNegGain"}); - - vars.push_back(RVarDef{"numPosAdcHits", "Number of Positive ADC Hits Per PMT", "fNumPosAdcHits"}); // Aerogel occupancy - vars.push_back(RVarDef{"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}); // Aerogel multiplicity - vars.push_back(RVarDef{"numNegAdcHits", "Number of Negative ADC Hits Per PMT", "fNumNegAdcHits"}); // Aerogel occupancy - vars.push_back(RVarDef{"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}); // Aerogel multiplicity - vars.push_back(RVarDef{"totnumAdcHits", "Total Number of ADC Hits Per PMT", "fTotNumAdcHits"}); // Aerogel multiplicity - - vars.push_back(RVarDef{"posAdcPedRaw", "Positive Raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseIntRaw", "Positive Raw ADC pulse integrals", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmpRaw", "Positive Raw ADC pulse amplitudes", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseTimeRaw", "Positive Raw ADC pulse times", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPed", "Positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseInt", "Positive ADC pulse integrals", "frPosAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmp", "Positive ADC pulse amplitudes", "frPosAdcPulseAmp.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"negAdcPedRaw", "Negative Raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseIntRaw", "Negative Raw ADC pulse integrals", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmpRaw", "Negative Raw ADC pulse amplitudes", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseTimeRaw", "Negative Raw ADC pulse times", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPed", "Negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseInt", "Negative ADC pulse integrals", "frNegAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmp", "Negative ADC pulse amplitudes", "frNegAdcPulseAmp.THcSignalHit.GetData()"}); - } + RVarDef vars[] = { + {"posGain", "Positive PMT gains", "fPosGain"}, + {"negGain", "Negative PMT gains", "fNegGain"}, + + {"numPosAdcHits", "Number of Positive ADC Hits Per PMT", "fNumPosAdcHits"}, // Aerogel occupancy + {"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}, // Aerogel multiplicity + {"numNegAdcHits", "Number of Negative ADC Hits Per PMT", "fNumNegAdcHits"}, // Aerogel occupancy + {"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}, // Aerogel multiplicity + {"totnumAdcHits", "Total Number of ADC Hits Per PMT", "fTotNumAdcHits"}, // Aerogel multiplicity + + {"posAdcPedRaw", "Positive Raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPulseIntRaw", "Positive Raw ADC pulse integrals", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"posAdcPulseAmpRaw", "Positive Raw ADC pulse amplitudes", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"posAdcPulseTimeRaw", "Positive Raw ADC pulse times", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}, + {"posAdcPed", "Positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}, + {"posAdcPulseInt", "Positive ADC pulse integrals", "frPosAdcPulseInt.THcSignalHit.GetData()"}, + {"posAdcPulseAmp", "Positive ADC pulse amplitudes", "frPosAdcPulseAmp.THcSignalHit.GetData()"}, + + {"negAdcPedRaw", "Negative Raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPulseIntRaw", "Negative Raw ADC pulse integrals", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"negAdcPulseAmpRaw", "Negative Raw ADC pulse amplitudes", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"negAdcPulseTimeRaw", "Negative Raw ADC pulse times", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}, + {"negAdcPed", "Negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}, + {"negAdcPulseInt", "Negative ADC pulse integrals", "frNegAdcPulseInt.THcSignalHit.GetData()"}, + {"negAdcPulseAmp", "Negative ADC pulse amplitudes", "frNegAdcPulseAmp.THcSignalHit.GetData()"}, + { 0 } + }; + DefineVarsFromList( vars, mode); + } //end debug statement if (fSixGevData) { - vars.push_back(RVarDef{"apos", "Positive Raw ADC Amplitudes", "fA_Pos"}); - vars.push_back(RVarDef{"aneg", "Negative Raw ADC Amplitudes", "fA_Neg"}); - vars.push_back(RVarDef{"apos_p", "Positive Ped-subtracted ADC Amplitudes", "fA_Pos_p"}); - vars.push_back(RVarDef{"aneg_p", "Negative Ped-subtracted ADC Amplitudes", "fA_Neg_p"}); - vars.push_back(RVarDef{"tpos", "Positive Raw TDC", "fT_Pos"}); - vars.push_back(RVarDef{"tneg", "Negative Raw TDC", "fT_Neg"}); - vars.push_back(RVarDef{"ntdc_pos_hits", "Number of Positive Tube Hits", "fNTDCPosHits"}); - vars.push_back(RVarDef{"ntdc_neg_hits", "Number of Negative Tube Hits", "fNTDCNegHits"}); - vars.push_back(RVarDef{"posadchits", "Positive ADC hits", "fPosADCHits.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"negadchits", "Negative ADC hits", "fNegADCHits.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"postdchits", "Positive TDC hits", "fPosTDCHits.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"negtdchits", "Negative TDC hits", "fNegTDCHits.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"nGoodHits", "Total number of good hits", "fNGoodHits"}); - vars.push_back(RVarDef{"posNpeSixGev", "Number of Positive PEs", "fPosNpeSixGev"}); - vars.push_back(RVarDef{"negNpeSixGev", "Number of Negative PEs", "fNegNpeSixGev"}); - vars.push_back(RVarDef{"posNpeSumSixGev", "Total Number of Positive PEs", "fPosNpeSumSixGev"}); - vars.push_back(RVarDef{"negNpeSumSixGev", "Total Number of Negative PEs", "fNegNpeSumSixGev"}); - vars.push_back(RVarDef{"npeSumSixGev", "Total Number of PEs", "fNpeSumSixGev"}); - } - - RVarDef end {0}; - vars.push_back(end); - - return DefineVarsFromList(vars.data(), mode); + RVarDef vars[] = { + {"apos", "Positive Raw ADC Amplitudes", "fA_Pos"}, + {"aneg", "Negative Raw ADC Amplitudes", "fA_Neg"}, + {"apos_p", "Positive Ped-subtracted ADC Amplitudes", "fA_Pos_p"}, + {"aneg_p", "Negative Ped-subtracted ADC Amplitudes", "fA_Neg_p"}, + {"tpos", "Positive Raw TDC", "fT_Pos"}, + {"tneg", "Negative Raw TDC", "fT_Neg"}, + {"ntdc_pos_hits", "Number of Positive Tube Hits", "fNTDCPosHits"}, + {"ntdc_neg_hits", "Number of Negative Tube Hits", "fNTDCNegHits"}, + {"posadchits", "Positive ADC hits", "fPosADCHits.THcSignalHit.GetPaddleNumber()"}, + {"negadchits", "Negative ADC hits", "fNegADCHits.THcSignalHit.GetPaddleNumber()"}, + {"postdchits", "Positive TDC hits", "fPosTDCHits.THcSignalHit.GetPaddleNumber()"}, + {"negtdchits", "Negative TDC hits", "fNegTDCHits.THcSignalHit.GetPaddleNumber()"}, + {"nGoodHits", "Total number of good hits", "fNGoodHits"}, + {"posNpeSixGev", "Number of Positive PEs", "fPosNpeSixGev"}, + {"negNpeSixGev", "Number of Negative PEs", "fNegNpeSixGev"}, + {"posNpeSumSixGev", "Total Number of Positive PEs", "fPosNpeSumSixGev"}, + {"negNpeSumSixGev", "Total Number of Negative PEs", "fNegNpeSumSixGev"}, + {"npeSumSixGev", "Total Number of PEs", "fNpeSumSixGev"}, + { 0 } + }; + DefineVarsFromList( vars, mode); + } //end fSixGevData statement + + RVarDef vars[] = { + {"posAdcCounter", "Positive ADC counter numbers", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"negAdcCounter", "Negative ADC counter numbers", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"posAdcErrorFlag", "Error Flag for When FPGA Fails", "fPosAdcErrorFlag.THcSignalHit.GetData()"}, + {"negAdcErrorFlag", "Error Flag for When FPGA Fails", "fNegAdcErrorFlag.THcSignalHit.GetData()"}, + + {"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}, // Aerogel occupancy + {"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}, // Aerogel occupancy + {"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}, // Aerogel multiplicity + {"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}, // Aerogel multiplicity + + {"totnumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}, // Aerogel multiplicity + {"numTracksMatched", "Number of Tracks Matched Per Region", "fNumTracksMatched"}, + {"numTracksFired", "Number of Tracks that Fired Per Region", "fNumTracksFired"}, + {"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"}, + {"totNumTracksFired", "Total Number of Tracks that Fired", "fTotNumTracksFired"}, + + {"posNpe", "Number of Positive PEs", "fPosNpe"}, + {"negNpe", "Number of Negative PEs", "fNegNpe"}, + {"posNpeSum", "Total Number of Positive PEs", "fPosNpeSum"}, + {"negNpeSum", "Total Number of Negative PEs", "fNegNpeSum"}, + {"npeSum", "Total Number of PEs", "fNpeSum"}, + + {"goodPosAdcPed", "Good Negative ADC pedestals", "fGoodPosAdcPed"}, + {"goodPosAdcPulseInt", "Good Negative ADC pulse integrals", "fGoodPosAdcPulseInt"}, + {"goodPosAdcPulseIntRaw", "Good Negative ADC raw pulse integrals", "fGoodPosAdcPulseIntRaw"}, + {"goodPosAdcPulseAmp", "Good Negative ADC pulse amplitudes", "fGoodPosAdcPulseAmp"}, + {"goodPosAdcPulseTime", "Good Negative ADC pulse times", "fGoodPosAdcPulseTime"}, + + {"goodNegAdcPed", "Good Negative ADC pedestals", "fGoodNegAdcPed"}, + {"goodNegAdcPulseInt", "Good Negative ADC pulse integrals", "fGoodNegAdcPulseInt"}, + {"goodNegAdcPulseIntRaw", "Good Negative ADC raw pulse integrals", "fGoodNegAdcPulseIntRaw"}, + {"goodNegAdcPulseAmp", "Good Negative ADC pulse amplitudes", "fGoodNegAdcPulseAmp"}, + {"goodNegAdcPulseTime", "Good Negative ADC pulse times", "fGoodNegAdcPulseTime"}, + { 0 } + }; + return DefineVarsFromList(vars, mode); } //_____________________________________________________________________________ inline @@ -646,7 +651,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray& ) //tracks fPosNpe.at(npmt) = fPosGain[npmt]*fGoodPosAdcPulseInt.at(npmt); fPosNpeSum += fPosNpe.at(npmt); - + fTotNumGoodAdcHits++; fTotNumGoodPosAdcHits++; fNumGoodPosAdcHits.at(npmt) = npmt + 1; @@ -675,7 +680,7 @@ Int_t THcAerogel::CoarseProcess( TClonesArray& ) //tracks fNegNpe.at(npmt) = fNegGain[npmt]*fGoodNegAdcPulseInt.at(npmt); fNegNpeSum += fNegNpe.at(npmt); - + fTotNumGoodAdcHits++; fTotNumGoodNegAdcHits++; fNumGoodNegAdcHits.at(npmt) = npmt + 1; diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 22c605e64a890cb85d7a86f585ae630a8440accd..cd292eeecb13134305b2e50fc390177058dbf4da 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -237,45 +237,47 @@ Int_t THcCherenkov::DefineVariables( EMode mode ) fIsSetup = ( mode == kDefine ); // Register variables in global list - vector<RVarDef> vars; - - vars.push_back(RVarDef{"adcCounter", "ADC counter numbers", "frAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"adcErrorFlag", "Error Flag for When FPGA Fails", "fAdcErrorFlag.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"numGoodAdcHits", "Number of Good ADC Hits Per PMT", "fNumGoodAdcHits"}); // Cherenkov occupancy - vars.push_back(RVarDef{"totNumGoodAdcHits", "Total Number of Good ADC Hits", "fTotNumGoodAdcHits"}); // Cherenkov multiplicity - - vars.push_back(RVarDef{"numTracksMatched", "Number of Tracks Matched Per Region", "fNumTracksMatched"}); - vars.push_back(RVarDef{"numTracksFired", "Number of Tracks that Fired Per Region", "fNumTracksFired"}); - vars.push_back(RVarDef{"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"}); - vars.push_back(RVarDef{"totNumTracksFired", "Total Number of Tracks that Fired", "fTotNumTracksFired"}); - - vars.push_back(RVarDef{"npe", "Number of PEs", "fNpe"}); - vars.push_back(RVarDef{"npeSum", "Total Number of PEs", "fNpeSum"}); - - vars.push_back(RVarDef{"goodAdcPed", "Good ADC pedestals", "fGoodAdcPed"}); - vars.push_back(RVarDef{"goodAdcPulseInt", "Good ADC pulse integrals", "fGoodAdcPulseInt"}); - vars.push_back(RVarDef{"goodAdcPulseIntRaw", "Good ADC raw pulse integrals", "fGoodAdcPulseIntRaw"}); - vars.push_back(RVarDef{"goodAdcPulseAmp", "Good ADC pulse amplitudes", "fGoodAdcPulseAmp"}); - vars.push_back(RVarDef{"goodAdcPulseTime", "Good ADC pulse times", "fGoodAdcPulseTime"}); if (fDebugAdc) { - vars.push_back(RVarDef{"numAdcHits", "Number of ADC Hits Per PMT", "fNumAdcHits"}); // Cherenkov occupancy - vars.push_back(RVarDef{"totNumAdcHits", "Total Number of ADC Hits", "fTotNumAdcHits"}); // Cherenkov multiplicity - vars.push_back(RVarDef{"adcPedRaw", "Raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseIntRaw", "Raw ADC pulse integrals", "frAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseAmpRaw", "Raw ADC pulse amplitudes", "frAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseTimeRaw", "Raw ADC pulse times", "frAdcPulseTimeRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPed", "ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseInt", "ADC pulse integrals", "frAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseAmp", "ADC pulse amplitudes", "frAdcPulseAmp.THcSignalHit.GetData()"}); - } - - RVarDef end {}; - vars.push_back(end); - - return DefineVarsFromList(vars.data(), mode); + RVarDef vars[] = { + {"numAdcHits", "Number of ADC Hits Per PMT", "fNumAdcHits"}, // Cherenkov occupancy + {"totNumAdcHits", "Total Number of ADC Hits", "fTotNumAdcHits"}, // Cherenkov multiplicity + {"adcPedRaw", "Raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}, + {"adcPulseIntRaw", "Raw ADC pulse integrals", "frAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"adcPulseAmpRaw", "Raw ADC pulse amplitudes", "frAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"adcPulseTimeRaw", "Raw ADC pulse times", "frAdcPulseTimeRaw.THcSignalHit.GetData()"}, + {"adcPed", "ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}, + {"adcPulseInt", "ADC pulse integrals", "frAdcPulseInt.THcSignalHit.GetData()"}, + {"adcPulseAmp", "ADC pulse amplitudes", "frAdcPulseAmp.THcSignalHit.GetData()"}, + { 0 } + }; + DefineVarsFromList( vars, mode); + } //end debug statement + + RVarDef vars[] = { + {"adcCounter", "ADC counter numbers", "frAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, + {"adcErrorFlag", "Error Flag for When FPGA Fails", "fAdcErrorFlag.THcSignalHit.GetData()"}, + + {"numGoodAdcHits", "Number of Good ADC Hits Per PMT", "fNumGoodAdcHits"}, // Cherenkov occupancy + {"totNumGoodAdcHits", "Total Number of Good ADC Hits", "fTotNumGoodAdcHits"}, // Cherenkov multiplicity + + {"numTracksMatched", "Number of Tracks Matched Per Region", "fNumTracksMatched"}, + {"numTracksFired", "Number of Tracks that Fired Per Region", "fNumTracksFired"}, + {"totNumTracksMatched", "Total Number of Tracks Matched Per Region", "fTotNumTracksMatched"}, + {"totNumTracksFired", "Total Number of Tracks that Fired", "fTotNumTracksFired"}, + + {"npe", "Number of PEs", "fNpe"}, + {"npeSum", "Total Number of PEs", "fNpeSum"}, + + {"goodAdcPed", "Good ADC pedestals", "fGoodAdcPed"}, + {"goodAdcPulseInt", "Good ADC pulse integrals", "fGoodAdcPulseInt"}, + {"goodAdcPulseIntRaw", "Good ADC raw pulse integrals", "fGoodAdcPulseIntRaw"}, + {"goodAdcPulseAmp", "Good ADC pulse amplitudes", "fGoodAdcPulseAmp"}, + {"goodAdcPulseTime", "Good ADC pulse times", "fGoodAdcPulseTime"}, + { 0 } + }; + return DefineVarsFromList(vars, mode); } //_____________________________________________________________________________ inline diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx index fbee2f5547328c351de381817ad5f871a321d9b6..883b57dffc8812ae38792f23d75da7d6f768f2ba 100644 --- a/src/THcScintillatorPlane.cxx +++ b/src/THcScintillatorPlane.cxx @@ -345,93 +345,95 @@ Int_t THcScintillatorPlane::DefineVariables( EMode mode ) fIsSetup = ( mode == kDefine ); // Register variables in global list - vector<RVarDef> vars; if (fDebugAdc) { - vars.push_back(RVarDef{"posAdcErrorFlag", "Error Flag for When FPGA Fails", "frPosAdcErrorFlag.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcErrorFlag", "Error Flag for When FPGA Fails", "frNegAdcErrorFlag.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"posTdcTimeRaw", "List of positive raw TDC values.", "frPosTdcTimeRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPedRaw", "List of positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseIntRaw", "List of positive raw ADC pulse integrals.", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmpRaw", "List of positive raw ADC pulse amplitudes.", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseTimeRaw", "List of positive raw ADC pulse times.", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"posTdcTime", "List of positive TDC values.", "frPosTdcTime.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPed", "List of positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseInt", "List of positive ADC pulse integrals.", "frPosAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmp", "List of positive ADC pulse amplitudes.", "frPosAdcPulseAmp.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"negTdcTimeRaw", "List of negative raw TDC values.", "frNegTdcTimeRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseIntRaw", "List of negative raw ADC pulse integrals.", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmpRaw", "List of negative raw ADC pulse amplitudes.", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseTimeRaw", "List of negative raw ADC pulse times.", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"negTdcTime", "List of negative TDC values.", "frNegTdcTime.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPed", "List of negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseInt", "List of negative ADC pulse integrals.", "frNegAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmp", "List of negative ADC pulse amplitudes.", "frNegAdcPulseAmp.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}); // Hodo+ raw ADC multiplicity Int_t - vars.push_back(RVarDef{"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}); // Hodo- raw ADC multiplicity "" - vars.push_back(RVarDef{"totNumAdcHits", "Total Number of PMTs Hit (as measured by ADCs)", "fTotNumAdcHits"}); // Hodo raw ADC multiplicity "" - - vars.push_back(RVarDef{"totNumPosTdcHits", "Total Number of Positive TDC Hits", "fTotNumPosTdcHits"}); // Hodo+ raw TDC multiplicity "" - vars.push_back(RVarDef{"totNumNegTdcHits", "Total Number of Negative TDC Hits", "fTotNumNegTdcHits"}); // Hodo- raw TDC multiplicity "" - vars.push_back(RVarDef{"totNumTdcHits", "Total Number of PMTs Hits (as measured by TDCs)", "fTotNumTdcHits"}); // Hodo raw TDC multiplicity "" - + RVarDef vars[] = { + {"posAdcErrorFlag", "Error Flag for When FPGA Fails", "frPosAdcErrorFlag.THcSignalHit.GetData()"}, + {"negAdcErrorFlag", "Error Flag for When FPGA Fails", "frNegAdcErrorFlag.THcSignalHit.GetData()"}, + + {"posTdcTimeRaw", "List of positive raw TDC values.", "frPosTdcTimeRaw.THcSignalHit.GetData()"}, + {"posAdcPedRaw", "List of positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPulseIntRaw", "List of positive raw ADC pulse integrals.", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"posAdcPulseAmpRaw", "List of positive raw ADC pulse amplitudes.", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"posAdcPulseTimeRaw", "List of positive raw ADC pulse times.", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}, + + {"posTdcTime", "List of positive TDC values.", "frPosTdcTime.THcSignalHit.GetData()"}, + {"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()"}, + + {"negTdcTimeRaw", "List of negative raw TDC values.", "frNegTdcTimeRaw.THcSignalHit.GetData()"}, + {"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPulseIntRaw", "List of negative raw ADC pulse integrals.", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"negAdcPulseAmpRaw", "List of negative raw ADC pulse amplitudes.", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"negAdcPulseTimeRaw", "List of negative raw ADC pulse times.", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}, + + {"negTdcTime", "List of negative TDC values.", "frNegTdcTime.THcSignalHit.GetData()"}, + {"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()"}, + + {"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 "" + {"totNumAdcHits", "Total Number of PMTs Hit (as measured by ADCs)", "fTotNumAdcHits"}, // Hodo raw ADC multiplicity "" + + {"totNumPosTdcHits", "Total Number of Positive TDC Hits", "fTotNumPosTdcHits"}, // Hodo+ raw TDC multiplicity "" + {"totNumNegTdcHits", "Total Number of Negative TDC Hits", "fTotNumNegTdcHits"}, // Hodo- raw TDC multiplicity "" + {"totNumTdcHits", "Total Number of PMTs Hits (as measured by TDCs)", "fTotNumTdcHits"}, // Hodo raw TDC multiplicity "" + { 0 } + }; + DefineVarsFromList( vars, mode); } //end debug statement - vars.push_back(RVarDef{"nhits", "Number of paddle hits (passed TDC && ADC Min and Max cuts for either end)", "GetNScinHits() "}); - - vars.push_back(RVarDef{"posTdcCounter", "List of positive TDC counter numbers.", "frPosTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}); //Hodo+ raw TDC occupancy - vars.push_back(RVarDef{"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); //Hodo+ raw ADC occupancy - vars.push_back(RVarDef{"negTdcCounter", "List of negative TDC counter numbers.", "frNegTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}); //Hodo- raw TDC occupancy - vars.push_back(RVarDef{"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); //Hodo- raw ADC occupancy + RVarDef vars[] = { + {"nhits", "Number of paddle hits (passed TDC && ADC Min and Max cuts for either end)", "GetNScinHits() "}, - vars.push_back(RVarDef{"fptime", "Time at focal plane", "GetFpTime()"}); + {"posTdcCounter", "List of positive TDC counter numbers.", "frPosTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}, //Hodo+ raw TDC occupancy + {"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, //Hodo+ raw ADC occupancy + {"negTdcCounter", "List of negative TDC counter numbers.", "frNegTdcTimeRaw.THcSignalHit.GetPaddleNumber()"}, //Hodo- raw TDC occupancy + {"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, //Hodo- raw ADC occupancy - vars.push_back(RVarDef{"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}); // Hodo+ good ADC occupancy - vector<Int_t> - vars.push_back(RVarDef{"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}); // Hodo- good ADC occupancy - vector <Int_t> + {"fptime", "Time at focal plane", "GetFpTime()"}, - vars.push_back(RVarDef{"numGoodPosTdcHits", "Number of Good Positive TDC Hits Per PMT", "fNumGoodPosTdcHits"}); // Hodo+ good TDC occupancy - vector<Int_t> - vars.push_back(RVarDef{"numGoodNegTdcHits", "Number of Good Negative TDC Hits Per PMT", "fNumGoodNegTdcHits"}); // Hodo- good TDC occupancy - vector <Int_t> + {"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}, // Hodo+ good ADC occupancy - vector<Int_t> + {"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}, // Hodo- good ADC occupancy - vector <Int_t> + {"numGoodPosTdcHits", "Number of Good Positive TDC Hits Per PMT", "fNumGoodPosTdcHits"}, // Hodo+ good TDC occupancy - vector<Int_t> + {"numGoodNegTdcHits", "Number of Good Negative TDC Hits Per PMT", "fNumGoodNegTdcHits"}, // Hodo- good TDC occupancy - vector <Int_t> - vars.push_back(RVarDef{"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}); // Hodo+ good ADC multiplicity - Int_t - vars.push_back(RVarDef{"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}); // Hodo- good ADC multiplicity - Int_t - vars.push_back(RVarDef{"totNumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}); // Hodo good ADC multiplicity - Int_t - vars.push_back(RVarDef{"totNumGoodPosTdcHits", "Total Number of Good Positive TDC Hits", "fTotNumGoodPosTdcHits"}); // Hodo+ good TDC multiplicity - Int_t - vars.push_back(RVarDef{"totNumGoodNegTdcHits", "Total Number of Good Negative TDC Hits", "fTotNumGoodNegTdcHits"}); // Hodo- good TDC multiplicity - Int_t - vars.push_back(RVarDef{"totNumGoodTdcHits", "TotalNumber of Good TDC Hits Per PMT", "fTotNumGoodTdcHits"}); // Hodo good TDC multiplicity - Int_t + {"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}, // Hodo+ good ADC multiplicity - Int_t + {"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}, // Hodo- good ADC multiplicity - Int_t + {"totNumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}, // Hodo good ADC multiplicity - Int_t + {"totNumGoodPosTdcHits", "Total Number of Good Positive TDC Hits", "fTotNumGoodPosTdcHits"}, // Hodo+ good TDC multiplicity - Int_t + {"totNumGoodNegTdcHits", "Total Number of Good Negative TDC Hits", "fTotNumGoodNegTdcHits"}, // Hodo- good TDC multiplicity - Int_t + {"totNumGoodTdcHits", "TotalNumber of Good TDC Hits Per PMT", "fTotNumGoodTdcHits"}, // Hodo good TDC multiplicity - Int_t - // vars.push_back(RVarDef{"GoodPaddle", "List of Paddle Numbers (passed TDC && ADC Min and Max cuts for either end)", "fHodoHits.THcHodoHit.GetPaddleNumber()"}); - vars.push_back(RVarDef{"GoodPosAdcPed", "List of Positive ADC pedestals (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPed"}); //vector<Double_t> - vars.push_back(RVarDef{"GoodNegAdcPed", "List of Negative ADC pedestals (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPed"}); //vector<Double_t> + // {"GoodPaddle", "List of Paddle Numbers (passed TDC && ADC Min and Max cuts for either end)", "fHodoHits.THcHodoHit.GetPaddleNumber()"}, - vars.push_back(RVarDef{"GoodNegTdcTimeUnCorr", "List of negative TDC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegTdcTimeUnCorr"}); //Units ns - vars.push_back(RVarDef{"GoodNegTdcTimeCorr", "List of negative corrected TDC values (corrected for PMT offset and ADC)", "fGoodNegTdcTimeCorr"}); - vars.push_back(RVarDef{"GoodNegTdcTimeTOFCorr", "List of negative corrected TDC values (corrected for TOF)", "fGoodNegTdcTimeTOFCorr"}); - vars.push_back(RVarDef{"GoodNegAdcPulseInt", "List of negative ADC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseInt"}); - vars.push_back(RVarDef{"GoodPosTdcTimeUnCorr", "List of positive TDC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosTdcTimeUnCorr"}); - vars.push_back(RVarDef{"GoodPosTdcTimeCorr", "List of positive corrected TDC values (corrected for PMT offset and ADC)", "fGoodPosTdcTimeCorr"}); - vars.push_back(RVarDef{"GoodPosTdcTimeTOFCorr", "List of positive corrected TDC values (corrected for TOF)", "fGoodPosTdcTimeTOFCorr"}); - vars.push_back(RVarDef{"GoodPosAdcPulseInt", "List of positive ADC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseInt"}); - vars.push_back(RVarDef{"GoodPosAdcPulseAmp", "List of positive ADC peak amp (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseAmp"}); - vars.push_back(RVarDef{"GoodNegAdcPulseAmp", "List of Negative ADC peak amp (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseAmp"}); - vars.push_back(RVarDef{"GoodPosAdcPulseTime", "List of positive ADC time (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseTime"}); - vars.push_back(RVarDef{"GoodNegAdcPulseTime", "List of Negative ADC time (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseTime"}); - //{"ngoodhits", "Number of paddle hits (passed tof tolerance and used to determine the focal plane time )", "GetNGoodHits() "}); + {"GoodPosAdcPed", "List of Positive ADC pedestals (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPed"}, //vector<Double_t> + {"GoodNegAdcPed", "List of Negative ADC pedestals (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPed"}, //vector<Double_t> - RVarDef end {0}; - vars.push_back(end); + {"GoodNegTdcTimeUnCorr", "List of negative TDC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegTdcTimeUnCorr"}, //Units ns + {"GoodNegTdcTimeCorr", "List of negative corrected TDC values (corrected for PMT offset and ADC)", "fGoodNegTdcTimeCorr"}, + {"GoodNegTdcTimeTOFCorr", "List of negative corrected TDC values (corrected for TOF)", "fGoodNegTdcTimeTOFCorr"}, + {"GoodNegAdcPulseInt", "List of negative ADC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseInt"}, + {"GoodPosTdcTimeUnCorr", "List of positive TDC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosTdcTimeUnCorr"}, + {"GoodPosTdcTimeCorr", "List of positive corrected TDC values (corrected for PMT offset and ADC)", "fGoodPosTdcTimeCorr"}, + {"GoodPosTdcTimeTOFCorr", "List of positive corrected TDC values (corrected for TOF)", "fGoodPosTdcTimeTOFCorr"}, + {"GoodPosAdcPulseInt", "List of positive ADC values (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseInt"}, + {"GoodPosAdcPulseAmp", "List of positive ADC peak amp (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseAmp"}, + {"GoodNegAdcPulseAmp", "List of Negative ADC peak amp (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseAmp"}, + {"GoodPosAdcPulseTime", "List of positive ADC time (passed TDC && ADC Min and Max cuts for either end)", "fGoodPosAdcPulseTime"}, + {"GoodNegAdcPulseTime", "List of Negative ADC time (passed TDC && ADC Min and Max cuts for either end)", "fGoodNegAdcPulseTime"}, + //{"ngoodhits", "Number of paddle hits (passed tof tolerance and used to determine the focal plane time )", "GetNGoodHits() "}, + { 0 } + }; - return DefineVarsFromList(vars.data(), mode); + return DefineVarsFromList(vars, mode); } //_____________________________________________________________________________ diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index 39944a40f4d78b3e4a67b51fd8479d22e8f6aa89..fa0bc7119f5fdcda8211d2f81e413c325d040ec8 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -56,7 +56,7 @@ THcShowerArray::THcShowerArray( const char* name, THcShowerArray::~THcShowerArray() { // Destructor - + for (UInt_t i=0; i<fNRows; i++) { delete [] fXPos[i]; delete [] fYPos[i]; @@ -150,10 +150,10 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) {"cal_debug_adc", &fDebugAdc, kInt, 0, 1}, {0} }; - + fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file - gHcParms->LoadParmValues((DBRequest*)&list, prefix); + gHcParms->LoadParmValues((DBRequest*)&list, prefix); fADCMode=kADCDynamicPedestal; fAdcTimeWindowMin=0; fAdcTimeWindowMax=10000; @@ -326,14 +326,14 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) //fA = new Double_t[fNelem]; //fP = new Double_t[fNelem]; //fA_p = new Double_t[fNelem]; - + fE = vector<Double_t> (fNelem, 0.0); fNumGoodAdcHits = vector<Int_t> (fNelem, 0.0); fGoodAdcPulseIntRaw = vector<Double_t> (fNelem, 0.0); fGoodAdcPed = vector<Double_t> (fNelem, 0.0); fGoodAdcPulseInt = vector<Double_t> (fNelem, 0.0); fGoodAdcPulseAmp = vector<Double_t> (fNelem, 0.0); - fGoodAdcPulseTime = vector<Double_t> (fNelem, 0.0); + fGoodAdcPulseTime = vector<Double_t> (fNelem, 0.0); fBlock_ClusterID = new Int_t[fNelem]; @@ -371,49 +371,50 @@ Int_t THcShowerArray::DefineVariables( EMode mode ) fIsSetup = ( mode == kDefine ); // Register variables in global list - vector<RVarDef> vars; + if (fDebugAdc) { + RVarDef vars[] = { + {"adcPedRaw", "List of raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}, + {"adcPulseIntRaw", "List of raw ADC pulse integrals.", "frAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"adcPulseAmpRaw", "List of raw ADC pulse amplitudes.", "frAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"adcPulseTimeRaw", "List of raw ADC pulse times.", "frAdcPulseTimeRaw.THcSignalHit.GetData()"}, + + {"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()"}, + { 0 } + }; + DefineVarsFromList( vars, mode); + } //end debug statement + RVarDef vars[] = { //{"adchits", "List of ADC hits", "fADCHits.THcSignalHit.GetPaddleNumber()"}, // appears an empty histogram in the root file - - vars.push_back(RVarDef{"adcErrorFlag", "Error Flag When FPGA Fails", "frAdcErrorFlag.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"adcCounter", "List of ADC counter numbers.", "frAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); //raw occupancy - vars.push_back(RVarDef{"numGoodAdcHits", "Number of Good ADC Hits per PMT", "fNumGoodAdcHits" }); //good occupancy - - vars.push_back(RVarDef{"totNumAdcHits", "Total Number of ADC Hits", "fTotNumAdcHits" }); // raw multiplicity - vars.push_back(RVarDef{"totNumGoodAdcHits", "Total Number of Good ADC Hits", "fTotNumGoodAdcHits" }); // good multiplicity - - - vars.push_back(RVarDef{"goodAdcPulseIntRaw", "Good Raw ADC Pulse Integrals", "fGoodAdcPulseIntRaw"}); //this is defined as pulseIntRaw, NOT ADC Amplitude in FillADC_DynamicPedestal() method - vars.push_back(RVarDef{"goodAdcPed", "Good ADC Pedestals", "fGoodAdcPed"}); - vars.push_back(RVarDef{"goodAdcPulseInt", "Good ADC Pulse Integrals", "fGoodAdcPulseInt"}); //this is defined as pulseInt, which is the pedestal subtracted pulse integrals, and is defined if threshold is passed - vars.push_back(RVarDef{"goodAdcPulseAmp", "Good ADC Pulse Amplitudes", "fGoodAdcPulseAmp"}); - vars.push_back(RVarDef{"goodAdcPulseTime", "Good ADC Pulse Times", "fGoodAdcPulseTime"}); //this is defined as pulseInt, which is the pedestal subtracted pulse integrals, and is defined if threshold is passed - - - vars.push_back(RVarDef{"e", "Energy Depositions per block", "fE"}); //defined as fE = fA_p*fGain = pulseInt * Gain - vars.push_back(RVarDef{"earray", "Energy Deposition in Shower Array", "fEarray"}); //defined as a Double_t and represents a sum of the total deposited energy in the shower counter - - vars.push_back(RVarDef{"nclust", "Number of clusters", "fNclust" }); //what is the difference between nclust defined here and that in THcShower.cxx ? - vars.push_back(RVarDef{"block_clusterID", "Cluster ID number", "fBlock_ClusterID"}); // im NOT very clear about this. it is histogrammed at wither -1 or 0. - vars.push_back(RVarDef{"ntracks", "Number of shower tracks", "fNtracks" }); //number of cluster-to-track associations - - if (fDebugAdc) { - vars.push_back(RVarDef{"adcPedRaw", "List of raw ADC pedestals", "frAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseIntRaw", "List of raw ADC pulse integrals.", "frAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseAmpRaw", "List of raw ADC pulse amplitudes.", "frAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseTimeRaw", "List of raw ADC pulse times.", "frAdcPulseTimeRaw.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"adcPed", "List of ADC pedestals", "frAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseInt", "List of ADC pulse integrals.", "frAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"adcPulseAmp", "List of ADC pulse amplitudes.", "frAdcPulseAmp.THcSignalHit.GetData()"}); - } + {"adcErrorFlag", "Error Flag When FPGA Fails", "frAdcErrorFlag.THcSignalHit.GetData()"}, + + {"adcCounter", "List of ADC counter numbers.", "frAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, //raw occupancy + {"numGoodAdcHits", "Number of Good ADC Hits per PMT", "fNumGoodAdcHits" }, //good occupancy + + {"totNumAdcHits", "Total Number of ADC Hits", "fTotNumAdcHits" }, // raw multiplicity + {"totNumGoodAdcHits", "Total Number of Good ADC Hits", "fTotNumGoodAdcHits" }, // good multiplicity + + + {"goodAdcPulseIntRaw", "Good Raw ADC Pulse Integrals", "fGoodAdcPulseIntRaw"}, //this is defined as pulseIntRaw, NOT ADC Amplitude in FillADC_DynamicPedestal() method + {"goodAdcPed", "Good ADC Pedestals", "fGoodAdcPed"}, + {"goodAdcPulseInt", "Good ADC Pulse Integrals", "fGoodAdcPulseInt"}, //this is defined as pulseInt, which is the pedestal subtracted pulse integrals, and is defined if threshold is passed + {"goodAdcPulseAmp", "Good ADC Pulse Amplitudes", "fGoodAdcPulseAmp"}, + {"goodAdcPulseTime", "Good ADC Pulse Times", "fGoodAdcPulseTime"}, //this is defined as pulseInt, which is the pedestal subtracted pulse integrals, and is defined if threshold is passed - RVarDef end {0}; - vars.push_back(end); - return DefineVarsFromList(vars.data(), mode ); + {"e", "Energy Depositions per block", "fE"}, //defined as fE = fA_p*fGain = pulseInt * Gain + {"earray", "Energy Deposition in Shower Array", "fEarray"}, //defined as a Double_t and represents a sum of the total deposited energy in the shower counter + + {"nclust", "Number of clusters", "fNclust" }, //what is the difference between nclust defined here and that in THcShower.cxx ? + {"block_clusterID", "Cluster ID number", "fBlock_ClusterID"}, // im NOT very clear about this. it is histogrammed at wither -1 or 0. + {"ntracks", "Number of shower tracks", "fNtracks" }, //number of cluster-to-track associations + { 0 } + }; + + return DefineVarsFromList(vars, mode ); } //_____________________________________________________________________________ @@ -449,10 +450,10 @@ void THcShowerArray::Clear( Option_t* ) frAdcPulseAmp->Clear(); for (UInt_t ielem = 0; ielem < fGoodAdcPed.size(); ielem++) { - fGoodAdcPulseIntRaw.at(ielem) = 0.0; + fGoodAdcPulseIntRaw.at(ielem) = 0.0; fGoodAdcPed.at(ielem) = 0.0; fGoodAdcPulseInt.at(ielem) = 0.0; - fGoodAdcPulseAmp.at(ielem) = 0.0; + fGoodAdcPulseAmp.at(ielem) = 0.0; fGoodAdcPulseTime.at(ielem) = 0.0; fNumGoodAdcHits.at(ielem) = 0.0; fE.at(ielem) = 0.0; @@ -510,9 +511,9 @@ Int_t THcShowerArray::CoarseProcess( TClonesArray& tracks ) (*(it++))->show(); } } - + ////Sanity check. (Vardan) - + // if ((int)HitSet.size() != fTotNumGoodAdcHits) { // cout << "***" << endl; // cout << "*** THcShowerArray::CoarseProcess: HitSet.size = " << HitSet.size() @@ -537,7 +538,7 @@ Int_t THcShowerArray::CoarseProcess( TClonesArray& tracks ) fBlock_ClusterID[block-1] = ncl; } ncl++; - } + } //Debug output, print out clustered hits. @@ -645,7 +646,7 @@ Int_t THcShowerArray::MatchCluster(THaTrack* Track, Double_t dx = TMath::Abs( clX(cluster) - XTrFront ); Double_t dy = TMath::Abs( clY(cluster) - YTrFront ); Double_t distance = TMath::Sqrt(dx*dx+dy*dy); //cluster-track dist. - if (fParent->fdbg_tracks_cal) { + if (fParent->fdbg_tracks_cal) { cout << " match clust = " << i << " clX = " << clX(cluster)<< " clY = " << clY(cluster) << " distacne = " << distance << " test = " << (0.5*(fXStep + fYStep) + fParent->fSlop) << endl; } @@ -822,7 +823,7 @@ void THcShowerArray::FillADC_DynamicPedestal() for (Int_t ielem=0;ielem<frAdcPulseInt->GetEntries();ielem++) { Int_t npad = ((THcSignalHit*) frAdcPulseInt->ConstructedAt(ielem))->GetPaddleNumber() - 1; Double_t pulseIntRaw = ((THcSignalHit*) frAdcPulseIntRaw->ConstructedAt(ielem))->GetData(); - Double_t pulsePed = ((THcSignalHit*) frAdcPed->ConstructedAt(ielem))->GetData(); + Double_t pulsePed = ((THcSignalHit*) frAdcPed->ConstructedAt(ielem))->GetData(); Double_t pulseInt = ((THcSignalHit*) frAdcPulseInt->ConstructedAt(ielem))->GetData(); Double_t pulseAmp = ((THcSignalHit*) frAdcPulseAmp->ConstructedAt(ielem))->GetData(); Double_t pulseTime = ((THcSignalHit*) frAdcPulseTimeRaw->ConstructedAt(ielem))->GetData(); @@ -831,22 +832,22 @@ void THcShowerArray::FillADC_DynamicPedestal() if (!errorflag && pulseTimeCut) { fTotNumAdcHits++; fGoodAdcPulseIntRaw.at(npad) = pulseIntRaw; - + if(fGoodAdcPulseIntRaw.at(npad) > fThresh[npad]) { fTotNumGoodAdcHits++; fGoodAdcPulseInt.at(npad) = pulseInt; fE.at(npad) = fGoodAdcPulseInt.at(npad)*fGain[npad]; fEarray += fE.at(npad); - - fGoodAdcPed.at(npad) = pulsePed; - fGoodAdcPulseAmp.at(npad) = pulseAmp; - fGoodAdcPulseTime.at(npad) = pulseTime; + + fGoodAdcPed.at(npad) = pulsePed; + fGoodAdcPulseAmp.at(npad) = pulseAmp; + fGoodAdcPulseTime.at(npad) = pulseTime; fNumGoodAdcHits.at(npad) = npad + 1; } - } + } } // } diff --git a/src/THcShowerPlane.cxx b/src/THcShowerPlane.cxx index 6b1ab72698e7affa1abd9c1525a06a4865aeb8b2..4b5d7cce17a9e5fbf9e7900c98d144fe9b30774f 100644 --- a/src/THcShowerPlane.cxx +++ b/src/THcShowerPlane.cxx @@ -279,70 +279,71 @@ Int_t THcShowerPlane::DefineVariables( EMode mode ) fIsSetup = ( mode == kDefine ); // Register variables in global list - vector<RVarDef> vars; - - vars.push_back(RVarDef{"posAdcErrorFlag", "List of positive raw ADC Error Flags", "frPosAdcErrorFlag.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcErrorFlag", "List of negative raw ADC Error Flags ", "frNegAdcErrorFlag.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); //PreSh+ raw occupancy - vars.push_back(RVarDef{"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}); //PreSh- raw occupancy - - vars.push_back(RVarDef{"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}); // PreSh+ raw multiplicity - vars.push_back(RVarDef{"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}); // PreSh+ raw multiplicity - vars.push_back(RVarDef{"totnumAdcHits", "Total Number of ADC Hits Per PMT", "fTotNumAdcHits"}); // PreSh raw multiplicity - - vars.push_back(RVarDef{"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}); // PreSh occupancy - vars.push_back(RVarDef{"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}); // PreSh occupancy - vars.push_back(RVarDef{"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}); // PreSh multiplicity - vars.push_back(RVarDef{"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}); // PreSh multiplicity - vars.push_back(RVarDef{"totnumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}); // PreSh multiplicity - - vars.push_back(RVarDef{"goodPosAdcPulseIntRaw", "Good Positive Raw ADC Pulse Integrals", "fGoodPosAdcPulseIntRaw"}); - vars.push_back(RVarDef{"goodNegAdcPulseIntRaw", "Good Negative Raw ADC Pulse Integrals", "fGoodNegAdcPulseIntRaw"}); - - vars.push_back(RVarDef{"goodPosAdcPed", "Good Positive ADC pedestals", "fGoodPosAdcPed"}); - vars.push_back(RVarDef{"goodPosAdcPulseInt", "Good Positive ADC integrals", "fGoodPosAdcPulseInt"}); - vars.push_back(RVarDef{"goodPosAdcPulseAmp", "Good Positive ADC amplitudes", "fGoodPosAdcPulseAmp"}); - vars.push_back(RVarDef{"goodPosAdcPulseTime", "Good Positive ADC times", "fGoodPosAdcPulseTime"}); - - vars.push_back(RVarDef{"goodNegAdcPed", "Good Negative ADC pedestals", "fGoodNegAdcPed"}); - vars.push_back(RVarDef{"goodNegAdcPulseInt", "Good Negative ADC integrals", "fGoodNegAdcPulseInt"}); - vars.push_back(RVarDef{"goodNegAdcPulseAmp", "Good Negative ADC amplitudes", "fGoodNegAdcPulseAmp"}); - vars.push_back(RVarDef{"goodNegAdcPulseTime", "Good Negative ADC times", "fGoodNegAdcPulseTime"}); - - vars.push_back(RVarDef{"epos", "Energy Depositions from Positive Side PMTs", "fEpos"}); - vars.push_back(RVarDef{"eneg", "Energy Depositions from Negative Side PMTs", "fEneg"}); - vars.push_back(RVarDef{"emean", "Mean Energy Depositions", "fEmean"}); - vars.push_back(RVarDef{"eplane", "Energy Deposition per plane", "fEplane"}); - vars.push_back(RVarDef{"eplane_pos", "Energy Deposition per plane from pos. PMTs","fEplane_pos"}); - vars.push_back(RVarDef{"eplane_neg", "Energy Deposition per plane from neg. PMTs","fEplane_neg"}); - if (fDebugAdc) { - vars.push_back(RVarDef{"posAdcPedRaw", "List of positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseIntRaw", "List of positive raw ADC pulse integrals.", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmpRaw", "List of positive raw ADC pulse amplitudes.", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseTimeRaw", "List of positive raw ADC pulse times.", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"posAdcPed", "List of positive ADC pedestals", "frPosAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseInt", "List of positive ADC pulse integrals.", "frPosAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"posAdcPulseAmp", "List of positive ADC pulse amplitudes.", "frPosAdcPulseAmp.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseIntRaw", "List of negative raw ADC pulse integrals.", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmpRaw", "List of negative raw ADC pulse amplitudes.", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseTimeRaw", "List of negative raw ADC pulse times.", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}); - - vars.push_back(RVarDef{"negAdcPed", "List of negative ADC pedestals", "frNegAdcPed.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseInt", "List of negative ADC pulse integrals.", "frNegAdcPulseInt.THcSignalHit.GetData()"}); - vars.push_back(RVarDef{"negAdcPulseAmp", "List of negative ADC pulse amplitudes.", "frNegAdcPulseAmp.THcSignalHit.GetData()"}); - - } - - RVarDef end {0}; - vars.push_back(end); + RVarDef vars[] = { + {"posAdcPedRaw", "List of positive raw ADC pedestals", "frPosAdcPedRaw.THcSignalHit.GetData()"}, + {"posAdcPulseIntRaw", "List of positive raw ADC pulse integrals.", "frPosAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"posAdcPulseAmpRaw", "List of positive raw ADC pulse amplitudes.", "frPosAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"posAdcPulseTimeRaw", "List of positive raw ADC pulse times.", "frPosAdcPulseTimeRaw.THcSignalHit.GetData()"}, + + {"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()"}, + + {"negAdcPedRaw", "List of negative raw ADC pedestals", "frNegAdcPedRaw.THcSignalHit.GetData()"}, + {"negAdcPulseIntRaw", "List of negative raw ADC pulse integrals.", "frNegAdcPulseIntRaw.THcSignalHit.GetData()"}, + {"negAdcPulseAmpRaw", "List of negative raw ADC pulse amplitudes.", "frNegAdcPulseAmpRaw.THcSignalHit.GetData()"}, + {"negAdcPulseTimeRaw", "List of negative raw ADC pulse times.", "frNegAdcPulseTimeRaw.THcSignalHit.GetData()"}, + + {"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()"}, + { 0 } + }; + DefineVarsFromList( vars, mode); + } //end debug statement + + RVarDef vars[] = { + {"posAdcErrorFlag", "List of positive raw ADC Error Flags", "frPosAdcErrorFlag.THcSignalHit.GetData()"}, + {"negAdcErrorFlag", "List of negative raw ADC Error Flags ", "frNegAdcErrorFlag.THcSignalHit.GetData()"}, + + {"posAdcCounter", "List of positive ADC counter numbers.", "frPosAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, //PreSh+ raw occupancy + {"negAdcCounter", "List of negative ADC counter numbers.", "frNegAdcPulseIntRaw.THcSignalHit.GetPaddleNumber()"}, //PreSh- raw occupancy + + {"totNumPosAdcHits", "Total Number of Positive ADC Hits", "fTotNumPosAdcHits"}, // PreSh+ raw multiplicity + {"totNumNegAdcHits", "Total Number of Negative ADC Hits", "fTotNumNegAdcHits"}, // PreSh+ raw multiplicity + {"totnumAdcHits", "Total Number of ADC Hits Per PMT", "fTotNumAdcHits"}, // PreSh raw multiplicity + + {"numGoodPosAdcHits", "Number of Good Positive ADC Hits Per PMT", "fNumGoodPosAdcHits"}, // PreSh occupancy + {"numGoodNegAdcHits", "Number of Good Negative ADC Hits Per PMT", "fNumGoodNegAdcHits"}, // PreSh occupancy + {"totNumGoodPosAdcHits", "Total Number of Good Positive ADC Hits", "fTotNumGoodPosAdcHits"}, // PreSh multiplicity + {"totNumGoodNegAdcHits", "Total Number of Good Negative ADC Hits", "fTotNumGoodNegAdcHits"}, // PreSh multiplicity + {"totnumGoodAdcHits", "TotalNumber of Good ADC Hits Per PMT", "fTotNumGoodAdcHits"}, // PreSh multiplicity + + {"goodPosAdcPulseIntRaw", "Good Positive Raw ADC Pulse Integrals", "fGoodPosAdcPulseIntRaw"}, + {"goodNegAdcPulseIntRaw", "Good Negative Raw ADC Pulse Integrals", "fGoodNegAdcPulseIntRaw"}, + + {"goodPosAdcPed", "Good Positive ADC pedestals", "fGoodPosAdcPed"}, + {"goodPosAdcPulseInt", "Good Positive ADC integrals", "fGoodPosAdcPulseInt"}, + {"goodPosAdcPulseAmp", "Good Positive ADC amplitudes", "fGoodPosAdcPulseAmp"}, + {"goodPosAdcPulseTime","Good Positive ADC times", "fGoodPosAdcPulseTime"}, + + {"goodNegAdcPed", "Good Negative ADC pedestals", "fGoodNegAdcPed"}, + {"goodNegAdcPulseInt", "Good Negative ADC integrals", "fGoodNegAdcPulseInt"}, + {"goodNegAdcPulseAmp", "Good Negative ADC amplitudes", "fGoodNegAdcPulseAmp"}, + {"goodNegAdcPulseTime","Good Negative ADC times", "fGoodNegAdcPulseTime"}, + + {"epos", "Energy Depositions from Positive Side PMTs", "fEpos"}, + {"eneg", "Energy Depositions from Negative Side PMTs", "fEneg"}, + {"emean", "Mean Energy Depositions", "fEmean"}, + {"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"}, + { 0 } + }; - return DefineVarsFromList(vars.data(), mode); + return DefineVarsFromList(vars, mode); } //_____________________________________________________________________________