CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
EcalDeadCellTriggerPrimitiveFilter Class Reference

#include <EcalDeadCellTriggerPrimitiveFilter.cc>

Inheritance diagram for EcalDeadCellTriggerPrimitiveFilter:
edm::stream::EDFilter<> edm::stream::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 EcalDeadCellTriggerPrimitiveFilter (const edm::ParameterSet &)
 
 ~EcalDeadCellTriggerPrimitiveFilter () override
 
- Public Member Functions inherited from edm::stream::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
- Public Member Functions inherited from edm::stream::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void beginStream (edm::StreamID) override
 
void envSet (const edm::EventSetup &)
 
bool filter (edm::Event &, const edm::EventSetup &) override
 
int getChannelStatusMaps ()
 
void loadEcalDigis (edm::Event &iEvent, edm::Handle< EcalTrigPrimDigiCollection > &pTPDigis)
 
void loadEcalRecHits (edm::Event &iEvent, edm::Handle< EcalRecHitCollection > &barrelReducedRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapReducedRecHitsHandle)
 
int setEvtRecHitstatus (const double &tpValCut, const int &chnStatus, const int &towerTest, const EBRecHitCollection &HitecalEB, const EERecHitCollection &HitecalEE)
 
int setEvtTPstatus (const EcalTrigPrimDigiCollection &, const double &tpCntCut, const int &chnStatus, EcalTPGScale &)
 

Private Attributes

std::map< EcalScDetId, int > accuSCchnMap
 
std::map< EcalScDetId, double > accuSCetMap
 
std::map< EcalTrigTowerDetId, int > accuTTchnMap
 
std::map< EcalTrigTowerDetId, double > accuTTetMap
 
std::vector< DetIdavoidDuplicateVec
 
const bool debug_
 
const bool doEEfilter_
 
const edm::InputTag ebReducedRecHitCollection_
 
edm::EDGetTokenT< EcalRecHitCollectionebReducedRecHitCollectionToken_
 
std::map< DetId, std::vector< int > > EcalAllDeadChannelsBitMap
 
std::map< DetId, EcalTrigTowerDetIdEcalAllDeadChannelsTTMap
 
std::map< DetId, std::vector< double > > EcalAllDeadChannelsValMap
 
edm::ESHandle< EcalChannelStatusecalStatus
 
const edm::InputTag eeReducedRecHitCollection_
 
edm::EDGetTokenT< EcalRecHitCollectioneeReducedRecHitCollectionToken_
 
const double etValToBeFlagged_
 
edm::ESHandle< CaloGeometrygeometry
 
int hasReducedRecHits_ = 0
 
const int maskedEcalChannelStatusThreshold_
 
edm::EDPutTokenT< bool > putToken_
 
std::map< EcalScDetId, int > SCzsideMap
 
const bool taggingMode_
 
const edm::InputTag tpDigiCollection_
 
edm::EDGetTokenT< EcalTrigPrimDigiCollectiontpDigiCollectionToken_
 
edm::ESHandle< EcalTrigTowerConstituentsMapttMap_
 
std::map< EcalTrigTowerDetId, int > TTzsideMap
 
bool useHITmethod_ = false
 
const bool usekTPSaturated_
 
bool useTPmethod_ = false
 
const bool useTTsum_
 
const int verbose_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDFilter<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDFilterBase
typedef EDFilterAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: <one line="" class="" summary>=""> Event filtering for anomalous ECAL events where the energy measured by ECAL is significantly biased due to energy depositions in dead cell regions.

Definition at line 72 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Constructor & Destructor Documentation

EcalDeadCellTriggerPrimitiveFilter::EcalDeadCellTriggerPrimitiveFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 165 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References edm::ProducerBase::callWhenNewProductsRegistered(), ebReducedRecHitCollection_, ebReducedRecHitCollectionToken_, eeReducedRecHitCollection_, eeReducedRecHitCollectionToken_, hasReducedRecHits_, edm::InputTag::label(), edm::BranchDescription::moduleLabel(), tpDigiCollection_, useHITmethod_, and useTPmethod_.

Referenced by getChannelStatusMaps().

