CMS 3D CMS Logo

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

#include <TopHLTSingleLeptonDQM.h>

Public Types

enum  Level { STANDARD, VERBOSE, DEBUG }
 different verbosity levels More...
 

Public Member Functions

void book (std::string directory)
 book histograms in subdirectory directory More...
 
void fill (const edm::Event &event, const edm::EventSetup &setup)
 fill monitor histograms with electronId and jetCorrections More...
 
 MonitorEnsemble (const char *label, const edm::ParameterSet &cfg)
 default contructor More...
 
 ~MonitorEnsemble ()
 default destructor More...
 

Private Member Functions

bool booked (const std::string histName) const
 check if histogram was booked More...
 
void fill (const edm::Event &event, const edm::TriggerResults &triggerTable, std::string channel, const std::vector< std::string > labels) const
 fill trigger monitoring histograms More...
 
void fill (const std::string histName, double value) const
 fill histogram if it had been booked before More...
 
void fill (const std::string histName, double xValue, double yValue) const
 fill histogram if it had been booked before (2-dim version) More...
 
void fill (const std::string histName, double xValue, double yValue, double zValue) const
 fill histogram if it had been booked before (2-dim version) More...
 
std::string monitorPath (const std::string &label) const
 
std::string selectionPath (const std::string &label) const
 
void triggerBinLabels (std::string channel, const std::vector< std::string > labels)
 set configurable labels for trigger monitoring histograms More...
 

Private Attributes

edm::InputTag btagEff_
 btag discriminator labels More...
 
double btagEffWP_
 btag working points More...
 
edm::InputTag btagPur_
 
double btagPurWP_
 
edm::InputTag btagVtx_
 
double btagVtxWP_
 
int eidPattern_
 
StringCutObjectSelector
< reco::GsfElectron > * 
elecIso_
 extra isolation criterion on electron More...
 
edm::InputTag elecs_
 input sources for monitoring More...
 
StringCutObjectSelector
< reco::GsfElectron > * 
elecSelect_
 extra selection on electrons More...
 
edm::InputTag electronId_
 electronId label More...
 
std::map< std::string,
MonitorElement * > 
hists_
 histogram container More...
 
bool includeBTag_
 
std::string jetCorrector_
 jetCorrector More...
 
edm::InputTag jetIDLabel_
 jetID as an extra selection type More...
 
StringCutObjectSelector
< reco::JetID > * 
jetIDSelect_
 extra jetID selection on calo jets More...
 
edm::InputTag jets_
 
std::string jetSelect_
 
std::string label_
 instance label More...
 
int logged_
 number of logged interesting events More...
 
double lowerEdge_
 mass window upper and lower edge More...
 
std::vector< edm::InputTagmets_
 considers a vector of METs More...
 
StringCutObjectSelector
< reco::Muon > * 
muonIso_
 extra isolation criterion on muon More...
 
edm::InputTag muons_
 
StringCutObjectSelector
< reco::Muon > * 
muonSelect_
 extra selection on muons More...
 
edm::InputTag pvs_
 
StringCutObjectSelector
< reco::Vertex > * 
pvSelect_
 extra selection on primary vertices; meant to investigate the pile-up effect More...
 
DQMStorestore_
 storage manager More...
 
std::vector< std::string > triggerPaths_
 
edm::InputTag triggerTable_
 trigger table More...
 
double upperEdge_
 
Level verbosity_
 verbosity level for booking More...
 

Detailed Description

Definition at line 40 of file TopHLTSingleLeptonDQM.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

MonitorEnsemble::MonitorEnsemble ( const char *  label,
const edm::ParameterSet cfg 
)

default contructor

Definition at line 20 of file TopHLTSingleLeptonDQM.cc.

References book(), btagEff_, btagEffWP_, btagPur_, btagPurWP_, btagVtx_, btagVtxWP_, DEBUG, eidPattern_, elecIso_, elecs_, elecSelect_, electronId_, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), includeBTag_, jetCorrector_, jetIDLabel_, jetIDSelect_, jets_, jetSelect_, lowerEdge_, mets_, muonIso_, muons_, muonSelect_, pvs_, pvSelect_, STANDARD, triggerPaths_, triggerTable_, upperEdge_, VERBOSE, and verbosity_.

