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