CMS 3D CMS Logo

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

#include <QcdHighPtDQM.h>

Inheritance diagram for QcdHighPtDQM:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 QcdHighPtDQM (const edm::ParameterSet &)
 
virtual ~QcdHighPtDQM ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- 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
 
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
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

float moverl (const reco::CaloMETCollection &metcollection, float &ljpt)
 
float movers (const reco::CaloMETCollection &metcollection)
 

Private Attributes

edm::EDGetTokenT< reco::CaloJetCollectionjetToken_
 
std::map< std::string, MonitorElement * > MEcontainer_
 
edm::EDGetTokenT< reco::CaloMETCollectionmetToken1_
 
edm::EDGetTokenT< reco::CaloMETCollectionmetToken2_
 
edm::EDGetTokenT< reco::CaloMETCollectionmetToken3_
 
edm::EDGetTokenT< reco::CaloMETCollectionmetToken4_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
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::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
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 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

DQM Physics Module for High Pt QCD group

Based on DQM/SiPixel and DQM/Physics code Version 1.0, 7/7/09 By Keith Rose

Definition at line 23 of file QcdHighPtDQM.h.

Constructor & Destructor Documentation

QcdHighPtDQM::QcdHighPtDQM ( const edm::ParameterSet iConfig)

Definition at line 32 of file QcdHighPtDQM.cc.

33  : jetToken_(consumes<CaloJetCollection>(
34  iConfig.getUntrackedParameter<edm::InputTag>("jetTag"))),
35  metToken1_(consumes<CaloMETCollection>(
36  iConfig.getUntrackedParameter<edm::InputTag>("metTag1"))),
37  metToken2_(consumes<CaloMETCollection>(
38  iConfig.getUntrackedParameter<edm::InputTag>("metTag2"))),
39  metToken3_(consumes<CaloMETCollection>(
40  iConfig.getUntrackedParameter<edm::InputTag>("metTag3"))),
41  metToken4_(consumes<CaloMETCollection>(
42  iConfig.getUntrackedParameter<edm::InputTag>("metTag4"))) {
43 }
edm::EDGetTokenT< reco::CaloMETCollection > metToken1_
Definition: QcdHighPtDQM.h:34
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::CaloMETCollection > metToken2_
Definition: QcdHighPtDQM.h:35
edm::EDGetTokenT< reco::CaloMETCollection > metToken4_
Definition: QcdHighPtDQM.h:37
edm::EDGetTokenT< reco::CaloMETCollection > metToken3_
Definition: QcdHighPtDQM.h:36
edm::EDGetTokenT< reco::CaloJetCollection > jetToken_
Definition: QcdHighPtDQM.h:33
QcdHighPtDQM::~QcdHighPtDQM ( )
virtual

Definition at line 45 of file QcdHighPtDQM.cc.

45 {}

Member Function Documentation

void QcdHighPtDQM::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 153 of file QcdHighPtDQM.cc.

References reco::LeafCandidate::energy(), edm::Event::getByToken(), fwrapper::jets, jetToken_, M_PI, MEcontainer_, RazorAnalyzer::met, metToken1_, metToken2_, metToken3_, metToken4_, movers(), reco::LeafCandidate::p4(), and reco::LeafCandidate::pt().