20  :
22  {
23  // sources have to be given; this PSet is not optional
24  edm::ParameterSet sources=cfg.getParameter<edm::ParameterSet>("sources");
25  muons_= sources.getParameter<edm::InputTag>("muons");
26  elecs_= sources.getParameter<edm::InputTag>("elecs");
27  jets_ = sources.getParameter<edm::InputTag>("jets" );
28  mets_ = sources.getParameter<std::vector<edm::InputTag> >("mets" );
29  pvs_ = sources.getParameter<edm::InputTag>("pvs" );
30  // electronExtras are optional; they may be omitted or
31  // empty
32  if( cfg.existsAs<edm::ParameterSet>("elecExtras") ){
33  edm::ParameterSet elecExtras=cfg.getParameter<edm::ParameterSet>("elecExtras");
34  // select is optional; in case it's not found no
35  // selection will be applied
36  if( elecExtras.existsAs<std::string>("select") ){
37  elecSelect_= new StringCutObjectSelector<reco::GsfElectron>(elecExtras.getParameter<std::string>("select"));
38  }
39  // isolation is optional; in case it's not found no
40  // isolation will be applied
41  if( elecExtras.existsAs<std::string>("isolation") ){
42  elecIso_= new StringCutObjectSelector<reco::GsfElectron>(elecExtras.getParameter<std::string>("isolation"));
43  }
44  // electronId is optional; in case it's not found the
45  // InputTag will remain empty
46  if( elecExtras.existsAs<edm::ParameterSet>("electronId") ){
47  edm::ParameterSet elecId=elecExtras.getParameter<edm::ParameterSet>("electronId");
48  electronId_= elecId.getParameter<edm::InputTag>("src");
49  eidPattern_= elecId.getParameter<int>("pattern");
50  }
51  }
52  // pvExtras are opetional; they may be omitted or empty
53  if(cfg.existsAs<edm::ParameterSet>("pvExtras")){
54  edm::ParameterSet pvExtras=cfg.getParameter<edm::ParameterSet>("pvExtras");
55  // select is optional; in case it's not found no
56  // selection will be applied
57  if( pvExtras.existsAs<std::string>("select") ){
58  pvSelect_= new StringCutObjectSelector<reco::Vertex>(pvExtras.getParameter<std::string>("select"));
59  }
60  }
61  // muonExtras are optional; they may be omitted or empty
62  if( cfg.existsAs<edm::ParameterSet>("muonExtras") ){
63  edm::ParameterSet muonExtras=cfg.getParameter<edm::ParameterSet>("muonExtras");
64  // select is optional; in case it's not found no
65  // selection will be applied
66  if( muonExtras.existsAs<std::string>("select") ){
67  muonSelect_= new StringCutObjectSelector<reco::Muon>(muonExtras.getParameter<std::string>("select"));
68  }
69  // isolation is optional; in case it's not found no
70  // isolation will be applied
71  if( muonExtras.existsAs<std::string>("isolation") ){
72  muonIso_= new StringCutObjectSelector<reco::Muon>(muonExtras.getParameter<std::string>("isolation"));
73  }
74  }
75 
76  // jetExtras are optional; they may be omitted or
77  // empty
78  if( cfg.existsAs<edm::ParameterSet>("jetExtras") ){
79  edm::ParameterSet jetExtras=cfg.getParameter<edm::ParameterSet>("jetExtras");
80  // jetCorrector is optional; in case it's not found
81  // the InputTag will remain empty
82  if( jetExtras.existsAs<std::string>("jetCorrector") ){
83  jetCorrector_= jetExtras.getParameter<std::string>("jetCorrector");
84  }
85  // read jetID information if it exists
86  if(jetExtras.existsAs<edm::ParameterSet>("jetID")){
87  edm::ParameterSet jetID=jetExtras.getParameter<edm::ParameterSet>("jetID");
88  jetIDLabel_ =jetID.getParameter<edm::InputTag>("label");
89  jetIDSelect_= new StringCutObjectSelector<reco::JetID>(jetID.getParameter<std::string>("select"));
90  }
91  // select is optional; in case it's not found no
92  // selection will be applied (only implemented for
93  // CaloJets at the moment)
94  if( jetExtras.existsAs<std::string>("select") ){
95  jetSelect_= jetExtras.getParameter<std::string>("select");
96  }
97  // jetBDiscriminators are optional; in case they are
98  // not found the InputTag will remain empty; they
99  // consist of pairs of edm::JetFlavorAssociation's &
100  // corresponding working points
101  includeBTag_=jetExtras.existsAs<edm::ParameterSet>("jetBTaggers");
102  if( includeBTag_ ){
103  edm::ParameterSet btagEff=jetExtras.getParameter<edm::ParameterSet>("jetBTaggers").getParameter<edm::ParameterSet>("trackCountingEff");
104  btagEff_= btagEff.getParameter<edm::InputTag>("label"); btagEffWP_= btagEff.getParameter<double>("workingPoint");
105  edm::ParameterSet btagPur=jetExtras.getParameter<edm::ParameterSet>("jetBTaggers").getParameter<edm::ParameterSet>("trackCountingPur");
106  btagPur_= btagPur.getParameter<edm::InputTag>("label"); btagPurWP_= btagPur.getParameter<double>("workingPoint");
107  edm::ParameterSet btagVtx=jetExtras.getParameter<edm::ParameterSet>("jetBTaggers").getParameter<edm::ParameterSet>("secondaryVertex" );
108  btagVtx_= btagVtx.getParameter<edm::InputTag>("label"); btagVtxWP_= btagVtx.getParameter<double>("workingPoint");
109  }
110  }
111 
112  // triggerExtras are optional; they may be omitted or empty
113  if( cfg.existsAs<edm::ParameterSet>("triggerExtras") ){
114  edm::ParameterSet triggerExtras=cfg.getParameter<edm::ParameterSet>("triggerExtras");
115  triggerTable_=triggerExtras.getParameter<edm::InputTag>("src");
116  triggerPaths_=triggerExtras.getParameter<std::vector<std::string> >("paths");
117  }
118 
119  // massExtras is optional; in case it's not found no mass
120  // window cuts are applied for the same flavor monitor
121  // histograms
122  if( cfg.existsAs<edm::ParameterSet>("massExtras") ){
123  edm::ParameterSet massExtras=cfg.getParameter<edm::ParameterSet>("massExtras");
124  lowerEdge_= massExtras.getParameter<double>("lowerEdge");
125  upperEdge_= massExtras.getParameter<double>("upperEdge");
126  }
127 
128  // setup the verbosity level for booking histograms;
129  // per default the verbosity level will be set to
130  // STANDARD. This will also be the chosen level in
131  // the case when the monitoring PSet is not found
133  if( cfg.existsAs<edm::ParameterSet>("monitoring") ){
134  edm::ParameterSet monitoring=cfg.getParameter<edm::ParameterSet>("monitoring");
135  if(monitoring.getParameter<std::string>("verbosity") == "DEBUG" )
136  verbosity_= DEBUG;
137  if(monitoring.getParameter<std::string>("verbosity") == "VERBOSE" )
139  if(monitoring.getParameter<std::string>("verbosity") == "STANDARD")
141  }
142  // and don't forget to do the histogram booking
143  book(cfg.getParameter<std::string>("directory"));
144  }
T getParameter(std::string const &) const
edm::InputTag electronId_
electronId label
void book(std::string directory)
book histograms in subdirectory directory
Level verbosity_
verbosity level for booking
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:187
StringCutObjectSelector< reco::JetID > * jetIDSelect_
extra jetID selection on calo jets
edm::InputTag elecs_
input sources for monitoring
std::vector< edm::InputTag > mets_
considers a vector of METs
int logged_
number of logged interesting events
StringCutObjectSelector< reco::GsfElectron > * elecSelect_
extra selection on electrons
double lowerEdge_
mass window upper and lower edge
edm::InputTag btagEff_
btag discriminator labels
edm::InputTag triggerTable_
trigger table
StringCutObjectSelector< reco::GsfElectron > * elecIso_
extra isolation criterion on electron
StringCutObjectSelector< reco::Muon > * muonIso_
extra isolation criterion on muon
edm::InputTag jetIDLabel_
jetID as an extra selection type
std::vector< std::string > triggerPaths_
StringCutObjectSelector< reco::Vertex > * pvSelect_
extra selection on primary vertices; meant to investigate the pile-up effect
StringCutObjectSelector< reco::Muon > * muonSelect_
extra selection on muons
TopHLTSingleLepton::MonitorEnsemble::~MonitorEnsemble ( )
inline

default destructor

Definition at line 49 of file TopHLTSingleLeptonDQM.h.

49 {};

Member Function Documentation

void MonitorEnsemble::book ( std::string  directory)

book histograms in subdirectory directory

Definition at line 147 of file TopHLTSingleLeptonDQM.cc.

References DQMStore::book1D(), DQMStore::book2D(), cond::rpcobimon::current, hists_, label_, cppFunctionSkipper::operator, DQMStore::setCurrentFolder(), STANDARD, store_, triggerBinLabels(), triggerPaths_, VERBOSE, and verbosity_.

