diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 94746cf26af17074a6cd28bf3bf9c530a6870b7c..3fa912a6682e3224e230bc8ef713322159f38b66 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -191,6 +191,11 @@ THaAnalysisObject::EStatus THcAerogel::Init( const TDatime& date ) if( (status = THaNonTrackingDetector::Init( date )) ) return fStatus=status; + fPresentP = 0; + THaVar* vpresent = gHaVars->Find(Form("%s.present",GetApparatus()->GetName())); + if(vpresent) { + fPresentP = (Bool_t *) vpresent->GetValuePointer(); + } return fStatus = kOK; } @@ -565,7 +570,11 @@ void THcAerogel::Clear(Option_t* opt) Int_t THcAerogel::Decode( const THaEvData& evdata ) { // Get the Hall C style hitlist (fRawHitList) for this event - fNhits = DecodeToHitList(evdata); + Bool_t present = kTRUE; // Suppress reference time warnings + if(fPresentP) { // if this spectrometer not part of trigger + present = *fPresentP; + } + fNhits = DecodeToHitList(evdata, !present); if (fSixGevData) { if(gHaCuts->Result("Pedestal_event")) { diff --git a/src/THcAerogel.h b/src/THcAerogel.h index 99ec46430de72cdbffd142b96dd8b8271d6a9334..6fb8e403f835a6f540907e46bb98e128dfa1e3d0 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -40,6 +40,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { // Event information Int_t fNhits; + Bool_t* fPresentP; // 12 GeV variables // Vector/TClonesArray length parameters diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index 503d9cfe01182528c0c9621096442016f1ce9d62..27d081d391ea449cd18c1327de3d3eafa69b0cbe 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -152,6 +152,11 @@ THaAnalysisObject::EStatus THcCherenkov::Init( const TDatime& date ) if((status = THaNonTrackingDetector::Init( date ))) return fStatus=status; + fPresentP = 0; + THaVar* vpresent = gHaVars->Find(Form("%s.present",GetApparatus()->GetName())); + if(vpresent) { + fPresentP = (Bool_t *) vpresent->GetValuePointer(); + } return fStatus = kOK; } @@ -340,7 +345,11 @@ void THcCherenkov::Clear(Option_t* opt) Int_t THcCherenkov::Decode( const THaEvData& evdata ) { // Get the Hall C style hitlist (fRawHitList) for this event - fNhits = DecodeToHitList(evdata); + Bool_t present = kTRUE; // Suppress reference time warnings + if(fPresentP) { // if this spectrometer not part of trigger + present = *fPresentP; + } + fNhits = DecodeToHitList(evdata, !present); if(gHaCuts->Result("Pedestal_event")) { AccumulatePedestals(fRawHitList); diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h index 86b69737e83c5e0c361f04dfb978eb882d8c46db..0c83a6c3aa066dd083dd538e93a373e70365d29a 100644 --- a/src/THcCherenkov.h +++ b/src/THcCherenkov.h @@ -43,6 +43,7 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList { THcCherenkov(); // for ROOT I/O protected: + Bool_t* fPresentP; Int_t fAnalyzePedestals; Int_t fDebugAdc; Double_t* fWidth; diff --git a/src/THcDC.cxx b/src/THcDC.cxx index dcb5dad8f760e2cc849a4a1c63c97091e33d2aca..9a7b91a3ca7becfc88e53686481be01afb3908b6 100644 --- a/src/THcDC.cxx +++ b/src/THcDC.cxx @@ -246,7 +246,12 @@ THaAnalysisObject::EStatus THcDC::Init( const TDatime& date ) // { &fLTNhit, &fLANhit, fLT, fLT_c, fLA, fLA_p, fLA_c, fLOff, fLPed, fLGain } // }; // memcpy( fDataDest, tmp, NDEST*sizeof(DataDest) ); - + + fPresentP = 0; + THaVar* vpresent = gHaVars->Find(Form("%s.present",GetApparatus()->GetName())); + if(vpresent) { + fPresentP = (Bool_t *) vpresent->GetValuePointer(); + } return fStatus = kOK; } @@ -502,7 +507,12 @@ Int_t THcDC::Decode( const THaEvData& evdata ) Int_t num_event = evdata.GetEvNum(); if (fdebugprintrawdc ||fdebugprintdecodeddc || fdebuglinkstubs || fdebugtrackprint) cout << " event num = " << num_event << endl; // Get the Hall C style hitlist (fRawHitList) for this event - fNhits = DecodeToHitList(evdata); + + Bool_t present = kTRUE; // Suppress reference time warnings + if(fPresentP) { // if this spectrometer not part of trigger + present = *fPresentP; + } + fNhits = DecodeToHitList(evdata, !present); if(!gHaCuts->Result("Pedestal_event")) { // Let each plane get its hits diff --git a/src/THcDC.h b/src/THcDC.h index 5331381415dcedf0e4a6f9c0a66df343f2f1bc6f..867306d199c1a4dd637b8644f88f9f6da3f6fd7c 100644 --- a/src/THcDC.h +++ b/src/THcDC.h @@ -175,6 +175,10 @@ protected: Int_t* fNChamHits; Int_t* fPlaneEvents; + // Pointer to global var indicating whether this spectrometer is triggered + // for this event. + Bool_t* fPresentP; + // Useful derived quantities // double tan_angle, sin_angle, cos_angle; diff --git a/src/THcHodoscope.cxx b/src/THcHodoscope.cxx index 630ef0f03b38737841bdfae8cf7b64ff4f28898d..5236fac837491d3c532e08d28464870f935a464a 100644 --- a/src/THcHodoscope.cxx +++ b/src/THcHodoscope.cxx @@ -197,8 +197,11 @@ THaAnalysisObject::EStatus THcHodoscope::Init( const TDatime& date ) fScinHitPaddle.push_back(std::vector<Int_t>(fNPaddle[ip], 0)); } - - + fPresentP = 0; + THaVar* vpresent = gHaVars->Find(Form("%s.present",GetApparatus()->GetName())); + if(vpresent) { + fPresentP = (Bool_t *) vpresent->GetValuePointer(); + } return fStatus = kOK; } @@ -590,7 +593,11 @@ Int_t THcHodoscope::Decode( const THaEvData& evdata ) */ ClearEvent(); // Get the Hall C style hitlist (fRawHitList) for this event - fNHits = DecodeToHitList(evdata); + Bool_t present = kTRUE; // Suppress reference time warnings + if(fPresentP) { // if this spectrometer not part of trigger + present = *fPresentP; + } + fNHits = DecodeToHitList(evdata, !present); // // GN: print event number so we can cross-check with engine diff --git a/src/THcHodoscope.h b/src/THcHodoscope.h index b85c7a3faac772bbe91774e5ca015652ae3f24c5..d7beb82c4cd4dc0a1af0d164e28df34c36280aa3 100644 --- a/src/THcHodoscope.h +++ b/src/THcHodoscope.h @@ -132,6 +132,7 @@ protected: Double_t fStartTime; Double_t fFPTimeAll; Int_t fNfptimes; + Bool_t* fPresentP; Double_t fBeta; diff --git a/src/THcShower.cxx b/src/THcShower.cxx index 89304b36bc8b23fc878cc959d8ad24e858928e4f..c3c6564461a33b08ff2e70267abb5fb44b8c3d59 100644 --- a/src/THcShower.cxx +++ b/src/THcShower.cxx @@ -177,6 +177,11 @@ THaAnalysisObject::EStatus THcShower::Init( const TDatime& date ) // << GetName() << endl; // cout << "---------------------------------------------------------------\n"; + fPresentP = 0; + THaVar* vpresent = gHaVars->Find(Form("%s.present",GetApparatus()->GetName())); + if(vpresent) { + fPresentP = (Bool_t *) vpresent->GetValuePointer(); + } return fStatus = kOK; } @@ -626,7 +631,11 @@ Int_t THcShower::Decode( const THaEvData& evdata ) Clear(); // Get the Hall C style hitlist (fRawHitList) for this event - Int_t nhits = DecodeToHitList(evdata); + Bool_t present = kTRUE; // Suppress reference time warnings + if(fPresentP) { // if this spectrometer not part of trigger + present = *fPresentP; + } + Int_t nhits = DecodeToHitList(evdata, !present); fEvent = evdata.GetEvNum(); diff --git a/src/THcShower.h b/src/THcShower.h index 05813db2b0190f77dc20261ea8300690f8f53a2e..3a0adea9b26207656d6562818fb25841c19dc231 100644 --- a/src/THcShower.h +++ b/src/THcShower.h @@ -145,6 +145,7 @@ public: protected: + Bool_t* fPresentP; Int_t fEvent; Int_t fADCMode; // != 0 if using FADC // 1 == Use the pulse int - pulse ped