153  {
154  // Get Jets
156  iEvent.getByToken(jetToken_, jetHandle);
157  const CaloJetCollection &jets = *jetHandle;
158  CaloJetCollection::const_iterator jet_iter;
159 
160  // Get MET collections
162  iEvent.getByToken(metToken1_, metHandle);
163  const CaloMETCollection &met = *metHandle;
164 
165  edm::Handle<CaloMETCollection> metHOHandle;
166  iEvent.getByToken(metToken2_, metHOHandle);
167  const CaloMETCollection &metHO = *metHOHandle;
168 
169  edm::Handle<CaloMETCollection> metNoHFHandle;
170  iEvent.getByToken(metToken3_, metNoHFHandle);
171  const CaloMETCollection &metNoHF = *metNoHFHandle;
172 
173  edm::Handle<CaloMETCollection> metNoHFHOHandle;
174  iEvent.getByToken(metToken4_, metNoHFHOHandle);
175  const CaloMETCollection &metNoHFHO = *metNoHFHOHandle;
176 
177  // initialize leading jet value and jet multiplicity counter
178  int njets = 0;
179  int njets30 = 0;
180  float leading_jetpt = 0;
181  float leading_jeteta = 0;
182 
183  // initialize variables for picking out leading 2 barrel jets
184  reco::CaloJet leadingbarreljet;
185  reco::CaloJet secondbarreljet;
186  int nbarreljets = 0;
187 
188  // get bins in eta.
189  // Bins correspond to calotower regions.
190 
191  const float etabins[83] = {
192  -5.191, -4.889, -4.716, -4.538, -4.363, -4.191, -4.013, -3.839, -3.664,
193  -3.489, -3.314, -3.139, -2.964, -2.853, -2.650, -2.500, -2.322, -2.172,
194  -2.043, -1.930, -1.830, -1.740, -1.653, -1.566, -1.479, -1.392, -1.305,
195  -1.218, -1.131, -1.044, -.957, -.879, -.783, -.696, -.609, -.522,
196  -.435, -.348, -.261, -.174, -.087, 0, .087, .174, .261,
197  .348, .435, .522, .609, .696, .783, .879, .957, 1.044,
198  1.131, 1.218, 1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830,
199  1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853, 2.964, 3.139,
200  3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.889,
201  5.191};
202 
203  for (jet_iter = jets.begin(); jet_iter != jets.end(); ++jet_iter) {
204  njets++;
205 
206  // get Jet stats
207  float jet_pt = jet_iter->pt();
208  float jet_eta = jet_iter->eta();
209  float jet_phi = jet_iter->phi();
210 
211  // fill jet Pt and jet EMF
212  MEcontainer_["inclusive_jet_pt"]->Fill(jet_pt);
213  MEcontainer_["inclusive_jet_EMF"]->Fill(jet_iter->emEnergyFraction());
214 
215  // pick out up to the first 2 leading barrel jets
216  // for use in calculating dijet mass in barrel region
217  // also fill jet Pt histogram for barrel
218 
219  if (jet_eta <= 1.3) {
220  MEcontainer_["inclusive_jet_pt_barrel"]->Fill(jet_pt);
221  if (nbarreljets == 0) {
222  leadingbarreljet = jets[(njets - 1)];
223  nbarreljets++;
224  } else if (nbarreljets == 1) {
225  secondbarreljet = jets[(njets - 1)];
226  nbarreljets++;
227  }
228 
229  }
230 
231  // fill jet Pt for endcap and forward regions
232  else if (jet_eta <= 3.0 && jet_eta > 1.3) {
233  MEcontainer_["inclusive_jet_pt_endcap"]->Fill(jet_pt);
234  } else if (jet_eta <= 5.0 && jet_eta > 3.0) {
235  MEcontainer_["inclusive_jet_pt_forward"]->Fill(jet_pt);
236  }
237 
238  // count jet multiplicity for jets with Pt > 30
239  if ((jet_pt) > 30) njets30++;
240 
241  // check leading jet quantities
242  if (jet_pt > leading_jetpt) {
243  leading_jetpt = jet_pt;
244  leading_jeteta = jet_eta;
245  }
246 
247  // fill eta-phi plot
248  for (int eit = 0; eit < 81; eit++) {
249  for (int pit = 0; pit < 72; pit++) {
250  float low_eta = etabins[eit];
251  float high_eta = etabins[eit + 1];
252  float low_phi = (-M_PI) + pit * (M_PI / 36);
253  float high_phi = low_phi + (M_PI / 36);
254  if (jet_eta > low_eta && jet_eta < high_eta && jet_phi > low_phi &&
255  jet_phi < high_phi) {
256  MEcontainer_["etaphi"]->Fill((eit - 41), jet_phi);
257  }
258  }
259  }
260  }
261 
262  // after iterating over all jets, fill leading jet quantity histograms
263  // and jet multiplicity histograms
264 
265  MEcontainer_["leading_jet_pt"]->Fill(leading_jetpt);
266 
267  if (leading_jeteta <= 1.3) {
268  MEcontainer_["leading_jet_pt_barrel"]->Fill(leading_jetpt);
269  } else if (leading_jeteta <= 3.0 && leading_jeteta > 1.3) {
270  MEcontainer_["leading_jet_pt_endcap"]->Fill(leading_jetpt);
271  } else if (leading_jeteta <= 5.0 && leading_jeteta > 3.0) {
272  MEcontainer_["leading_jet_pt_forward"]->Fill(leading_jetpt);
273  }
274 
275  MEcontainer_["njets"]->Fill(njets);
276 
277  MEcontainer_["njets30"]->Fill(njets30);
278 
279  // fill MET over Sum ET and Leading jet PT for all MET flavors
280  MEcontainer_["movers_met"]->Fill(movers(met));
281  MEcontainer_["moverl_met"]->Fill(movers(met), leading_jetpt);
282  MEcontainer_["movers_metho"]->Fill(movers(metHO));
283  MEcontainer_["moverl_metho"]->Fill(movers(metHO), leading_jetpt);
284  MEcontainer_["movers_metnohf"]->Fill(movers(metNoHF));
285  MEcontainer_["moverl_metnohf"]->Fill(movers(metNoHF), leading_jetpt);
286  MEcontainer_["movers_metnohfho"]->Fill(movers(metNoHFHO));
287  MEcontainer_["moverl_metnohfho"]->Fill(movers(metNoHFHO), leading_jetpt);
288 
289  // fetch first 3 jet EMF
290 
291  if (jets.size() >= 1) {
292  MEcontainer_["leading_jet_EMF"]->Fill(jets[0].emEnergyFraction());
293  if (jets.size() >= 2) {
294  MEcontainer_["second_jet_EMF"]->Fill(jets[1].emEnergyFraction());
295  if (jets.size() >= 3) {
296  MEcontainer_["third_jet_EMF"]->Fill(jets[2].emEnergyFraction());
297  }
298  }
299  }
300 
301  // if 2 nontrivial barrel jets, reconstruct dijet mass
302 
303  if (nbarreljets == 2) {
304  if (leadingbarreljet.energy() > 0 && secondbarreljet.energy() > 0) {
306  leadingbarreljet.p4() + secondbarreljet.p4();
307  float dijet_mass = DiJet.mass();
308  MEcontainer_["dijet_mass"]->Fill(dijet_mass);
309  }
310  }
311 }
edm::EDGetTokenT< reco::CaloMETCollection > metToken1_
Definition: QcdHighPtDQM.h:34
virtual double pt() const final
transverse momentum
Jets made from CaloTowers.
Definition: CaloJet.h:29
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
edm::EDGetTokenT< reco::CaloMETCollection > metToken2_
Definition: QcdHighPtDQM.h:35
std::map< std::string, MonitorElement * > MEcontainer_
Definition: QcdHighPtDQM.h:40
Collection of Calo MET.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
vector< PseudoJet > jets
virtual double energy() const final
energy
edm::EDGetTokenT< reco::CaloMETCollection > metToken4_
Definition: QcdHighPtDQM.h:37
edm::EDGetTokenT< reco::CaloMETCollection > metToken3_
Definition: QcdHighPtDQM.h:36
float movers(const reco::CaloMETCollection &metcollection)
#define M_PI
met
===> hadronic RAZOR
virtual const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
edm::EDGetTokenT< reco::CaloJetCollection > jetToken_
Definition: QcdHighPtDQM.h:33
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
void QcdHighPtDQM::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 47 of file QcdHighPtDQM.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), M_PI, MEcontainer_, and DQMStore::IBooker::setCurrentFolder().