Referenced by MonitorEnsemble().

148  {
149  //set up the current directory path
150  std::string current(directory); current+=label_;
153 
154  // determine number of bins for trigger monitoring
155  unsigned int nPaths=triggerPaths_.size();
156 
157  // --- [STANDARD] --- //
158  // number of selected primary vertices
159  hists_["pvMult_" ] = store_->book1D("PvMult" , "N_{pvs}" , 100, 0., 100.);
160  // pt of the leading muon
161  hists_["muonPt_" ] = store_->book1D("MuonPt" , "pt(#mu)" , 50, 0., 250.);
162  // muon multiplicity before std isolation
163  hists_["muonMult_" ] = store_->book1D("MuonMult" , "N_{All}(#mu)" , 10, 0., 10.);
164  // muon multiplicity after std isolation
165  hists_["muonMultIso_"] = store_->book1D("MuonMultIso", "N_{Iso}(#mu)" , 10, 0., 10.);
166  // pt of the leading electron
167  hists_["elecPt_" ] = store_->book1D("ElecPt" , "pt(e)" , 50, 0., 250.);
168  // electron multiplicity before std isolation
169  hists_["elecMult_" ] = store_->book1D("ElecMult" , "N_{All}(e)" , 10, 0., 10.);
170  // electron multiplicity after std isolation
171  hists_["elecMultIso_"] = store_->book1D("ElecMultIso", "N_{Iso}(e)" , 10, 0., 10.);
172  // multiplicity of jets with pt>20 (corrected to L2+L3)
173  hists_["jetMult_" ] = store_->book1D("JetMult" , "N_{30}(jet)" , 10, 0., 10.);
174  // trigger efficiency estimates for single lepton triggers
175  hists_["triggerEff_" ] = store_->book1D("TriggerEff" , "Eff(trigger)" , nPaths, 0., nPaths);
176  // monitored trigger occupancy for single lepton triggers
177  hists_["triggerMon_" ] = store_->book1D("TriggerMon" , "Mon(trigger)" , nPaths, 0., nPaths);
178  // MET (calo)
179  hists_["metCalo_" ] = store_->book1D("METCalo" , "MET_{Calo}" , 50, 0., 200.);
180  // W mass estimate
181  hists_["massW_" ] = store_->book1D("MassW" , "M(W)" , 60, 0., 300.);
182  // Top mass estimate
183  hists_["massTop_" ] = store_->book1D("MassTop" , "M(Top)" , 50, 0., 500.);
184  // Mlb mu
185  hists_["mMub_" ] = store_->book1D("mMub" , "m_{#mub}" , 50, 0., 500.);
186  // W mass transverse estimate mu
187  hists_["MTWm_" ] = store_->book1D("MTWm" , "M_{T}^{W}(#mu)" , 60, 0., 300.);
188  // Top mass transverse estimate mu
189  hists_["mMTT_" ] = store_->book1D("mMTT" , "M_{T}^{t}(#mu)" , 50, 0., 500.);
190 
191  // Mlb e
192  hists_["mEb_" ] = store_->book1D("mEb" , "m_{eb}" , 50, 0., 500.);
193  // W mass transverse estimate e
194  hists_["MTWe_" ] = store_->book1D("MTWe" , "M_{T}^{W}(e)" , 60, 0., 300.);
195  // Top mass transverse estimate e
196  hists_["eMTT_" ] = store_->book1D("eMTT" , "M_{T}^{t}(e)" , 50, 0., 500.);
197 
198 
199 
200 
201  // set bin labels for trigger monitoring
202  triggerBinLabels(std::string("trigger"), triggerPaths_);
203 
204  if( verbosity_==STANDARD) return;
205 
206  // --- [VERBOSE] --- //
207  // eta of the leading muon
208  hists_["muonEta_" ] = store_->book1D("MuonEta" , "#eta(#mu)" , 30, -3., 3.);
209  // std isolation variable of the leading muon
210  hists_["muonRelIso_" ] = store_->book1D("MuonRelIso" , "Iso_{Rel}(#mu)" , 50, 0., 1.);
211  // eta of the leading electron
212  hists_["elecEta_" ] = store_->book1D("ElecEta" , "#eta(e)" , 30, -3., 3.);
213  // std isolation variable of the leading electron
214  hists_["elecRelIso_" ] = store_->book1D("ElecRelIso" , "Iso_{Rel}(e)" , 50, 0., 1.);
215  // multiplicity of btagged jets (for track counting high efficiency) with pt(L2L3)>30
216  hists_["jetMultBEff_"] = store_->book1D("JetMultBEff", "N_{30}(b/eff)" , 10, 0., 10.);
217  // btag discriminator for track counting high efficiency for jets with pt(L2L3)>30
218  hists_["jetBDiscEff_"] = store_->book1D("JetBDiscEff", "Disc_{b/eff}(jet)", 100, 0., 10.);
219  // pt of the 1. leading jet (corrected to L2+L3)
220  hists_["jet1Pt_" ] = store_->book1D("Jet1Pt" , "pt_{L2L3}(jet1)" , 60, 0., 300.);
221  // pt of the 2. leading jet (corrected to L2+L3)
222  hists_["jet2Pt_" ] = store_->book1D("Jet2Pt" , "pt_{L2L3}(jet2)" , 60, 0., 300.);
223  // pt of the 3. leading jet (corrected to L2+L3)
224  hists_["jet3Pt_" ] = store_->book1D("Jet3Pt" , "pt_{L2L3}(jet3)" , 60, 0., 300.);
225  // pt of the 4. leading jet (corrected to L2+L3)
226  hists_["jet4Pt_" ] = store_->book1D("Jet4Pt" , "pt_{L2L3}(jet4)" , 60, 0., 300.);
227  // eta of the 1.
228  hists_["jet1Eta_" ] = store_->book1D("Jet1Eta" , "#eta(jet1)" , 30, -3., 3.);
229  // eta of the 2.
230  hists_["jet2Eta_" ] = store_->book1D("Jet2Eta" , "#eta(jet2)" , 30, -3., 3.);
231  // eta of the 3.
232  hists_["jet3Eta_" ] = store_->book1D("Jet3Eta" , "#eta(jet3)" , 30, -3., 3.);
233  // eta of the 4.
234  hists_["jet4Eta_" ] = store_->book1D("Jet4Eta" , "#eta(jet4)" , 30, -3., 3.);
235  // MET (tc)
236  hists_["metTC_" ] = store_->book1D("METTC" , "MET_{TC}" , 50, 0., 200.);
237  // MET (pflow)
238  hists_["metPflow_" ] = store_->book1D("METPflow" , "MET_{Pflow}" , 50, 0., 200.);
239  // dz for muons (to suppress cosmis)
240  hists_["muonDelZ_" ] = store_->book1D("MuonDelZ" , "d_{z}(#mu)" , 50, -25., 25.);
241  // dxy for muons (to suppress cosmics)
242  hists_["muonDelXY_" ] = store_->book2D("MuonDelXY" , "d_{xy}(#mu)" , 50, -0.1, 0.1, 50, -0.1, 0.1);
243 
244  // set axes titles for dxy for muons
245  hists_["muonDelXY_" ]->setAxisTitle( "x [cm]", 1); hists_["muonDelXY_" ]->setAxisTitle( "y [cm]", 2);
246 
247  if( verbosity_==VERBOSE) return;
248 
249  // --- [DEBUG] --- //
250  // relative muon isolation in tracker for the leading muon
251  hists_["muonTrkIso_" ] = store_->book1D("MuonTrkIso" , "Iso_{Trk}(#mu)" , 50, 0., 1.);
252  // relative muon isolation in ecal+hcal for the leading muon
253  hists_["muonCalIso_" ] = store_->book1D("MuonCalIso" , "Iso_{Ecal}(#mu)" , 50, 0., 1.);
254  // relative electron isolation in tracker for the leading electron
255  hists_["elecTrkIso_" ] = store_->book1D("ElecTrkIso" , "Iso_{Trk}(e)" , 50, 0., 1.);
256  // relative electron isolation in ecal+hcal for the leading electron
257  hists_["elecCalIso_" ] = store_->book1D("ElecCalIso" , "Iso_{Ecal}(e)" , 50, 0., 1.);
258  // multiplicity of btagged jets (for track counting high purity) with pt(L2L3)>30
259  hists_["jetMultBPur_"] = store_->book1D("JetMultBPur", "N_{30}(b/pur)" , 10, 0., 10.);
260  // btag discriminator for track counting high purity
261  hists_["jetBDiscPur_"] = store_->book1D("JetBDiscPur", "Disc_{b/pur}(Jet)", 100, 0., 10.);
262  // multiplicity of btagged jets (for simple secondary vertex) with pt(L2L3)>30
263  hists_["jetMultBVtx_"] = store_->book1D("JetMultBVtx", "N_{30}(b/vtx)" , 10, 0., 10.);
264  // btag discriminator for simple secondary vertex
265  hists_["jetBDiscVtx_"] = store_->book1D("JetBDiscVtx", "Disc_{b/vtx}(Jet)", 35, -1., 6.);
266  // pt of the 1. leading jet (uncorrected)
267  hists_["jet1PtRaw_" ] = store_->book1D("Jet1PtRaw" , "pt_{Raw}(jet1)" , 60, 0., 300.);
268  // pt of the 2. leading jet (uncorrected)
269  hists_["jet2PtRaw_" ] = store_->book1D("Jet2PtRaw" , "pt_{Raw}(jet2)" , 60, 0., 300.);
270  // pt of the 3. leading jet (uncorrected)
271  hists_["jet3PtRaw_" ] = store_->book1D("Jet3PtRaw" , "pt_{Raw}(jet3)" , 60, 0., 300.);
272  // pt of the 4. leading jet (uncorrected)
273  hists_["jet4PtRaw_" ] = store_->book1D("Jet4PtRaw" , "pt_{Raw}(jet4)" , 60, 0., 300.);
274  // selected events
275  hists_["eventLogger_"] = store_->book2D("EventLogger", "Logged Events" , 9, 0., 9., 10, 0., 10.);
276 
277  // set axes titles for selected events
278  hists_["eventLogger_"]->getTH1()->SetOption("TEXT");
279  hists_["eventLogger_"]->setBinLabel( 1 , "Run" , 1);
280  hists_["eventLogger_"]->setBinLabel( 2 , "Block" , 1);
281  hists_["eventLogger_"]->setBinLabel( 3 , "Event" , 1);
282  hists_["eventLogger_"]->setBinLabel( 4 , "pt_{L2L3}(jet1)" , 1);
283  hists_["eventLogger_"]->setBinLabel( 5 , "pt_{L2L3}(jet2)" , 1);
284  hists_["eventLogger_"]->setBinLabel( 6 , "pt_{L2L3}(jet3)" , 1);
285  hists_["eventLogger_"]->setBinLabel( 7 , "pt_{L2L3}(jet4)" , 1);
286  hists_["eventLogger_"]->setBinLabel( 8 , "M_{W}" , 1);
287  hists_["eventLogger_"]->setBinLabel( 9 , "M_{Top}" , 1);
288  hists_["eventLogger_"]->setAxisTitle("logged evts" , 2);
289  return;
290  }
Level verbosity_
verbosity level for booking
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
std::map< std::string, MonitorElement * > hists_
histogram container
void triggerBinLabels(std::string channel, const std::vector< std::string > labels)
set configurable labels for trigger monitoring histograms
std::vector< std::string > triggerPaths_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:845
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
bool TopHLTSingleLepton::MonitorEnsemble::booked ( const std::string  histName) const
inlineprivate

