CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HBHENoiseFilter Class Reference

#include <HBHENoiseFilter.h>

Inheritance diagram for HBHENoiseFilter:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 HBHENoiseFilter (const edm::ParameterSet &)
 
 ~HBHENoiseFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual bool filter (edm::Event &, const edm::EventSetup &)
 

Private Attributes

bool IgnoreTS4TS5ifJetInLowBVRegion_
 
edm::InputTag jetlabel_
 
double maxHighEHitTime_
 
int maxjetindex_
 
double maxNHF_
 
double maxRatio_
 
double maxRBXEMF_
 
double minHighEHitTime_
 
int minHPDHits_
 
int minHPDNoOtherHits_
 
double minIsolatedNoiseSumE_
 
double minIsolatedNoiseSumEt_
 
int minNumIsolatedNoiseChannels_
 
double minRatio_
 
int minRBXHits_
 
int minZeros_
 
edm::InputTag noiselabel_
 
bool useTS4TS5_
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: Filter that identifies events containing an RBX with bad pulse-shape, timing, hit multiplicity, and ADC 0 counts Designed to reduce noise rate by factor of 100

Implementation: Use the HcalNoiseSummary to make cuts on an event-by-event basis

Definition at line 21 of file HBHENoiseFilter.h.

Constructor & Destructor Documentation

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

Definition at line 38 of file HBHENoiseFilter.cc.

References edm::ParameterSet::getParameter(), IgnoreTS4TS5ifJetInLowBVRegion_, jetlabel_, maxHighEHitTime_, maxjetindex_, maxNHF_, maxRatio_, maxRBXEMF_, minHighEHitTime_, minHPDHits_, minHPDNoOtherHits_, minIsolatedNoiseSumE_, minIsolatedNoiseSumEt_, minNumIsolatedNoiseChannels_, minRatio_, minRBXHits_, minZeros_, noiselabel_, and useTS4TS5_.

39 {
40  //now do what ever initialization is needed
41  noiselabel_ = iConfig.getParameter<edm::InputTag>("noiselabel");
42  minRatio_ = iConfig.getParameter<double>("minRatio");
43  maxRatio_ = iConfig.getParameter<double>("maxRatio");
44  minHPDHits_ = iConfig.getParameter<int>("minHPDHits");
45  minRBXHits_ = iConfig.getParameter<int>("minRBXHits");
46  minHPDNoOtherHits_ = iConfig.getParameter<int>("minHPDNoOtherHits");
47  minZeros_ = iConfig.getParameter<int>("minZeros");
48  minHighEHitTime_ = iConfig.getParameter<double>("minHighEHitTime");
49  maxHighEHitTime_ = iConfig.getParameter<double>("maxHighEHitTime");
50  maxRBXEMF_ = iConfig.getParameter<double>("maxRBXEMF");
51  minNumIsolatedNoiseChannels_ = iConfig.getParameter<int>("minNumIsolatedNoiseChannels");
52  minIsolatedNoiseSumE_ = iConfig.getParameter<double>("minIsolatedNoiseSumE");
53  minIsolatedNoiseSumEt_ = iConfig.getParameter<double>("minIsolatedNoiseSumEt");
54  useTS4TS5_ = iConfig.getParameter<bool>("useTS4TS5");
55 
56  IgnoreTS4TS5ifJetInLowBVRegion_ = iConfig.getParameter<bool>("IgnoreTS4TS5ifJetInLowBVRegion");
57  jetlabel_ = iConfig.getParameter<edm::InputTag>("jetlabel");
58  maxjetindex_ = iConfig.getParameter<int>("maxjetindex");
59  maxNHF_ = iConfig.getParameter<double>("maxNHF");
60 
61 }
T getParameter(std::string const &) const
edm::InputTag jetlabel_
double minIsolatedNoiseSumE_
bool IgnoreTS4TS5ifJetInLowBVRegion_
edm::InputTag noiselabel_
double minIsolatedNoiseSumEt_
int minNumIsolatedNoiseChannels_
HBHENoiseFilter::~HBHENoiseFilter ( )

Definition at line 64 of file HBHENoiseFilter.cc.

65 {
66 
67 }

Member Function Documentation

bool HBHENoiseFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDFilter.

Definition at line 76 of file HBHENoiseFilter.cc.

References edm::hlt::Exception, edm::Event::getByLabel(), IgnoreTS4TS5ifJetInLowBVRegion_, edm::HandleBase::isValid(), metsig::jet, jetlabel_, maxHighEHitTime_, maxjetindex_, maxNHF_, maxRatio_, maxRBXEMF_, minHighEHitTime_, minHPDHits_, minHPDNoOtherHits_, minIsolatedNoiseSumE_, minIsolatedNoiseSumEt_, minNumIsolatedNoiseChannels_, minRatio_, minRBXHits_, minZeros_, noiselabel_, edm::errors::ProductNotFound, edmLumisInFiles::summary, and useTS4TS5_.