49  {
50  iBooker.setCurrentFolder("Physics/QcdHighPt");
51 
52  MEcontainer_["dijet_mass"] = iBooker.book1D(
53  "dijet_mass", "dijet resonance invariant mass, barrel region", 100, 0,
54  1000);
55  MEcontainer_["njets"] =
56  iBooker.book1D("njets", "jet multiplicity", 10, 0, 10);
57  MEcontainer_["etaphi"] = iBooker.book2D("etaphi", "eta/phi distribution", 83,
58  -42, 42, 72, -M_PI, M_PI);
59  MEcontainer_["njets30"] =
60  iBooker.book1D("njets30", "jet multiplicity, pt > 30 GeV", 10, 0, 10);
61 
62  // book histograms for inclusive jet quantities
63  MEcontainer_["inclusive_jet_pt"] = iBooker.book1D(
64  "inclusive_jet_pt", "inclusive jet Pt spectrum", 100, 0, 1000);
65  MEcontainer_["inclusive_jet_pt_barrel"] = iBooker.book1D(
66  "inclusive_jet_pt_barrel", "inclusive jet Pt, eta < 1.3", 100, 0, 1000);
67  MEcontainer_["inclusive_jet_pt_forward"] =
68  iBooker.book1D("inclusive_jet_pt_forward",
69  "inclusive jet Pt, 3.0 < eta < 5.0", 100, 0, 1000);
70  MEcontainer_["inclusive_jet_pt_endcap"] =
71  iBooker.book1D("inclusive_jet_pt_endcap",
72  "inclusive jet Pt, 1.3 < eta < 3.0", 100, 0, 1000);
73 
74  // book histograms for leading jet quantities
75  MEcontainer_["leading_jet_pt"] =
76  iBooker.book1D("leading_jet_pt", "leading jet Pt", 100, 0, 1000);
77  MEcontainer_["leading_jet_pt_barrel"] = iBooker.book1D(
78  "leading_jet_pt_barrel", "leading jet Pt, eta < 1.3", 100, 0, 1000);
79  MEcontainer_["leading_jet_pt_forward"] =
80  iBooker.book1D("leading_jet_pt_forward",
81  "leading jet Pt, 3.0 < eta < 5.0", 100, 0, 1000);
82  MEcontainer_["leading_jet_pt_endcap"] = iBooker.book1D(
83  "leading_jet_pt_endcap", "leading jet Pt, 1.3 < eta < 3.0", 100, 0, 1000);
84 
85  // book histograms for met over sum et and met over leading jet pt for various
86  // flavors of MET
87  MEcontainer_["movers_met"] = iBooker.book1D(
88  "movers_met", "MET over Sum ET for basic MET collection", 50, 0, 1);
89  MEcontainer_["moverl_met"] = iBooker.book1D(
90  "moverl_met", "MET over leading jet Pt for basic MET collection", 50, 0,
91  2);
92 
93  MEcontainer_["movers_metho"] = iBooker.book1D(
94  "movers_metho", "MET over Sum ET for MET HO collection", 50, 0, 1);
95  MEcontainer_["moverl_metho"] =
96  iBooker.book1D("moverl_metho",
97  "MET over leading jet Pt for MET HO collection", 50, 0, 2);
98 
99  MEcontainer_["movers_metnohf"] = iBooker.book1D(
100  "movers_metnohf", "MET over Sum ET for MET no HF collection", 50, 0, 1);
101  MEcontainer_["moverl_metnohf"] = iBooker.book1D(
102  "moverl_metnohf", "MET over leading jet Pt for MET no HF collection", 50,
103  0, 2);
104 
105  MEcontainer_["movers_metnohfho"] =
106  iBooker.book1D("movers_metnohfho",
107  "MET over Sum ET for MET no HF HO collection", 50, 0, 1);
108  MEcontainer_["moverl_metnohfho"] = iBooker.book1D(
109  "moverl_metnohfho", "MET over leading jet Pt for MET no HF HO collection",
110  50, 0, 2);
111 
112  // book histograms for EMF fraction for all jets and first 3 jets
113  MEcontainer_["inclusive_jet_EMF"] =
114  iBooker.book1D("inclusive_jet_EMF", "inclusive jet EMF", 50, -1, 1);
115  MEcontainer_["leading_jet_EMF"] =
116  iBooker.book1D("leading_jet_EMF", "leading jet EMF", 50, -1, 1);
117  MEcontainer_["second_jet_EMF"] =
118  iBooker.book1D("second_jet_EMF", "second jet EMF", 50, -1, 1);
119  MEcontainer_["third_jet_EMF"] =
120  iBooker.book1D("third_jet_EMF", "third jet EMF", 50, -1, 1);
121 }
std::map< std::string, MonitorElement * > MEcontainer_
Definition: QcdHighPtDQM.h:40
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
#define M_PI
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
float QcdHighPtDQM::moverl ( const reco::CaloMETCollection metcollection,
float &  ljpt 
)
private