check if histogram was booked

Definition at line 70 of file TopHLTSingleLeptonDQM.h.

References hists_.

Referenced by fill().

70 { return hists_.find(histName.c_str())!=hists_.end(); };
std::map< std::string, MonitorElement * > hists_
histogram container
void MonitorEnsemble::fill ( const edm::Event event,
const edm::EventSetup setup 
)

fill monitor histograms with electronId and jetCorrections

Definition at line 293 of file TopHLTSingleLeptonDQM.cc.

References btagEff_, btagEffWP_, btagPur_, btagPurWP_, btagVtx_, btagVtxWP_, JetCorrector::correction(), gather_cfg::cout, alignCSCRings::e, eidPattern_, elecIso_, elecs_, elecSelect_, electronId_, reco::LeafCandidate::eta(), edm::EventAuxiliary::event(), edm::Event::eventAuxiliary(), edm::EventSetup::find(), edm::Event::getByLabel(), JetCorrector::getJetCorrector(), hists_, includeBTag_, metsig::jet, jetCorrector_, jetIDLabel_, jetIDSelect_, fwrapper::jets, jets_, jetSelect_, edm::InputTag::label(), logged_, lowerEdge_, edm::EventAuxiliary::luminosityBlock(), CalculateHLT::masslb(), CalculateHLT::massTopQuark(), CalculateHLT::massWBoson(), TopHLTSingleLepton::MAXJETS, CaloMET_cfi::met, mets_, RPCpg::mu, VarParsing::mult, metsig::muon, muonIso_, patZpeak::muons, muons_, muonSelect_, reco::LeafCandidate::pt(), pvs_, pvSelect_, edm::EventAuxiliary::run(), reco::Jet::scaleEnergy(), EgammaValidation_Wenu_cff::sel, CalculateHLT::tmassTopQuark(), CalculateHLT::tmassWBoson(), triggerPaths_, triggerTable_, upperEdge_, and TopHLTSingleLepton::WMASS.