Referenced by Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filter(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setDataAccessor(), and Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView().

77 {
78  using namespace edm;
79 
80  // get the Noise summary object
82  iEvent.getByLabel(noiselabel_, summary_h);
83  if(!summary_h.isValid()) {
84  throw edm::Exception(edm::errors::ProductNotFound) << " could not find HcalNoiseSummary.\n";
85  return true;
86  }
87  const HcalNoiseSummary summary = *summary_h;
88 
89  // if(summary.HasBadRBXTS4TS5() == true) std::cout << "TS4TS5 rejection!" << std::endl;
90  // else std::cout << "TS4TS5 passing!" << std::endl;
91 
92 
93  // One HBHE region has HPD with low BV, which increases hits in HPD, and
94  // often causes otherwise good events to be flagged as noise.
95 
96  bool goodJetFoundInLowBVRegion=false; // checks whether a jet is in a low BV region, where false noise flagging rate is higher.
98  {
100  iEvent.getByLabel(jetlabel_, pfjet_h);
101  if (pfjet_h.isValid())
102  {
103  // Loop over all jets up to (and including) maxjetindex.
104  // If jet found in low-BV region, set goodJetFoundInLowBVRegion = true
105  int jetindex=0;
106  for( reco::PFJetCollection::const_iterator jet = pfjet_h->begin(); jet != pfjet_h->end(); ++jet)
107  {
108  if (jetindex>maxjetindex_) break; // only look at first N jets (N specified by user)
109  // Check whether jet is in low-BV region (0<eta<1.4, -1.8<phi<-1.4)
110  if (jet->eta()>0 && jet->eta()<1.4 &&
111  jet->phi()>-1.8 && jet->phi()<-1.4)
112  {
113  if (maxNHF_<0 || (maxNHF_>0 && jet->neutralHadronEnergyFraction()<maxNHF_))
114  {
115  //std::cout <<"JET eta = "<<jet->eta()<<" phi = "<<jet->phi()<<" Energy = "<<jet->energy()<<" neutral had fraction = "<<jet->neutralHadronEnergy()/jet->energy() <<std::endl;
116  goodJetFoundInLowBVRegion=true;
117  break;
118  }
119  }
120  ++jetindex;
121  }
122  } //if (pfjet_h.isValid())
123  else // no valid jet collection found
124  {
125  // If no jet collection found, do we want to throw a fatal exception? Or just proceed normally, not treating the lowBV region as special?
126  //throw edm::Exception(edm::errors::ProductNotFound) << " could not find PFJetCollection with label "<<jetlabel_<<".\n";
127  }
128  } // if (IgnoreTS4TS5ifJetInLowBVRegion_==true)
129 
130  if(summary.minE2Over10TS()<minRatio_) return false;
131  if(summary.maxE2Over10TS()>maxRatio_) return false;
132  if(summary.maxHPDHits()>=minHPDHits_) return false;
133  if(summary.maxRBXHits()>=minRBXHits_) return false;
134  if(summary.maxHPDNoOtherHits()>=minHPDNoOtherHits_) return false;
135  if(summary.maxZeros()>=minZeros_) return false;
136  if(summary.min25GeVHitTime()<minHighEHitTime_) return false;
137  if(summary.max25GeVHitTime()>maxHighEHitTime_) return false;
138  if(summary.minRBXEMF()<maxRBXEMF_) return false;
139  if(summary.numIsolatedNoiseChannels()>=minNumIsolatedNoiseChannels_) return false;
140  if(summary.isolatedNoiseSumE()>=minIsolatedNoiseSumE_) return false;
141  if(summary.isolatedNoiseSumEt()>=minIsolatedNoiseSumEt_) return false;
142  // Only use TS4TS5 test if jet is not in low BV region
143  if(useTS4TS5_ == true && summary.HasBadRBXTS4TS5() == true && goodJetFoundInLowBVRegion==false) return false;
144 
145  return true;
146 }
edm::InputTag jetlabel_
double minIsolatedNoiseSumE_
bool IgnoreTS4TS5ifJetInLowBVRegion_
edm::InputTag noiselabel_
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
double minIsolatedNoiseSumEt_
int minNumIsolatedNoiseChannels_

Member Data Documentation

bool HBHENoiseFilter::IgnoreTS4TS5ifJetInLowBVRegion_
private

Definition at line 42 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

edm::InputTag HBHENoiseFilter::jetlabel_
private

Definition at line 43 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::maxHighEHitTime_
private

Definition at line 36 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::maxjetindex_
private

Definition at line 44 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::maxNHF_
private

Definition at line 45 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::maxRatio_
private

Definition at line 33 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::maxRBXEMF_
private

Definition at line 37 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::minHighEHitTime_
private

Definition at line 36 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::minHPDHits_
private

Definition at line 34 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::minHPDNoOtherHits_
private

Definition at line 34 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::minIsolatedNoiseSumE_
private

Definition at line 39 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::minIsolatedNoiseSumEt_
private

Definition at line 39 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::minNumIsolatedNoiseChannels_
private

Definition at line 38 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

double HBHENoiseFilter::minRatio_
private

Definition at line 33 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::minRBXHits_
private

Definition at line 34 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

int HBHENoiseFilter::minZeros_
private

Definition at line 35 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

edm::InputTag HBHENoiseFilter::noiselabel_
private

Definition at line 32 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().

bool HBHENoiseFilter::useTS4TS5_
private

Definition at line 40 of file HBHENoiseFilter.h.

Referenced by filter(), and HBHENoiseFilter().