CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElectronTagProbeAnalyzer.h
Go to the documentation of this file.
1 
2 #ifndef DQMOffline_EGamma_ElectronTagProbeAnalyzer_h
3 #define DQMOffline_EGamma_ElectronTagProbeAnalyzer_h
4 
6 
9 
12 
13 
14 class MagneticField ;
15 
19 
21  {
22  public:
23 
25  virtual ~ElectronTagProbeAnalyzer();
26 
27  virtual void book() ;
28  virtual void analyze( const edm::Event & e, const edm::EventSetup & c) ;
29 
30  private:
31 
32  //=========================================
33  // parameters
34  //=========================================
35 
36  // general, collections
44  bool readAOD_; //NEW
45 
46 // // matching
47 // std::string matchingCondition_; //NEW
48 // double maxPtMatchingObject_; // SURE ?
49 // double maxAbsEtaMatchingObject_; // SURE ?
50 // double deltaR_;
51 
52  // tag and probe NEW
53  double massLow_;
54  double massHigh_;
59 
60  // electron selection NEW
61  double minEt_;
62  double minPt_;
63  double maxAbsEta_;
64  bool isEB_;
65  bool isEE_;
87  double mvaMin_;
88  double tipMaxBarrel_;
90  double tkIso03Max_;
96 
97  // for trigger NEW
99 // std::vector<std::string > HLTPathsByName_;
100 
101  // histos limits and binning
102  int nbineta; int nbineta2D; double etamin; double etamax;
103  int nbinphi; int nbinphi2D; double phimin; double phimax;
104  int nbinpt; int nbinpteff; int nbinpt2D; double ptmax;
105  int nbinp; int nbinp2D; double pmax;
106  int nbineop; int nbineop2D; double eopmax; double eopmaxsht;
107  int nbindeta; double detamin; double detamax;
108  int nbindphi; double dphimin; double dphimax;
111  int nbinfhits; double fhitsmax;
112  int nbinlhits; double lhitsmax;
113  int nbinxyz; int nbinxyz2D;
114  int nbinpoptrue; double poptruemin; double poptruemax; //NEW
115  int nbinmee; double meemin; double meemax; //NEW
116  int nbinhoe; double hoemin; double hoemax; //NEW
117 
118  //=========================================
119  // general attributes and utility methods
120  //=========================================
121 
122  unsigned int nEvents_ ;
123 
124  float computeInvMass
125  ( const reco::GsfElectron & e1,
126  const reco::GsfElectron & e2 ) ;
127  void fillMatchedHistos
128  ( const reco::SuperClusterCollection::const_iterator & moIter,
129  const reco::GsfElectron & electron ) ;
130 
131  bool selected( const reco::GsfElectronCollection::const_iterator & gsfIter , double vertexTIP ) ;
132  bool generalCut( const reco::GsfElectronCollection::const_iterator & gsfIter) ;
133  bool etCut( const reco::GsfElectronCollection::const_iterator & gsfIter ) ;
134  bool isolationCut( const reco::GsfElectronCollection::const_iterator & gsfIter, double vertexTIP ) ;
135  bool idCut( const reco::GsfElectronCollection::const_iterator & gsfIter ) ;
136 
137 // bool trigger( const edm::Event & e ) ;
138 // unsigned int nAfterTrigger_;
139 // std::vector<unsigned int> HLTPathsByIndex_;
140 
144 
145  float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10];
147  float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10];
148 
149  //=========================================
150  // histograms
151  //=========================================
152 
153  // general
154 // MonitorElement * h2_beamSpotXvsY ;
155 // MonitorElement * py_nElectronsVsLs ;
156 // MonitorElement * py_nClustersVsLs ;
157 // MonitorElement * py_nGsfTracksVsLs ;
158 // MonitorElement * py_nTracksVsLs ;
159 // MonitorElement * py_nVerticesVsLs ;
160 // MonitorElement * h1_triggers ;
161 
162  // basic quantities
163 // MonitorElement * h1_num_ ; // number of electrons in a single event
164 // MonitorElement * h1_charge ;
165 // MonitorElement * h1_vertexP ;
166 // MonitorElement * h1_Et ;
167 // MonitorElement * h1_vertexTIP ;
169 // MonitorElement * h1_vertexPhi ;
170 // MonitorElement * h1_vertexX ;
171 // MonitorElement * h1_vertexY ;
177 
178  // super-clusters
179 // MonitorElement * h1_sclEn ;
180 // MonitorElement * h1_sclEta ;
181 // MonitorElement * h1_sclPhi ;
183 
184  // gsf tracks
185 // MonitorElement * h1_ambiguousTracks ;
186 // MonitorElement * h2ele_ambiguousTracksVsEta ;
187 // MonitorElement * h2_ambiguousTracksVsPhi ;
188 // MonitorElement * h2_ambiguousTracksVsPt ;
190 // MonitorElement * py_chi2VsEta ;
191 // MonitorElement * py_chi2VsPhi ;
192 // MonitorElement * h2_chi2VsPt ;
194 // MonitorElement * py_foundHitsVsEta ;
195 // MonitorElement * py_foundHitsVsPhi ;
196 // MonitorElement * h2_foundHitsVsPt ;
198 // MonitorElement * py_lostHitsVsEta ;
199 // MonitorElement * py_lostHitsVsPhi ;
200 // MonitorElement * h2_lostHitsVsPt ;
201 
202  // electron matching and ID
203  //MonitorElement * h_EopOut ;
204  //MonitorElement * h_dEtaCl_propOut ;
205  //MonitorElement * h_dPhiCl_propOut ;
206 // MonitorElement * h1_Eop ;
207 // MonitorElement * h2_EopVsEta ;
210 // MonitorElement * py_EopVsPhi ;
211 // MonitorElement * h1_EopVsPt ;
212 // MonitorElement * h1_EeleOPout ;
213 // MonitorElement * h2_EeleOPoutVsEta ;
216 // MonitorElement * h2_EeleOPoutVsPhi ;
217 // MonitorElement * h2_EeleOPoutVsPt ;
218 // MonitorElement * h1_dEtaSc_propVtx ;
219 // MonitorElement * h2_dEtaSc_propVtxVsEta ;
222 // MonitorElement * py_dEtaSc_propVtxVsPhi ;
223 // MonitorElement * h2_dEtaSc_propVtxVsPt ;
224 // MonitorElement * h1_dEtaEleCl_propOut ;
225 // MonitorElement * h2_dEtaEleCl_propOutVsEta ;
228 // MonitorElement * h2_dEtaEleCl_propOutVsPhi ;
229 // MonitorElement * h2_dEtaEleCl_propOutVsPt ;
230 // MonitorElement * h1_dPhiSc_propVtx ;
231 // MonitorElement * h2_dPhiSc_propVtxVsEta ;
234 // MonitorElement * py_dPhiSc_propVtxVsPhi ;
235 // MonitorElement * h2_dPhiSc_propVtxVsPt ;
236 // MonitorElement * h1_dPhiEleCl_propOut ;
237 // MonitorElement * h2_dPhiEleCl_propOutVsEta ;
240 // MonitorElement * h2_dPhiEleCl_propOutVsPhi ;
241 // MonitorElement * h2_dPhiEleCl_propOutVsPt ;
242 // MonitorElement * h1_Hoe ;
243 // MonitorElement * h2_HoeVsEta ;
246 // MonitorElement * py_HoeVsPhi ;
247 // MonitorElement * h2_HoeVsPt ;
250 
251  // fbrem related variables
252  //MonitorElement * h_outerP ;
253  //MonitorElement * h_outerP_mode ;
254 // MonitorElement * h_innerPt_mean ;
255 // MonitorElement * h_outerPt_mean ;
256 // MonitorElement * h_outerPt_mode ;
257 // MonitorElement * h_PinMnPout ;
258 // MonitorElement * h_PinMnPout_mode ;
260 // MonitorElement * py_fbremVsEta ;
261 // MonitorElement * py_fbremVsPhi ;
262 // MonitorElement * h2_fbremVsPt ;
264 
265  // pflow
268 
269  // isolation
273 // MonitorElement * h1_hcalDepth1TowerSumEt_dr03 ;
274 // MonitorElement * h1_hcalDepth2TowerSumEt_dr03 ;
275 // MonitorElement * h1_tkSumPt_dr04 ;
276 // MonitorElement * h1_ecalRecHitSumEt_dr04 ;
277 // MonitorElement * h1_hcalTowerSumEt_dr04 ;
280 
281  // di-electron mass
284 
285 
286  // histos for matching and matched objects
287 
288 // MonitorElement * h1_matchedEle_eta ;
289 // MonitorElement * h1_matchedEle_eta_golden ;
290 // MonitorElement * h1_matchedEle_eta_shower ;
291 // //MonitorElement * h1_matchedEle_eta_bbrem ;
292 // //MonitorElement * h1_matchedEle_eta_narrow ;
293 
295 // MonitorElement * h1_matchedObject_AbsEta ;
298 // MonitorElement * h1_matchedObject_Z ;
299 
300 // MonitorElement * h1_matchingObject_Num ;
302 // MonitorElement * h1_matchingObject_AbsEta ;
303 // MonitorElement * h1_matchingObject_P ;
306 // MonitorElement * h1_matchingObject_Z ;
307 
308  } ;
309 
310 #endif
311 
312 
313 
void fillMatchedHistos(const reco::SuperClusterCollection::const_iterator &moIter, const reco::GsfElectron &electron)
MonitorElement * h1_dEtaEleCl_propOut_endcaps
MonitorElement * h1_dEtaSc_propVtx_endcaps
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
float computeInvMass(const reco::GsfElectron &e1, const reco::GsfElectron &e2)
MonitorElement * h1_dPhiEleCl_propOut_barrel
ElectronTagProbeAnalyzer(const edm::ParameterSet &conf)
MonitorElement * h1_dPhiSc_propVtx_endcaps
bool isolationCut(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
edm::ESHandle< TrackerGeometry > pDD
TrajectoryStateTransform transformer_
tuple conf
Definition: dbtoconf.py:185
edm::ESHandle< MagneticField > theMagField
MonitorElement * h1_dEtaEleCl_propOut_barrel
MonitorElement * h1_dPhiEleCl_propOut_endcaps
bool generalCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
bool etCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
bool selected(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
bool idCut(const reco::GsfElectronCollection::const_iterator &gsfIter)