166  : taggingMode_ (iConfig.getParameter<bool>("taggingMode") )
167  , debug_ (iConfig.getParameter<bool>("debug") )
168  , verbose_ (iConfig.getParameter<int>("verbose") )
169  , doEEfilter_ (iConfig.getUntrackedParameter<bool>("doEEfilter") )
170  , ebReducedRecHitCollection_ (iConfig.getParameter<edm::InputTag>("ebReducedRecHitCollection") )
171  , eeReducedRecHitCollection_ (iConfig.getParameter<edm::InputTag>("eeReducedRecHitCollection") )
172  , maskedEcalChannelStatusThreshold_ (iConfig.getParameter<int>("maskedEcalChannelStatusThreshold") )
173  , etValToBeFlagged_ (iConfig.getParameter<double>("etValToBeFlagged") )
174  , tpDigiCollection_ (iConfig.getParameter<edm::InputTag>("tpDigiCollection") )
175  , tpDigiCollectionToken_(consumes<EcalTrigPrimDigiCollection>(tpDigiCollection_))
176  , useTTsum_ (iConfig.getParameter<bool>("useTTsum") )
177  , usekTPSaturated_ (iConfig.getParameter<bool>("usekTPSaturated") )
178  , putToken_ ( produces<bool>() )
179 {
181  // If TP is available, always use TP.
182  // In RECO file, we always have ecalTPSkim (at least from 38X for data and 39X for MC).
183  // In AOD file, we can only have recovered rechits in the reduced rechits collection after 42X
184  // Do NOT expect end-users provide ecalTPSkim or recovered rechits themselves!!
185  // If they really can provide them, they must be experts to modify this code to suit their own purpose :-)
186  if( iBranch.moduleLabel() == tpDigiCollection_.label() ){
187  useTPmethod_ = true;
188  //if both collections are in the job then we may already have seen the reduced collections
189  useHITmethod_ = false;
190  }
193  if(not useTPmethod_ && hasReducedRecHits_ == 2) {
194  useHITmethod_ = true;
195  ebReducedRecHitCollectionToken_ = consumes<EcalRecHitCollection>(ebReducedRecHitCollection_);
196  eeReducedRecHitCollectionToken_ = consumes<EcalRecHitCollection>(eeReducedRecHitCollection_);
197  }
198  }
199  });
200 }
T getParameter(std::string const &) const
void callWhenNewProductsRegistered(std::function< void(BranchDescription const &)> const &func)
Definition: ProducerBase.h:79
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollectionToken_
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollectionToken_
std::string const & moduleLabel() const
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< EcalTrigPrimDigiCollection > tpDigiCollectionToken_
EcalDeadCellTriggerPrimitiveFilter::~EcalDeadCellTriggerPrimitiveFilter ( )
override

Definition at line 202 of file EcalDeadCellTriggerPrimitiveFilter.cc.

202  {
203 }

Member Function Documentation

void EcalDeadCellTriggerPrimitiveFilter::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 297 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References debug_, EcalAllDeadChannelsBitMap, EcalAllDeadChannelsValMap, envSet(), getChannelStatusMaps(), mathSSE::return(), and verbose_.