Referenced by fill().

294  {
295  // fetch trigger event if configured such
297  if(!triggerTable_.label().empty()) {
298  if( !event.getByLabel(triggerTable_, triggerTable) ) return;
299  }
300 
301  /*
302  ------------------------------------------------------------
303 
304  Primary Vertex Monitoring
305 
306  ------------------------------------------------------------
307  */
308  // fill monitoring plots for primary verices
310  if( !event.getByLabel(pvs_, pvs) ) return;
311  unsigned int pvMult = 0;
312  for(edm::View<reco::Vertex>::const_iterator pv=pvs->begin(); pv!=pvs->end(); ++pv){
313  if(!pvSelect_ || (*pvSelect_)(*pv))
314  pvMult++;
315  }
316  fill("pvMult_", pvMult );
317 
318  /*
319  ------------------------------------------------------------
320 
321  Electron Monitoring
322 
323  ------------------------------------------------------------
324  */
325 
326  // fill monitoring plots for electrons
328  if( !event.getByLabel(elecs_, elecs) ) return;
329 
330  // check availability of electron id
331  edm::Handle<edm::ValueMap<float> > electronId;
332  if(!electronId_.label().empty()) {
333  if( !event.getByLabel(electronId_, electronId) ) return;
334  }
335 
336  // loop electron collection
337  unsigned int eMult=0, eMultIso=0;
338  std::vector<const reco::GsfElectron*> isoElecs;
340  for(edm::View<reco::GsfElectron>::const_iterator elec=elecs->begin(); elec!=elecs->end(); ++elec){
341  unsigned int idx = elec-elecs->begin();
342  // restrict to electrons with good electronId
343  if( electronId_.label().empty() ? true : ((int)(*electronId)[elecs->refAt(idx)] & eidPattern_) ){
344  if(!elecSelect_ || (*elecSelect_)(*elec)){
345  double isolationTrk = elec->pt()/(elec->pt()+elec->dr03TkSumPt());
346  double isolationCal = elec->pt()/(elec->pt()+elec->dr03EcalRecHitSumEt()+elec->dr03HcalTowerSumEt());
347  double isolationRel = (elec->dr03TkSumPt()+elec->dr03EcalRecHitSumEt()+elec->dr03HcalTowerSumEt())/elec->pt();
348  if( eMult==0 ){
349  // restrict to the leading electron
350  fill("elecPt_" , elec->pt() );
351  fill("elecEta_", elec->eta());
352  fill("elecRelIso_" , isolationRel );
353  fill("elecTrkIso_" , isolationTrk );
354  fill("elecCalIso_" , isolationCal );
355  }
356  // in addition to the multiplicity counter buffer the iso
357  // electron candidates for later overlap check with jets
358  ++eMult; if(!elecIso_ || (*elecIso_)(*elec)){ if(eMultIso == 0) e = *elec; isoElecs.push_back(&(*elec)); ++eMultIso;}
359  }
360  }
361  }
362  fill("elecMult_", eMult );
363  fill("elecMultIso_", eMultIso);
364 
365  /*
366  ------------------------------------------------------------
367 
368  Muon Monitoring
369 
370  ------------------------------------------------------------
371  */
372 
373  // fill monitoring plots for muons
374  unsigned int mMult=0, mMultIso=0;
375 
377  if( !event.getByLabel(muons_, muons) ) return;
378  reco::Muon mu;
379  for(edm::View<reco::Muon>::const_iterator muon=muons->begin(); muon!=muons->end(); ++muon){
380  // restrict to globalMuons
381  if( muon->isGlobalMuon() ){
382  fill("muonDelZ_" , muon->globalTrack()->vz());
383  fill("muonDelXY_", muon->globalTrack()->vx(), muon->globalTrack()->vy());
384  // apply preselection
385  if(!muonSelect_ || (*muonSelect_)(*muon)){
386  double isolationTrk = muon->pt()/(muon->pt()+muon->isolationR03().sumPt);
387  double isolationCal = muon->pt()/(muon->pt()+muon->isolationR03().emEt+muon->isolationR03().hadEt);
388  double isolationRel = (muon->isolationR03().sumPt+muon->isolationR03().emEt+muon->isolationR03().hadEt)/muon->pt();
389  if( mMult==0 ){
390  // restrict to leading muon
391  fill("muonPt_" , muon->pt() );
392  fill("muonEta_" , muon->eta());
393  fill("muonRelIso_" , isolationRel );
394  fill("muonTrkIso_" , isolationTrk );
395  fill("muonCalIso_" , isolationCal );
396  }
397  ++mMult; if(!muonIso_ || (*muonIso_)(*muon)) {if(mMultIso == 0) mu = *muon; ++mMultIso;}
398  }
399  }
400  }
401  fill("muonMult_", mMult );
402  fill("muonMultIso_", mMultIso);
403 
404  /*
405  ------------------------------------------------------------
406 
407  Jet Monitoring
408 
409  ------------------------------------------------------------
410  */
411 
412  // check availability of the btaggers
413  edm::Handle<reco::JetTagCollection> btagEff, btagPur, btagVtx;
414  if( includeBTag_ ){
415  if( !event.getByLabel(btagEff_, btagEff) ) return;
416  if( !event.getByLabel(btagPur_, btagPur) ) return;
417  if( !event.getByLabel(btagVtx_, btagVtx) ) return;
418  }
419  // load jet corrector if configured such
420  const JetCorrector* corrector=0;
421  if(!jetCorrector_.empty()){
422  // check whether a jet correcto is in the event setup or not
423  if(setup.find( edm::eventsetup::EventSetupRecordKey::makeKey<JetCorrectionsRecord>() )){
424  corrector = JetCorrector::getJetCorrector(jetCorrector_, setup);
425  }
426  else{
427  edm::LogVerbatim( "TopHLTSingleLeptonDQM" )
428  << "\n"
429  << "------------------------------------------------------------------------------------- \n"
430  << " No JetCorrectionsRecord available from EventSetup: \n"
431  << " - Jets will not be corrected. \n"
432  << " - If you want to change this add the following lines to your cfg file: \n"
433  << " \n"
434  << " ## load jet corrections \n"
435  << " process.load(\"JetMETCorrections.Configuration.JetCorrectionServicesAllAlgos_cff\") \n"
436  << " process.prefer(\"ak5CaloL2L3\") \n"
437  << " \n"
438  << "------------------------------------------------------------------------------------- \n";
439  }
440  }
441 
442  // loop jet collection
443  std::vector<reco::Jet> correctedJets;
444  unsigned int mult=0, multBEff=0, multBPur=0, multBVtx=0;
445 
447  if( !event.getByLabel(jets_, jets) ) return;
448 
450  if(jetIDSelect_){
451  if( !event.getByLabel(jetIDLabel_, jetID) ) return;
452  }
453  reco::Jet bJetCand;
454  for(edm::View<reco::Jet>::const_iterator jet=jets->begin(); jet!=jets->end(); ++jet){
455  // check jetID for calo jets
456  unsigned int idx = jet-jets->begin();
457  if( jetIDSelect_ && dynamic_cast<const reco::CaloJet*>(jets->refAt(idx).get())){
458  if(!(*jetIDSelect_)((*jetID)[jets->refAt(idx)])) continue;
459  }
460  // chekc additional jet selection for calo, pf and bare reco jets
461  if(dynamic_cast<const reco::CaloJet*>(&*jet)){
462  reco::CaloJet sel = dynamic_cast<const reco::CaloJet&>(*jet); sel.scaleEnergy(corrector ? corrector->correction(*jet) : 1.);
463  StringCutObjectSelector<reco::CaloJet> jetSelect(jetSelect_); if(!jetSelect(sel)){ continue;}
464  }
465  else if(dynamic_cast<const reco::PFJet*>(&*jet)){
466  reco::PFJet sel= dynamic_cast<const reco::PFJet&>(*jet); sel.scaleEnergy(corrector ? corrector->correction(*jet) : 1.);
467  StringCutObjectSelector<reco::PFJet> jetSelect(jetSelect_); if(!jetSelect(sel)) continue;
468  }
469  else{
470  reco::Jet sel = *jet; sel.scaleEnergy(corrector ? corrector->correction(*jet) : 1.);
471  StringCutObjectSelector<reco::Jet> jetSelect(jetSelect_); if(!jetSelect(sel)) continue;
472  }
473  // check for overlaps -- comment this to be synchronous with the selection
474  //bool overlap=false;
475  //for(std::vector<const reco::GsfElectron*>::const_iterator elec=isoElecs.begin(); elec!=isoElecs.end(); ++elec){
476  // if(reco::deltaR((*elec)->eta(), (*elec)->phi(), jet->eta(), jet->phi())<0.4){overlap=true; break;}
477  //} if(overlap){continue;}
478 
479  // prepare jet to fill monitor histograms
480  reco::Jet monitorJet = *jet; monitorJet.scaleEnergy(corrector ? corrector->correction(*jet) : 1.);
481  correctedJets.push_back(monitorJet);
482  ++mult; // determine jet multiplicity
483  if( includeBTag_ ){
484  // fill b-discriminators
485  edm::RefToBase<reco::Jet> jetRef = jets->refAt(idx);
486  fill("jetBDiscEff_", (*btagEff)[jetRef]); if( (*btagEff)[jetRef]>btagEffWP_ ) ++multBEff;
487  fill("jetBDiscPur_", (*btagPur)[jetRef]); if( (*btagPur)[jetRef]>btagPurWP_ ) {if(multBPur == 0) bJetCand = *jet; ++multBPur;}
488  fill("jetBDiscVtx_", (*btagVtx)[jetRef]); if( (*btagVtx)[jetRef]>btagVtxWP_ ) ++multBVtx;
489  }
490  // fill pt (raw or L2L3) for the leading four jets
491  if(idx==0) {fill("jet1Pt_" , monitorJet.pt()); fill("jet1PtRaw_", jet->pt() ); fill("jet1Eta_" , monitorJet.eta());}
492  if(idx==1) {fill("jet2Pt_" , monitorJet.pt()); fill("jet2PtRaw_", jet->pt() ); fill("jet2Eta_" , monitorJet.eta());}
493  if(idx==2) {fill("jet3Pt_" , monitorJet.pt()); fill("jet3PtRaw_", jet->pt() ); fill("jet3Eta_" , monitorJet.eta());}
494  if(idx==3) {fill("jet4Pt_" , monitorJet.pt()); fill("jet4PtRaw_", jet->pt() ); fill("jet4Eta_" , monitorJet.eta());}
495  }
496  fill("jetMult_" , mult );
497  fill("jetMultBEff_", multBEff);
498  fill("jetMultBPur_", multBPur);
499  fill("jetMultBVtx_", multBVtx);
500 
501  /*
502  ------------------------------------------------------------
503 
504  MET Monitoring
505 
506  ------------------------------------------------------------
507  */
508 
509  // fill monitoring histograms for met
510  reco::MET mET;
511  for(std::vector<edm::InputTag>::const_iterator met_=mets_.begin(); met_!=mets_.end(); ++met_){
513  if( !event.getByLabel(*met_, met) ) continue;
514  if(met->begin()!=met->end()){
515  unsigned int idx=met_-mets_.begin();
516  if(idx==0) fill("metCalo_" , met->begin()->et());
517  if(idx==1) fill("metTC_" , met->begin()->et());
518  if(idx==2) fill("metPflow_", met->begin()->et());
519  mET = *(met->begin());
520  }
521  }
522 
523  /*
524  ------------------------------------------------------------
525 
526  Event Monitoring
527 
528  ------------------------------------------------------------
529  */
530 
531  // fill W boson and top mass estimates
532  CalculateHLT eventKinematics(MAXJETS, WMASS);
533  double wMass = eventKinematics.massWBoson (correctedJets);
534  double topMass = eventKinematics.massTopQuark(correctedJets);
535  if(wMass>=0 && topMass>=0) {fill("massW_" , wMass ); fill("massTop_" , topMass);}
536  // fill plots for trigger monitoring
537  if((lowerEdge_==-1. && upperEdge_==-1.) || (lowerEdge_<wMass && wMass<upperEdge_) ){
538  if(!triggerTable_.label().empty()) fill(event, *triggerTable, "trigger", triggerPaths_);
539  if(logged_<=hists_.find("eventLogger_")->second->getNbinsY()){
540  // log runnumber, lumi block, event number & some
541  // more pysics infomation for interesting events
542  fill("eventLogger_", 0.5, logged_+0.5, event.eventAuxiliary().run());
543  fill("eventLogger_", 1.5, logged_+0.5, event.eventAuxiliary().luminosityBlock());
544  fill("eventLogger_", 2.5, logged_+0.5, event.eventAuxiliary().event());
545  if(correctedJets.size()>0) fill("eventLogger_", 3.5, logged_+0.5, correctedJets[0].pt());
546  if(correctedJets.size()>1) fill("eventLogger_", 4.5, logged_+0.5, correctedJets[1].pt());
547  if(correctedJets.size()>2) fill("eventLogger_", 5.5, logged_+0.5, correctedJets[2].pt());
548  if(correctedJets.size()>3) fill("eventLogger_", 6.5, logged_+0.5, correctedJets[3].pt());
549  fill("eventLogger_", 7.5, logged_+0.5, wMass );
550  fill("eventLogger_", 8.5, logged_+0.5, topMass);
551  ++logged_;
552  }
553  }
554  if(multBPur != 0 && mMultIso == 1 ){
555  cout<<bJetCand.pt()<<"\t"<<mu.pt()<<"\t"<<mET.pt()<<endl;
556  double mtW = eventKinematics.tmassWBoson(&mu,mET,bJetCand); fill("MTWm_",mtW);
557  double Mlb = eventKinematics.masslb(&mu,mET,bJetCand); fill("mMub_", Mlb);
558  double MTT = eventKinematics.tmassTopQuark(&mu,mET,bJetCand); fill("mMTT_", MTT);
559  }
560 
561  if(multBPur != 0 && eMultIso == 1 ){
562  double mtW = eventKinematics.tmassWBoson(&mu,mET,bJetCand); fill("MTWe_",mtW);
563  double Mlb = eventKinematics.masslb(&mu,mET,bJetCand); fill("mEb_", Mlb);
564  double MTT = eventKinematics.tmassTopQuark(&mu,mET,bJetCand); fill("eMTT_", MTT);
565  }
566  }
edm::InputTag electronId_
electronId label
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
Jets made from CaloTowers.
Definition: CaloJet.h:30
StringCutObjectSelector< reco::JetID > * jetIDSelect_
extra jetID selection on calo jets
edm::InputTag elecs_
input sources for monitoring
std::vector< edm::InputTag > mets_
considers a vector of METs
int logged_
number of logged interesting events
virtual double correction(const LorentzVector &fJet) const =0
get correction using Jet information only
Base class for all types of Jets.
Definition: Jet.h:21
RunNumber_t run() const
virtual void scaleEnergy(double fScale)
scale energy of the jet
Definition: Jet.cc:445
StringCutObjectSelector< reco::GsfElectron > * elecSelect_
extra selection on electrons
double lowerEdge_
mass window upper and lower edge
Jets made from PFObjects.
Definition: PFJet.h:22
virtual double eta() const
momentum pseudorapidity
edm::InputTag btagEff_
btag discriminator labels
LuminosityBlockNumber_t luminosityBlock() const
const eventsetup::EventSetupRecord * find(const eventsetup::EventSetupRecordKey &) const
Definition: EventSetup.cc:90
std::map< std::string, MonitorElement * > hists_
histogram container
edm::InputTag triggerTable_
trigger table
StringCutObjectSelector< reco::GsfElectron > * elecIso_
extra isolation criterion on electron
Definition: MET.h:32
vector< PseudoJet > jets
StringCutObjectSelector< reco::Muon > * muonIso_
extra isolation criterion on muon
void fill(const edm::Event &event, const edm::EventSetup &setup)
fill monitor histograms with electronId and jetCorrections
static const unsigned int MAXJETS
const int mu
Definition: Constants.h:23
edm::InputTag jetIDLabel_
jetID as an extra selection type
std::vector< std::string > triggerPaths_
StringCutObjectSelector< reco::Vertex > * pvSelect_
extra selection on primary vertices; meant to investigate the pile-up effect
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
EventAuxiliary const & eventAuxiliary() const
Definition: Event.h:56
virtual double pt() const
transverse momentum
static const JetCorrector * getJetCorrector(const std::string &fName, const edm::EventSetup &fSetup)
retrieve corrector from the event setup. troughs exception if something is missing ...
Definition: JetCorrector.cc:51
std::string const & label() const
Definition: InputTag.h:25
tuple muons
Definition: patZpeak.py:38
static const double WMASS
tuple cout
Definition: gather_cfg.py:121
StringCutObjectSelector< reco::Muon > * muonSelect_
extra selection on muons
EventNumber_t event() const
void MonitorEnsemble::fill ( const edm::Event event,
const edm::TriggerResults triggerTable,
std::string  channel,
const std::vector< std::string >  labels 
) const
inlineprivate

