CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
JetIDFailureFilter.cc
Go to the documentation of this file.
1 
2 #include <memory>
9 
10 
12 
13  public:
14 
15  explicit JetIDFailureFilter(const edm::ParameterSet & iConfig);
17 
18  private:
19 
20  virtual bool filter(edm::Event & iEvent, const edm::EventSetup & iSetup) override;
21 
24  const bool debug_;
25  const bool taggingMode_;
26 };
27 
28 
29 
31  : theJetToken_ (consumes<edm::View<pat::Jet> >(iConfig.getParameter<edm::InputTag>("JetSource") ))
32  , minJetPt_ (iConfig.getParameter<double>("MinJetPt") )
33  , maxJetEta_ (iConfig.getParameter<double>("MaxJetEta") )
34  , maxNeutHadF_ (iConfig.getParameter<double>("MaxNeutralHadFrac") )
35  , maxNeutEmF_ (iConfig.getParameter<double>("MaxNeutralEMFrac") )
36  , debug_ (iConfig.getParameter<bool>("debug") )
37  , taggingMode_ (iConfig.getParameter<bool>("taggingMode") )
38 {
39  produces<bool>();
40 }
41 
42 
44 }
45 
46 
48 
49  // read in the objects
51  iEvent.getByToken(theJetToken_, jets);
52 
53  bool goodJetID=true;
54 
55  int jetIdx =-1;
56 
57  for (edm::View<pat::Jet>::const_iterator j = jets->begin(); j != jets->end(); ++j) {
58 
59  if (j->isCaloJet()) {
60  std::cout << "No JetId is applied to CaloJets for time being !!! " << std::endl;
61  } else if (j->isPFJet()) {
62  if (j->pt() > minJetPt_ && fabs(j->eta()) < maxJetEta_) {
63 
64  jetIdx++;
65 
66  // neutral hadron fraction already calculated on uncorrected jet energy
67  double nhf = j->neutralHadronEnergyFraction();
68 
69  // charged hadron fraction, uncorrected jet energy
70  double nem = j->photonEnergyFraction()/j->jecFactor(0);
71 
72  if( debug_ ){
73  printf("DEBUG ... idx : %3d pt : %8.3f eta : % 6.3f phi : % 6.3f nhf : %5.3f nem : %5.3f\n", jetIdx, j->pt(), j->eta(), j->phi(), nhf, nem);
74  }
75 
76  if(nhf > maxNeutHadF_ || nem > maxNeutEmF_ ) {
77  goodJetID = false;
78  }
79  }
80 
81  }
82  }
83 
84  iEvent.put( std::auto_ptr<bool>(new bool(goodJetID)) );
85 
86  return taggingMode_ || goodJetID;
87 }
88 
89 
91 
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
edm::EDGetTokenT< edm::View< pat::Jet > > theJetToken_
JetIDFailureFilter(const edm::ParameterSet &iConfig)
int iEvent
Definition: GenABIO.cc:230
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:120
vector< PseudoJet > jets
int j
Definition: DBlmapReader.cc:9
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:85
virtual bool filter(edm::Event &iEvent, const edm::EventSetup &iSetup) override
tuple cout
Definition: gather_cfg.py:121