297  {
298 // Channel status might change for each run (data)
299 // Event setup
300  envSet(iSetup);
302  if( debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<< "EcalAllDeadChannelsValMap.size() : "<<EcalAllDeadChannelsValMap.size()<<" EcalAllDeadChannelsBitMap.size() : "<<EcalAllDeadChannelsBitMap.size();
303  return ;
304 }
std::map< DetId, std::vector< int > > EcalAllDeadChannelsBitMap
return((rh^lh)&mask)
std::map< DetId, std::vector< double > > EcalAllDeadChannelsValMap
void EcalDeadCellTriggerPrimitiveFilter::beginStream ( edm::StreamID  )
overrideprivatevirtual

Reimplemented from edm::stream::EDFilterBase.

Definition at line 205 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References debug_, hasReducedRecHits_, useHITmethod_, and useTPmethod_.

205  {
206 
207  if( debug_ ) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"\nuseTPmethod_ : "<<useTPmethod_<<" hasReducedRecHits_ : "<<hasReducedRecHits_;
208 
209  if( not useTPmethod_ and not useHITmethod_){
210  if( debug_ ){
211  edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"\nWARNING ... Cannot find either tpDigiCollection_ or reducedRecHitCollecion_ ?!";
212  edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<" Will NOT DO ANY FILTERING !";
213  }
214  }
215 
216  if( debug_ ) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"useTPmethod_ : "<<useTPmethod_<<" useHITmethod_ : "<<useHITmethod_;
217 
218 }
void EcalDeadCellTriggerPrimitiveFilter::envSet ( const edm::EventSetup iSetup)
private

Definition at line 241 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References debug_, ecalStatus, edm::EventSetup::get(), ttMap_, and verbose_.

Referenced by beginRun().

241  {
242 
243  if (debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter") << "***envSet***";
244 
245  iSetup.get<IdealGeometryRecord>().get(ttMap_);
246 
247  iSetup.get<EcalChannelStatusRcd> ().get(ecalStatus);
248  iSetup.get<CaloGeometryRecord> ().get(geometry);
249 
250  if( !ecalStatus.isValid() ) throw "Failed to get ECAL channel status!";
251  if( !geometry.isValid() ) throw "Failed to get the geometry!";
252 
253 }
edm::ESHandle< EcalTrigTowerConstituentsMap > ttMap_
T get() const
Definition: EventSetup.h:71
bool EcalDeadCellTriggerPrimitiveFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 256 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References funct::abs(), debug_, edm::Event::emplace(), etValToBeFlagged_, edm::EventID::event(), edm::EventBase::id(), loadEcalDigis(), loadEcalRecHits(), eostools::ls(), edm::EventBase::luminosityBlock(), putToken_, writedatasetfile::run, edm::EventID::run(), EcalTPGScale::setEventSetup(), setEvtRecHitstatus(), setEvtTPstatus(), taggingMode_, useHITmethod_, useTPmethod_, and verbose_.

256  {
257 
258  edm::RunNumber_t run = iEvent.id().run();
259  edm::EventNumber_t event = iEvent.id().event();
261 
262  bool pass = true;
263 
264  int evtTagged = 0;
265 
266 
267  if( useTPmethod_ ){
269  loadEcalDigis(iEvent, pTPDigis);
270 
271  EcalTPGScale ecalScale;
272  ecalScale.setEventSetup(iSetup);
273  evtTagged = setEvtTPstatus(*pTPDigis, etValToBeFlagged_, 13, ecalScale);
274  }
275 
276  if( useHITmethod_ ){
277  edm::Handle<EcalRecHitCollection> barrelReducedRecHitsHandle;
278  edm::Handle<EcalRecHitCollection> endcapReducedRecHitsHandle;
279  loadEcalRecHits(iEvent, barrelReducedRecHitsHandle, endcapReducedRecHitsHandle);
280  evtTagged = setEvtRecHitstatus(etValToBeFlagged_, 13, 13, *barrelReducedRecHitsHandle, *endcapReducedRecHitsHandle);
281  }
282 
283  if( evtTagged ){ pass = false; }
284 
285  if(debug_ && verbose_ >=2){
286  int evtstatusABS = abs(evtTagged);
287  printf("\nrun : %8u event : %10llu lumi : %4u evtTPstatus ABS : %d 13 : % 2d\n", run, event, ls, evtstatusABS, evtTagged);
288  }
289 
290  iEvent.emplace(putToken_, pass);
291 
292  if (taggingMode_) return true;
293  else return pass;
294 }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
void setEventSetup(const edm::EventSetup &evtSetup)
Definition: EcalTPGScale.cc:19
unsigned long long EventNumber_t
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
void loadEcalDigis(edm::Event &iEvent, edm::Handle< EcalTrigPrimDigiCollection > &pTPDigis)
unsigned int LuminosityBlockNumber_t
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int setEvtRecHitstatus(const double &tpValCut, const int &chnStatus, const int &towerTest, const EBRecHitCollection &HitecalEB, const EERecHitCollection &HitecalEE)
def ls(path, rec=False)
Definition: eostools.py:349
OrphanHandle< PROD > emplace(EDPutTokenT< PROD > token, Args &&...args)
puts a new product
Definition: Event.h:413
int setEvtTPstatus(const EcalTrigPrimDigiCollection &, const double &tpCntCut, const int &chnStatus, EcalTPGScale &)
edm::EventID id() const
Definition: EventBase.h:59
unsigned int RunNumber_t
Definition: event.py:1
void loadEcalRecHits(edm::Event &iEvent, edm::Handle< EcalRecHitCollection > &barrelReducedRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapReducedRecHitsHandle)
int EcalDeadCellTriggerPrimitiveFilter::getChannelStatusMaps ( )
private

Definition at line 549 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References DEFINE_FWK_MODULE, doEEfilter_, EcalAllDeadChannelsBitMap, EcalAllDeadChannelsTTMap, EcalAllDeadChannelsValMap, EcalDeadCellTriggerPrimitiveFilter(), ecalStatus, PVValHelper::eta, EBDetId::ETAPHIMODE, CaloSubdetectorGeometry::getGeometry(), maskedEcalChannelStatusThreshold_, phi, mps_update::status, theta(), EcalTrigTowerConstituentsMap::towerOf(), ttMap_, EBDetId::validDetId(), EEDetId::validDetId(), and EEDetId::XYMODE.

Referenced by beginRun().

549  {
550 
552 
553 // Loop over EB ...
554  for( int ieta=-85; ieta<=85; ieta++ ){
555  for( int iphi=0; iphi<=360; iphi++ ){
556  if(! EBDetId::validDetId( ieta, iphi ) ) continue;
557 
558  const EBDetId detid = EBDetId( ieta, iphi, EBDetId::ETAPHIMODE );
559  EcalChannelStatus::const_iterator chit = ecalStatus->find( detid );
560 // refer https://twiki.cern.ch/twiki/bin/viewauth/CMS/EcalChannelStatus
561  int status = ( chit != ecalStatus->end() ) ? chit->getStatusCode() & 0x1F : -1;
562 
563  const CaloSubdetectorGeometry* subGeom = geometry->getSubdetectorGeometry (detid);
564  auto cellGeom = subGeom->getGeometry (detid);
565  double eta = cellGeom->getPosition ().eta ();
566  double phi = cellGeom->getPosition ().phi ();
567  double theta = cellGeom->getPosition().theta();
568 
569  if(status >= maskedEcalChannelStatusThreshold_){
570  std::vector<double> valVec; std::vector<int> bitVec;
571  valVec.push_back(eta); valVec.push_back(phi); valVec.push_back(theta);
572  bitVec.push_back(1); bitVec.push_back(ieta); bitVec.push_back(iphi); bitVec.push_back(status);
573  EcalAllDeadChannelsValMap.insert( std::make_pair(detid, valVec) );
574  EcalAllDeadChannelsBitMap.insert( std::make_pair(detid, bitVec) );
575  }
576  } // end loop iphi
577  } // end loop ieta
578 
579 // Loop over EE detid
580  if (doEEfilter_) {
581  for( int ix=0; ix<=100; ix++ ){
582  for( int iy=0; iy<=100; iy++ ){
583  for( int iz=-1; iz<=1; iz++ ){
584  if(iz==0) continue;
585  if(! EEDetId::validDetId( ix, iy, iz ) ) continue;
586 
587  const EEDetId detid = EEDetId( ix, iy, iz, EEDetId::XYMODE );
588  EcalChannelStatus::const_iterator chit = ecalStatus->find( detid );
589  int status = ( chit != ecalStatus->end() ) ? chit->getStatusCode() & 0x1F : -1;
590 
591  const CaloSubdetectorGeometry* subGeom = geometry->getSubdetectorGeometry (detid);
592  auto cellGeom = subGeom->getGeometry (detid);
593  double eta = cellGeom->getPosition ().eta () ;
594  double phi = cellGeom->getPosition ().phi () ;
595  double theta = cellGeom->getPosition().theta();
596 
597  if(status >= maskedEcalChannelStatusThreshold_){
598  std::vector<double> valVec; std::vector<int> bitVec;
599  valVec.push_back(eta); valVec.push_back(phi); valVec.push_back(theta);
600  bitVec.push_back(2); bitVec.push_back(ix); bitVec.push_back(iy); bitVec.push_back(iz); bitVec.push_back(status);
601  EcalAllDeadChannelsValMap.insert( std::make_pair(detid, valVec) );
602  EcalAllDeadChannelsBitMap.insert( std::make_pair(detid, bitVec) );
603  }
604  } // end loop iz
605  } // end loop iy
606  } // end loop ix
607  }
608 
609  EcalAllDeadChannelsTTMap.clear();
610  std::map<DetId, std::vector<int> >::iterator bitItor;
611  for(bitItor = EcalAllDeadChannelsBitMap.begin(); bitItor != EcalAllDeadChannelsBitMap.end(); bitItor++){
612  const DetId id = bitItor->first;
613  EcalTrigTowerDetId ttDetId = ttMap_->towerOf(id);
614  EcalAllDeadChannelsTTMap.insert(std::make_pair(id, ttDetId) );
615  }
616 
617  return 1;
618 }
std::map< DetId, std::vector< int > > EcalAllDeadChannelsBitMap
static const int XYMODE
Definition: EEDetId.h:335
Geom::Theta< T > theta() const
EcalTrigTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
static bool validDetId(int i, int j)
check if a valid index combination
Definition: EBDetId.h:118
static const int ETAPHIMODE
Definition: EBDetId.h:158
edm::ESHandle< EcalTrigTowerConstituentsMap > ttMap_
Definition: DetId.h:18
std::map< DetId, std::vector< double > > EcalAllDeadChannelsValMap
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
std::vector< Item >::const_iterator const_iterator
std::map< DetId, EcalTrigTowerDetId > EcalAllDeadChannelsTTMap
void EcalDeadCellTriggerPrimitiveFilter::loadEcalDigis ( edm::Event iEvent,
edm::Handle< EcalTrigPrimDigiCollection > &  pTPDigis 
)
private

Definition at line 220 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References edm::Event::getByToken(), edm::InputTag::instance(), edm::HandleBase::isValid(), edm::InputTag::label(), tpDigiCollection_, and tpDigiCollectionToken_.

Referenced by filter().

220  {
221 
222  iEvent.getByToken(tpDigiCollectionToken_, pTPDigis);
223  if ( !pTPDigis.isValid() ) { edm::LogWarning("EcalDeadCellTriggerPrimitiveFilter") << "Can't get the product " << tpDigiCollection_.instance()
224  << " with label " << tpDigiCollection_.label(); return; }
225 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
bool isValid() const
Definition: HandleBase.h:74
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< EcalTrigPrimDigiCollection > tpDigiCollectionToken_
std::string const & instance() const
Definition: InputTag.h:37
void EcalDeadCellTriggerPrimitiveFilter::loadEcalRecHits ( edm::Event iEvent,
edm::Handle< EcalRecHitCollection > &  barrelReducedRecHitsHandle,
edm::Handle< EcalRecHitCollection > &  endcapReducedRecHitsHandle 
)
private

Definition at line 227 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References ebReducedRecHitCollectionToken_, eeReducedRecHitCollectionToken_, and edm::Event::getByToken().

Referenced by filter().

230 {
231 
232  iEvent.getByToken(ebReducedRecHitCollectionToken_,barrelReducedRecHitsHandle);
233  iEvent.getByToken(eeReducedRecHitCollectionToken_,endcapReducedRecHitsHandle);
234 
235 }
edm::EDGetTokenT< EcalRecHitCollection > ebReducedRecHitCollectionToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::EDGetTokenT< EcalRecHitCollection > eeReducedRecHitCollectionToken_
int EcalDeadCellTriggerPrimitiveFilter::setEvtRecHitstatus ( const double &  tpValCut,
const int &  chnStatus,
const int &  towerTest,
const EBRecHitCollection HitecalEB,
const EERecHitCollection HitecalEE 
)
private

Definition at line 306 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References funct::abs(), accuSCchnMap, accuSCetMap, accuTTchnMap, accuTTetMap, avoidDuplicateVec, edm::SortedCollection< T, SORT >::begin(), EcalTrigTowerConstituentsMap::constituentsOf(), debug_, EcalAllDeadChannelsBitMap, EcalAllDeadChannelsTTMap, EcalAllDeadChannelsValMap, edm::SortedCollection< T, SORT >::end(), spr::find(), EEDetId::ix(), EEDetId::iy(), EcalRecHit::kTPSaturated, SimDataFormats::CaloAnalysis::sc, SCzsideMap, edm::second(), funct::sin(), mps_update::status, theta(), ttMap_, TTzsideMap, usekTPSaturated_, useTTsum_, verbose_, EcalTrigTowerDetId::zside(), and EEDetId::zside().

Referenced by filter().

309  {
310 
311  if( debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"***begin setEvtTPstatusRecHits***";
312 
313  accuTTetMap.clear(); accuTTchnMap.clear(); TTzsideMap.clear();
314  accuSCetMap.clear(); accuSCchnMap.clear(); SCzsideMap.clear();
315  avoidDuplicateVec.clear();
316 
317 /*
318  const EBRecHitCollection HitecalEB = *(barrelRecHitsHandle.product());
319  const EERecHitCollection HitecalEE = *(endcapRecHitsHandle.product());
320 */
321  int isPassCut =0;
322 
324 
325  for (ebrechit = HitecalEB.begin(); ebrechit != HitecalEB.end(); ebrechit++) {
326 
327  EBDetId det = ebrechit->id();
328 
329  std::map<DetId, vector<double> >::iterator valItor = EcalAllDeadChannelsValMap.find(det);
330  if( valItor == EcalAllDeadChannelsValMap.end() ) continue;
331 
332  double theta = valItor->second.back();
333 
334  std::map<DetId, vector<int> >::iterator bitItor = EcalAllDeadChannelsBitMap.find(det);
335  if( bitItor == EcalAllDeadChannelsBitMap.end() ) continue;
336 
337  std::map<DetId, EcalTrigTowerDetId>::iterator ttItor = EcalAllDeadChannelsTTMap.find(det);
338  if( ttItor == EcalAllDeadChannelsTTMap.end() ) continue;
339 
340  int status = bitItor->second.back();
341 
342  bool toDo = false;
343  if( chnStatus >0 && status == chnStatus ) toDo = true;
344  if( chnStatus <0 && status >= abs(chnStatus) ) toDo = true;
345 // This might be suitable for channels with status other than 13,
346 // since this function is written as a general one ...
347  if( !ebrechit->isRecovered() ) toDo = false;
348 // if( !ebrechit->checkFlag(EcalRecHit::kTowerRecovered) ) toDo = false;
349 
350 
351 
352  if( toDo ){
353 
354  //If we considerkTPSaturated and a recHit has a flag set, we can immediately flag the event.
355  if(ebrechit->checkFlag(EcalRecHit::kTPSaturated) && usekTPSaturated_) return 1;
356 
357  EcalTrigTowerDetId ttDetId = ttItor->second;
358  int ttzside = ttDetId.zside();
359 
360  std::vector<DetId> vid = ttMap_->constituentsOf(ttDetId);
361  int towerTestCnt =0;
362  for(std::vector<DetId>::const_iterator dit = vid.begin(); dit != vid.end(); ++dit ) {
363  std::map<DetId, vector<int> >::iterator bit2Itor = EcalAllDeadChannelsBitMap.find( (*dit) );
364  if( bit2Itor == EcalAllDeadChannelsBitMap.end() ){ towerTestCnt ++; continue; }
365  if( towerTest >0 && bit2Itor->second.back() == towerTest ) continue;
366  if( towerTest <0 && bit2Itor->second.back() >= abs(towerTest) ) continue;
367  towerTestCnt ++;
368  }
369  if( towerTestCnt !=0 && debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"towerTestCnt : "<<towerTestCnt<<" for towerTest : "<<towerTest;
370 
371  std::vector<DetId>::iterator avoidItor; avoidItor = find( avoidDuplicateVec.begin(), avoidDuplicateVec.end(), det);
372  if( avoidItor == avoidDuplicateVec.end() ){
373  avoidDuplicateVec.push_back(det);
374  }else{
375  continue;
376  }
377 
378  std::map<EcalTrigTowerDetId, double>::iterator ttetItor = accuTTetMap.find(ttDetId);
379  if( ttetItor == accuTTetMap.end() ){
380  accuTTetMap[ttDetId] = ebrechit->energy()*sin(theta);
381  accuTTchnMap[ttDetId] = 1;
382  TTzsideMap[ttDetId] = ttzside;
383  }else{
384  accuTTetMap[ttDetId] += ebrechit->energy()*sin(theta);
385  accuTTchnMap[ttDetId] ++;
386  }
387  }
388  } // loop over EB
389 
391  for (eerechit = HitecalEE.begin(); eerechit != HitecalEE.end(); eerechit++) {
392 
393  EEDetId det = eerechit->id();
394 
395  std::map<DetId, vector<double> >::iterator valItor = EcalAllDeadChannelsValMap.find(det);
396  if( valItor == EcalAllDeadChannelsValMap.end() ) continue;
397 
398  double theta = valItor->second.back();
399 
400  std::map<DetId, vector<int> >::iterator bitItor = EcalAllDeadChannelsBitMap.find(det);
401  if( bitItor == EcalAllDeadChannelsBitMap.end() ) continue;
402 
403  std::map<DetId, EcalTrigTowerDetId>::iterator ttItor = EcalAllDeadChannelsTTMap.find(det);
404  if( ttItor == EcalAllDeadChannelsTTMap.end() ) continue;
405 
406  int status = bitItor->second.back();
407 
408  bool toDo = false;
409  if( chnStatus >0 && status == chnStatus ) toDo = true;
410  if( chnStatus <0 && status >= abs(chnStatus) ) toDo = true;
411 // This might be suitable for channels with status other than 13,
412 // since this function is written as a general one ...
413  if( !eerechit->isRecovered() ) toDo = false;
414 // if( !eerechit->checkFlag(EcalRecHit::kTowerRecovered) ) toDo = false;
415 
416  if( toDo ){
417 
418  //If we considerkTPSaturated and a recHit has a flag set, we can immediately flag the event.
419  if(eerechit->checkFlag(EcalRecHit::kTPSaturated) && usekTPSaturated_) return 1;
420 
421 // vvvv= Only for debuging or testing purpose =vvvv
422  EcalTrigTowerDetId ttDetId = ttItor->second;
423 // int ttzside = ttDetId.zside();
424 
425  std::vector<DetId> vid = ttMap_->constituentsOf(ttDetId);
426  int towerTestCnt =0;
427  for(std::vector<DetId>::const_iterator dit = vid.begin(); dit != vid.end(); ++dit ) {
428  std::map<DetId, vector<int> >::iterator bit2Itor = EcalAllDeadChannelsBitMap.find( (*dit) );
429  if( bit2Itor == EcalAllDeadChannelsBitMap.end() ){ towerTestCnt ++; continue; }
430  if( towerTest >0 && bit2Itor->second.back() == towerTest ) continue;
431  if( towerTest <0 && bit2Itor->second.back() >= abs(towerTest) ) continue;
432  towerTestCnt ++;
433  }
434  if( towerTestCnt !=0 && debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"towerTestCnt : "<<towerTestCnt<<" for towerTest : "<<towerTest;
435 // ^^^^= END =^^^^
436 
437  EcalScDetId sc( (det.ix()-1)/5+1, (det.iy()-1)/5+1, det.zside() );
438 
439  std::vector<DetId>::iterator avoidItor; avoidItor = find( avoidDuplicateVec.begin(), avoidDuplicateVec.end(), det);
440  if( avoidItor == avoidDuplicateVec.end() ){
441  avoidDuplicateVec.push_back(det);
442  }else{
443  continue;
444  }
445 
446  std::map<EcalScDetId, double>::iterator scetItor = accuSCetMap.find(sc);
447  if( scetItor == accuSCetMap.end() ){
448  accuSCetMap[sc] = eerechit->energy()*sin(theta);
449  accuSCchnMap[sc] = 1;
450  SCzsideMap[sc] = sc.zside();
451  }else{
452  accuSCetMap[sc] += eerechit->energy()*sin(theta);
453  accuSCchnMap[sc] ++;
454  }
455  }
456  } // loop over EE
457 
458  //If we are not using the TT sum, then at this point we need not do anything further, we'll pass the event
459  if(!useTTsum_) return 0;
460 
461 // Checking for EB
462  std::map<EcalTrigTowerDetId, double>::iterator ttetItor;
463  for( ttetItor = accuTTetMap.begin(); ttetItor != accuTTetMap.end(); ttetItor++){
464 
465  EcalTrigTowerDetId ttDetId = ttetItor->first;
466 
467  double ttetVal = ttetItor->second;
468 
469  std::map<EcalTrigTowerDetId, int>::iterator ttchnItor = accuTTchnMap.find(ttDetId);
470  if( ttchnItor == accuTTchnMap.end() ){ edm::LogError("EcalDeadCellTriggerPrimitiveFilter")<<"\nERROR cannot find ttDetId : "<<ttDetId<<" in accuTTchnMap?!"; }
471 
472  std::map<EcalTrigTowerDetId, int>::iterator ttzsideItor = TTzsideMap.find(ttDetId);
473  if( ttzsideItor == TTzsideMap.end() ){ edm::LogError("EcalDeadCellTriggerPrimitiveFilter")<<"\nERROR cannot find ttDetId : "<<ttDetId<<" in TTzsideMap?!"; }
474 
475  if( ttchnItor->second != 25 && debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"WARNING ... ttchnCnt : "<<ttchnItor->second<<" NOT equal 25!";
476 
477  if( ttetVal >= tpValCut ){ isPassCut = 1; isPassCut *= ttzsideItor->second; }
478 
479  }
480 
481 // Checking for EE
482  std::map<EcalScDetId, double>::iterator scetItor;
483  for( scetItor = accuSCetMap.begin(); scetItor != accuSCetMap.end(); scetItor++){
484 
485  EcalScDetId scDetId = scetItor->first;
486 
487  double scetVal = scetItor->second;
488 
489  std::map<EcalScDetId, int>::iterator scchnItor = accuSCchnMap.find(scDetId);
490  if( scchnItor == accuSCchnMap.end() ){ edm::LogError("EcalDeadCellTriggerPrimitiveFilter")<<"\nERROR cannot find scDetId : "<<scDetId<<" in accuSCchnMap?!"; }
491 
492  std::map<EcalScDetId, int>::iterator sczsideItor = SCzsideMap.find(scDetId);
493  if( sczsideItor == SCzsideMap.end() ){ edm::LogError("EcalDeadCellTriggerPrimitiveFilter")<<"\nERROR cannot find scDetId : "<<scDetId<<" in SCzsideMap?!"; }
494 
495  if( scchnItor->second != 25 && debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"WARNING ... scchnCnt : "<<scchnItor->second<<" NOT equal 25!";
496 
497  if( scetVal >= tpValCut ){ isPassCut = 1; isPassCut *= sczsideItor->second; }
498 
499  }
500 
501  if( debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"***end setEvtTPstatusRecHits***";
502 
503  return isPassCut;
504 
505 }
std::map< DetId, std::vector< int > > EcalAllDeadChannelsBitMap
int ix() const
Definition: EEDetId.h:77
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::vector< EcalRecHit >::const_iterator const_iterator
Geom::Theta< T > theta() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
std::map< EcalTrigTowerDetId, int > accuTTchnMap
int zside() const
get the z-side of the tower (1/-1)
U second(std::pair< T, U > const &p)
int zside() const
Definition: EEDetId.h:71
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int iy() const
Definition: EEDetId.h:83
std::vector< DetId > constituentsOf(const EcalTrigTowerDetId &id) const
Get the constituent detids for this tower id.
edm::ESHandle< EcalTrigTowerConstituentsMap > ttMap_
const_iterator end() const
std::map< EcalTrigTowerDetId, double > accuTTetMap
std::map< DetId, std::vector< double > > EcalAllDeadChannelsValMap
std::map< EcalTrigTowerDetId, int > TTzsideMap
std::map< DetId, EcalTrigTowerDetId > EcalAllDeadChannelsTTMap
const_iterator begin() const
int EcalDeadCellTriggerPrimitiveFilter::setEvtTPstatus ( const EcalTrigPrimDigiCollection ,
const double &  tpCntCut,
const int &  chnStatus,
EcalTPGScale  
)
private

Definition at line 508 of file EcalDeadCellTriggerPrimitiveFilter.cc.

References funct::abs(), debug_, doEEfilter_, EcalAllDeadChannelsBitMap, EcalAllDeadChannelsTTMap, edm::SortedCollection< T, SORT >::end(), edm::SortedCollection< T, SORT >::find(), EcalTPGScale::getTPGInGeV(), mps_update::status, verbose_, and EcalTrigTowerDetId::zside().

Referenced by filter().

508  {
509 
510  if( debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"***begin setEvtTPstatus***";
511 
512  int isPassCut =0;
513 
514  std::map<DetId, std::vector<int> >::iterator bitItor;
515  for(bitItor = EcalAllDeadChannelsBitMap.begin(); bitItor != EcalAllDeadChannelsBitMap.end(); bitItor++){
516 
517  DetId maskedDetId = bitItor->first;
518  int subdet = bitItor->second.front(), status = bitItor->second.back();
519 
520 // if NOT filtering on EE, skip EE subdet
521  if( !doEEfilter_ && subdet != 1 ) continue;
522 
523  std::map<DetId, EcalTrigTowerDetId>::iterator ttItor = EcalAllDeadChannelsTTMap.find(maskedDetId);
524  if( ttItor == EcalAllDeadChannelsTTMap.end() ) continue;
525 
526  bool toDo = false;
527  if( chnStatus >0 && status == chnStatus ) toDo = true;
528  if( chnStatus <0 && status >= abs(chnStatus) ) toDo = true;
529 
530  if( toDo ){
531 
532  EcalTrigTowerDetId ttDetId = ttItor->second;
533  int ttzside = ttDetId.zside();
534 
535  EcalTrigPrimDigiCollection::const_iterator tp = tpDigis.find( ttDetId );
536  if( tp != tpDigis.end() ){
537  double tpEt = ecalScale.getTPGInGeV( tp->compressedEt(), tp->id() );
538  if(tpEt >= tpValCut ){ isPassCut = 1; isPassCut *= ttzside; }
539  }
540  }
541  } // loop over EB + EE
542 
543  if( debug_ && verbose_ >=2) edm::LogInfo("EcalDeadCellTriggerPrimitiveFilter")<<"***end setEvtTPstatus***";
544 
545  return isPassCut;
546 }
std::map< DetId, std::vector< int > > EcalAllDeadChannelsBitMap
std::vector< T >::const_iterator const_iterator
int zside() const
get the z-side of the tower (1/-1)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: DetId.h:18
std::map< DetId, EcalTrigTowerDetId > EcalAllDeadChannelsTTMap

Member Data Documentation

std::map<EcalScDetId, int> EcalDeadCellTriggerPrimitiveFilter::accuSCchnMap
private

Definition at line 151 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

std::map<EcalScDetId, double> EcalDeadCellTriggerPrimitiveFilter::accuSCetMap
private

Definition at line 150 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

std::map<EcalTrigTowerDetId, int> EcalDeadCellTriggerPrimitiveFilter::accuTTchnMap
private

Definition at line 146 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

std::map<EcalTrigTowerDetId, double> EcalDeadCellTriggerPrimitiveFilter::accuTTetMap
private

Definition at line 145 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

std::vector<DetId> EcalDeadCellTriggerPrimitiveFilter::avoidDuplicateVec
private

Definition at line 155 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

const bool EcalDeadCellTriggerPrimitiveFilter::debug_
private
const bool EcalDeadCellTriggerPrimitiveFilter::doEEfilter_
private

Definition at line 90 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by getChannelStatusMaps(), and setEvtTPstatus().

const edm::InputTag EcalDeadCellTriggerPrimitiveFilter::ebReducedRecHitCollection_
private
edm::EDGetTokenT<EcalRecHitCollection> EcalDeadCellTriggerPrimitiveFilter::ebReducedRecHitCollectionToken_
private
std::map<DetId, std::vector<int> > EcalDeadCellTriggerPrimitiveFilter::EcalAllDeadChannelsBitMap
private
std::map<DetId, EcalTrigTowerDetId> EcalDeadCellTriggerPrimitiveFilter::EcalAllDeadChannelsTTMap
private
std::map<DetId, std::vector<double> > EcalDeadCellTriggerPrimitiveFilter::EcalAllDeadChannelsValMap
private
edm::ESHandle<EcalChannelStatus> EcalDeadCellTriggerPrimitiveFilter::ecalStatus
private

Definition at line 93 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by envSet(), and getChannelStatusMaps().

const edm::InputTag EcalDeadCellTriggerPrimitiveFilter::eeReducedRecHitCollection_
private
edm::EDGetTokenT<EcalRecHitCollection> EcalDeadCellTriggerPrimitiveFilter::eeReducedRecHitCollectionToken_
private
const double EcalDeadCellTriggerPrimitiveFilter::etValToBeFlagged_
private

Definition at line 124 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by filter().

edm::ESHandle<CaloGeometry> EcalDeadCellTriggerPrimitiveFilter::geometry
private
int EcalDeadCellTriggerPrimitiveFilter::hasReducedRecHits_ = 0
private
const int EcalDeadCellTriggerPrimitiveFilter::maskedEcalChannelStatusThreshold_
private

Definition at line 109 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by getChannelStatusMaps().

edm::EDPutTokenT<bool> EcalDeadCellTriggerPrimitiveFilter::putToken_
private

Definition at line 142 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by filter().

std::map<EcalScDetId, int> EcalDeadCellTriggerPrimitiveFilter::SCzsideMap
private

Definition at line 152 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

const bool EcalDeadCellTriggerPrimitiveFilter::taggingMode_
private

Definition at line 85 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by filter().

const edm::InputTag EcalDeadCellTriggerPrimitiveFilter::tpDigiCollection_
private
edm::EDGetTokenT<EcalTrigPrimDigiCollection> EcalDeadCellTriggerPrimitiveFilter::tpDigiCollectionToken_
private

Definition at line 127 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by loadEcalDigis().

edm::ESHandle<EcalTrigTowerConstituentsMap> EcalDeadCellTriggerPrimitiveFilter::ttMap_
private
std::map<EcalTrigTowerDetId, int> EcalDeadCellTriggerPrimitiveFilter::TTzsideMap
private

Definition at line 147 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

bool EcalDeadCellTriggerPrimitiveFilter::useHITmethod_ = false
private
const bool EcalDeadCellTriggerPrimitiveFilter::usekTPSaturated_
private

Definition at line 135 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

bool EcalDeadCellTriggerPrimitiveFilter::useTPmethod_ = false
private
const bool EcalDeadCellTriggerPrimitiveFilter::useTTsum_
private

Definition at line 134 of file EcalDeadCellTriggerPrimitiveFilter.cc.

Referenced by setEvtRecHitstatus().

const int EcalDeadCellTriggerPrimitiveFilter::verbose_
private