fill trigger monitoring histograms

Definition at line 157 of file TopHLTSingleLeptonDQM.h.

References acceptHLT(), fill(), hists_, monitorPath(), selectionPath(), and relativeConstraints::value.

158  {
159  for(unsigned int idx=0; idx<labels.size(); ++idx){
160  if( acceptHLT(event, triggerTable, monitorPath(labels[idx])) ){
161  fill((channel+"Mon_").c_str(), idx+0.5 );
162  // take care to fill triggerMon_ before evts is being called
163  int evts = hists_.find((channel+"Mon_").c_str())->second->getBinContent(idx+1);
164  double value = hists_.find((channel+"Eff_").c_str())->second->getBinContent(idx+1);
165  fill((channel+"Eff_").c_str(), idx+0.5, 1./evts*(acceptHLT(event, triggerTable, selectionPath(labels[idx]))-value));
166  }
167  }
168  }
bool acceptHLT(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
std::string selectionPath(const std::string &label) const
std::map< std::string, MonitorElement * > hists_
histogram container
std::string monitorPath(const std::string &label) const
void fill(const edm::Event &event, const edm::EventSetup &setup)
fill monitor histograms with electronId and jetCorrections
void TopHLTSingleLepton::MonitorEnsemble::fill ( const std::string  histName,
double  value 
) const
inlineprivate

fill histogram if it had been booked before

Definition at line 72 of file TopHLTSingleLeptonDQM.h.

References booked(), hists_, and edm::second().

72 { if(booked(histName.c_str())) hists_.find(histName.c_str())->second->Fill(value); };
U second(std::pair< T, U > const &p)
std::map< std::string, MonitorElement * > hists_
histogram container
bool booked(const std::string histName) const
check if histogram was booked
void TopHLTSingleLepton::MonitorEnsemble::fill ( const std::string  histName,
double  xValue,
double  yValue 
) const
inlineprivate

fill histogram if it had been booked before (2-dim version)

Definition at line 74 of file TopHLTSingleLeptonDQM.h.

References booked(), hists_, and edm::second().

74 { if(booked(histName.c_str())) hists_.find(histName.c_str())->second->Fill(xValue, yValue); };
U second(std::pair< T, U > const &p)
std::map< std::string, MonitorElement * > hists_
histogram container
bool booked(const std::string histName) const
check if histogram was booked
void TopHLTSingleLepton::MonitorEnsemble::fill ( const std::string  histName,
double  xValue,
double  yValue,
double  zValue 
) const
inlineprivate

fill histogram if it had been booked before (2-dim version)

Definition at line 76 of file TopHLTSingleLeptonDQM.h.

76 { if(booked(histName.c_str())) hists_.find(histName.c_str())->second->Fill(xValue, yValue, zValue); };
U second(std::pair< T, U > const &p)
std::map< std::string, MonitorElement * > hists_
histogram container
bool booked(const std::string histName) const
check if histogram was booked
std::string TopHLTSingleLepton::MonitorEnsemble::monitorPath ( const std::string &  label) const
inlineprivate

deduce monitorPath from label, the label is expected to be of type 'selectionPath:monitorPath'

Definition at line 59 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and triggerBinLabels().

59 { return label.substr(label.find(':')+1); };
std::string TopHLTSingleLepton::MonitorEnsemble::selectionPath ( const std::string &  label) const
inlineprivate

deduce selectionPath from label, the label is expected to be of type 'selectionPath:monitorPath'

Definition at line 62 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and triggerBinLabels().

62 { return label.substr(0, label.find(':')); };
void MonitorEnsemble::triggerBinLabels ( std::string  channel,
const std::vector< std::string >  labels 
)
inlineprivate

set configurable labels for trigger monitoring histograms

Definition at line 148 of file TopHLTSingleLeptonDQM.h.

References hists_, monitorPath(), and selectionPath().

Referenced by book().

149  {
150  for(unsigned int idx=0; idx<labels.size(); ++idx){
151  hists_[(channel+"Mon_").c_str()]->setBinLabel( idx+1, "["+monitorPath(labels[idx])+"]", 1);
152  hists_[(channel+"Eff_").c_str()]->setBinLabel( idx+1, "["+selectionPath(labels[idx])+"]|["+monitorPath(labels[idx])+"]", 1);
153  }
154  }
std::string selectionPath(const std::string &label) const
std::map< std::string, MonitorElement * > hists_
histogram container
std::string monitorPath(const std::string &label) const

Member Data Documentation

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::btagEff_
private

btag discriminator labels

Definition at line 133 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

double TopHLTSingleLepton::MonitorEnsemble::btagEffWP_
private

btag working points

Definition at line 135 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::btagPur_
private

Definition at line 133 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

double TopHLTSingleLepton::MonitorEnsemble::btagPurWP_
private

Definition at line 135 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::btagVtx_
private

Definition at line 133 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

double TopHLTSingleLepton::MonitorEnsemble::btagVtxWP_
private

Definition at line 135 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

int TopHLTSingleLepton::MonitorEnsemble::eidPattern_
private

electronId pattern we expect the following pattern: 0: fails 1: passes electron ID only 2: passes electron Isolation only 3: passes electron ID and Isolation only 4: passes conversion rejection 5: passes conversion rejection and ID 6: passes conversion rejection and Isolation 7: passes the whole selection As described on https://twiki.cern.ch/twiki/bin/view/CMS/SimpleCutBasedEleID

Definition at line 106 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::GsfElectron>* TopHLTSingleLepton::MonitorEnsemble::elecIso_
private

extra isolation criterion on electron

Definition at line 108 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::elecs_
private

input sources for monitoring

Definition at line 86 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::GsfElectron>* TopHLTSingleLepton::MonitorEnsemble::elecSelect_
private

extra selection on electrons

Definition at line 110 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::electronId_
private

electronId label

Definition at line 95 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

std::map<std::string,MonitorElement*> TopHLTSingleLepton::MonitorEnsemble::hists_
private

histogram container

Definition at line 144 of file TopHLTSingleLeptonDQM.h.

Referenced by book(), booked(), fill(), and triggerBinLabels().

bool TopHLTSingleLepton::MonitorEnsemble::includeBTag_
private

include btag information or not to be determined from the cfg

Definition at line 131 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

std::string TopHLTSingleLepton::MonitorEnsemble::jetCorrector_
private

jetCorrector

Definition at line 121 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::jetIDLabel_
private

jetID as an extra selection type

Definition at line 123 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::JetID>* TopHLTSingleLepton::MonitorEnsemble::jetIDSelect_
private

extra jetID selection on calo jets

Definition at line 125 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::jets_
private

Definition at line 86 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

std::string TopHLTSingleLepton::MonitorEnsemble::jetSelect_
private

extra selection on jets (here given as std::string as it depends on the the jet type, which selections are valid and which not)

Definition at line 128 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

std::string TopHLTSingleLepton::MonitorEnsemble::label_
private
int TopHLTSingleLepton::MonitorEnsemble::logged_
private

number of logged interesting events

Definition at line 140 of file TopHLTSingleLeptonDQM.h.

Referenced by fill().

double TopHLTSingleLepton::MonitorEnsemble::lowerEdge_
private

mass window upper and lower edge

Definition at line 137 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

std::vector<edm::InputTag> TopHLTSingleLepton::MonitorEnsemble::mets_
private

considers a vector of METs

Definition at line 84 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::Muon>* TopHLTSingleLepton::MonitorEnsemble::muonIso_
private

extra isolation criterion on muon

Definition at line 116 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::muons_
private

Definition at line 86 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::Muon>* TopHLTSingleLepton::MonitorEnsemble::muonSelect_
private

extra selection on muons

Definition at line 118 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::pvs_
private

Definition at line 86 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

StringCutObjectSelector<reco::Vertex>* TopHLTSingleLepton::MonitorEnsemble::pvSelect_
private

extra selection on primary vertices; meant to investigate the pile-up effect

Definition at line 113 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

DQMStore* TopHLTSingleLepton::MonitorEnsemble::store_
private

storage manager

Definition at line 142 of file TopHLTSingleLeptonDQM.h.

Referenced by book().

std::vector<std::string> TopHLTSingleLepton::MonitorEnsemble::triggerPaths_
private

trigger paths for monitoring, expected to be of form signalPath:MonitorPath

Definition at line 92 of file TopHLTSingleLeptonDQM.h.

Referenced by book(), fill(), and MonitorEnsemble().

edm::InputTag TopHLTSingleLepton::MonitorEnsemble::triggerTable_
private

trigger table

Definition at line 89 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

double TopHLTSingleLepton::MonitorEnsemble::upperEdge_
private

Definition at line 137 of file TopHLTSingleLeptonDQM.h.

Referenced by fill(), and MonitorEnsemble().

Level TopHLTSingleLepton::MonitorEnsemble::verbosity_
private

verbosity level for booking

Definition at line 76 of file TopHLTSingleLeptonDQM.h.

Referenced by book(), and MonitorEnsemble().