Definition at line 139 of file QcdHighPtDQM.cc.

References RazorAnalyzer::met, and mathSSE::sqrt().

140  {
141  float metoverl = 0;
142  CaloMETCollection::const_iterator met_iter;
143  for (met_iter = metcollection.begin(); met_iter != metcollection.end();
144  ++met_iter) {
145  float mex = met_iter->momentum().x();
146  float mey = met_iter->momentum().y();
147  float met = sqrt(mex * mex + mey * mey);
148  metoverl = (met / ljpt);
149  }
150  return metoverl;
151 }
T sqrt(T t)
Definition: SSEVec.h:18
met
===> hadronic RAZOR
float QcdHighPtDQM::movers ( const reco::CaloMETCollection metcollection)
private

Definition at line 124 of file QcdHighPtDQM.cc.

References RazorAnalyzer::met, and mathSSE::sqrt().

Referenced by analyze().

124  {
125  float metovers = 0;
126  CaloMETCollection::const_iterator met_iter;
127  for (met_iter = metcollection.begin(); met_iter != metcollection.end();
128  ++met_iter) {
129  float mex = met_iter->momentum().x();
130  float mey = met_iter->momentum().y();
131  float met = sqrt(mex * mex + mey * mey);
132  float sumet = met_iter->sumEt();
133  metovers = (met / sumet);
134  }
135  return metovers;
136 }
T sqrt(T t)
Definition: SSEVec.h:18
met
===> hadronic RAZOR

Member Data Documentation

edm::EDGetTokenT<reco::CaloJetCollection> QcdHighPtDQM::jetToken_
private

Definition at line 33 of file QcdHighPtDQM.h.

Referenced by analyze().

std::map<std::string, MonitorElement*> QcdHighPtDQM::MEcontainer_
private

Definition at line 40 of file QcdHighPtDQM.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<reco::CaloMETCollection> QcdHighPtDQM::metToken1_
private

Definition at line 34 of file QcdHighPtDQM.h.

Referenced by analyze().

edm::EDGetTokenT<reco::CaloMETCollection> QcdHighPtDQM::metToken2_
private

Definition at line 35 of file QcdHighPtDQM.h.

Referenced by analyze().

edm::EDGetTokenT<reco::CaloMETCollection> QcdHighPtDQM::metToken3_
private

Definition at line 36 of file QcdHighPtDQM.h.

Referenced by analyze().

edm::EDGetTokenT<reco::CaloMETCollection> QcdHighPtDQM::metToken4_
private

Definition at line 37 of file QcdHighPtDQM.h.

Referenced by analyze().