CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFMETDQMAnalyzer.cc
Go to the documentation of this file.
2 
4 
9 
13 
17 //
18 // -- Constructor
19 //
21 
22 {
23  pSet_ = parameterSet;
24  inputLabel_ = pSet_.getParameter<edm::InputTag>("InputCollection");
25  matchLabel_ = pSet_.getParameter<edm::InputTag>("MatchCollection");
26  benchmarkLabel_ = pSet_.getParameter<std::string>("BenchmarkLabel");
27 
28  pfMETMonitor_.setParameters(parameterSet);
29 
30 }
31 //
32 // -- BeginJob
33 //
35 
37  // part of the following could be put in the base class
38  std::string path = "ParticleFlow/" + benchmarkLabel_;
39  Benchmark::DQM_->setCurrentFolder(path.c_str());
40  edm::LogInfo("PFJMETDQMAnalyzer") << " PFMETDQMAnalyzer::beginJob " <<"Histogram Folder path set to "<< path;
42  nBadEvents_ = 0;
43 }
44 //
45 // -- Analyze
46 //
48  edm::EventSetup const& iSetup) {
49  edm::Handle< edm::View<reco::MET> > metCollection;
50  iEvent.getByLabel(inputLabel_, metCollection);
51 
52  edm::Handle< edm::View<reco::MET> > matchedMetCollection;
53  iEvent.getByLabel( matchLabel_, matchedMetCollection);
54 
55  if (metCollection.isValid() && matchedMetCollection.isValid()) {
56  float maxRes = 0.0;
57  float minRes = 99.99;
58  pfMETMonitor_.fillOne( (*metCollection)[0], (*matchedMetCollection)[0], minRes, maxRes);
59  edm::ParameterSet skimPS = pSet_.getParameter<edm::ParameterSet>("SkimParameter");
60  if ( (skimPS.getParameter<bool>("switchOn")) &&
61  (nBadEvents_ <= skimPS.getParameter<int32_t>("maximumNumberToBeStored")) ) {
62  if ( minRes < skimPS.getParameter<double>("lowerCutOffOnResolution")) {
63  storeBadEvents(iEvent,minRes);
64  nBadEvents_++;
65  } else if (maxRes > skimPS.getParameter<double>("upperCutOffOnResolution")) {
66  nBadEvents_++;
67  storeBadEvents(iEvent,maxRes);
68  }
69  }
70  }
71 }
73  unsigned int runNb = iEvent.id().run();
74  unsigned int evtNb = iEvent.id().event();
75  unsigned int lumiNb = iEvent.id().luminosityBlock();
76 
77  std::string path = "ParticleFlow/" + benchmarkLabel_ + "/BadEvents";
78  Benchmark::DQM_->setCurrentFolder(path.c_str());
79  std::ostringstream eventid_str;
80  eventid_str << runNb << "_"<< evtNb << "_" << lumiNb;
81  MonitorElement* me = Benchmark::DQM_->get(path + "/" + eventid_str.str());
82  if (me) me->Reset();
83  else me = Benchmark::DQM_->bookFloat(eventid_str.str());
84  me->Fill(val);
85 }
86 
87 //
88 // -- EndJob
89 //
91 }
RunNumber_t run() const
Definition: EventID.h:42
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:44
void analyze(edm::Event const &, edm::EventSetup const &)
void setParameters(Benchmark::Mode mode, float ptmin, float ptmax, float etamin, float etamax, float phimin, float phimax, bool metSpHistos)
set the parameters locally
Definition: PFMETMonitor.cc:58
edm::InputTag inputLabel_
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
edm::InputTag matchLabel_
PFMETMonitor pfMETMonitor_
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:43
static DQMStore * DQM_
Definition: Benchmark.h:39
MonitorElement * bookFloat(const char *name)
Book float.
Definition: DQMStore.cc:451
void Fill(long long x)
int path() const
Definition: HLTadd.h:3
int iEvent
Definition: GenABIO.cc:243
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
void fillOne(const reco::MET &met, const reco::MET &matchedMet, float &minVal, float &maxVal)
std::string benchmarkLabel_
void storeBadEvents(edm::Event const &, float &val)
edm::EventID id() const
Definition: EventBase.h:56
edm::ParameterSet pSet_
PFMETDQMAnalyzer(const edm::ParameterSet &parameterSet)
void setup()
book histograms
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232