CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ElectronAnalyzer.h
Go to the documentation of this file.
1 
2 #ifndef DQMOffline_EGamma_ElectronAnalyzer_h
3 #define DQMOffline_EGamma_ElectronAnalyzer_h
4 
6 
9 
12 
13 class MagneticField ;
14 
18 
20  {
21  public:
22 
23  explicit ElectronAnalyzer(const edm::ParameterSet& conf);
24  virtual ~ElectronAnalyzer();
25 
26  virtual void book() ;
27  virtual void analyze( const edm::Event & e, const edm::EventSetup & c) ;
28 
29  private:
30 
31  //=========================================
32  // parameters
33  //=========================================
34 
35  // general, collections
43  bool readAOD_; //NEW
44 
45  // matching
46  std::string matchingCondition_; //NEW
47  double maxPtMatchingObject_; // SURE ?
48  double maxAbsEtaMatchingObject_; // SURE ?
49  double deltaR_;
50 
51  // electron selection NEW
52  double minEt_;
53  double minPt_;
54  double maxAbsEta_;
55  bool isEB_;
56  bool isEE_;
78  double mvaMin_;
79  double tipMaxBarrel_;
81  double tkIso03Max_;
87 
88  // for trigger NEW
90 // std::vector<std::string > HLTPathsByName_;
91 
92  // histos limits and binning
93  int nbineta; int nbineta2D; double etamin; double etamax;
94  int nbinphi; int nbinphi2D; double phimin; double phimax;
95  int nbinpt; int nbinpteff; int nbinpt2D; double ptmax;
96  int nbinp; int nbinp2D; double pmax;
97  int nbineop; int nbineop2D; double eopmax; double eopmaxsht;
98  int nbindeta; double detamin; double detamax;
99  int nbindphi; double dphimin; double dphimax;
102  int nbinfhits; double fhitsmax;
103  int nbinlhits; double lhitsmax;
104  int nbinxyz; int nbinxyz2D;
105  int nbinpoptrue; double poptruemin; double poptruemax; //NEW
106  int nbinmee; double meemin; double meemax; //NEW
107  int nbinhoe; double hoemin; double hoemax; //NEW
108 
109  //=========================================
110  // general attributes and utility methods
111  //=========================================
112 
113  unsigned int nEvents_ ;
114 
115  float computeInvMass
116  ( const reco::GsfElectron & e1,
117  const reco::GsfElectron & e2 ) ;
118 
119  bool selected( const reco::GsfElectronCollection::const_iterator & gsfIter , double vertexTIP ) ;
120  bool generalCut( const reco::GsfElectronCollection::const_iterator & gsfIter) ;
121  bool etCut( const reco::GsfElectronCollection::const_iterator & gsfIter ) ;
122  bool isolationCut( const reco::GsfElectronCollection::const_iterator & gsfIter, double vertexTIP ) ;
123  bool idCut( const reco::GsfElectronCollection::const_iterator & gsfIter ) ;
124 
125 // bool trigger( const edm::Event & e ) ;
126 // unsigned int nAfterTrigger_;
127 // std::vector<unsigned int> HLTPathsByIndex_;
128 
131 
132  float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10];
134  float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10];
135 
136  //=========================================
137  // histograms
138  //=========================================
139 
140  // general
148 
149  // basic quantities
150 // MonitorElement * h1_num_ ; // number of electrons in a single event
151 // MonitorElement * h1_charge ;
152 // MonitorElement * h1_vertexP ;
153 // MonitorElement * h1_Et ;
154 // MonitorElement * h1_vertexTIP ;
155 // MonitorElement * h1_vertexPhi ;
156 // MonitorElement * h1_vertexX ;
157 // MonitorElement * h1_vertexY ;
164 
165  // super-clusters
166 // MonitorElement * h1_sclEn ;
167 // MonitorElement * h1_sclEta ;
168 // MonitorElement * h1_sclPhi ;
170 
171  // gsf tracks
172 // MonitorElement * h1_ambiguousTracks ;
173 // MonitorElement * h2ele_ambiguousTracksVsEta ;
174 // MonitorElement * h2_ambiguousTracksVsPhi ;
175 // MonitorElement * h2_ambiguousTracksVsPt ;
179 // MonitorElement * h2_chi2VsPt ;
183 // MonitorElement * h2_foundHitsVsPt ;
187 // MonitorElement * h2_lostHitsVsPt ;
188 
189  // electron matching and ID
190  //MonitorElement * h_EopOut ;
191  //MonitorElement * h_dEtaCl_propOut ;
192  //MonitorElement * h_dPhiCl_propOut ;
193 // MonitorElement * h1_Eop ;
194 // MonitorElement * h2_EopVsEta ;
198 // MonitorElement * h1_EopVsPt ;
199 // MonitorElement * h1_EeleOPout ;
200 // MonitorElement * h2_EeleOPoutVsEta ;
203 // MonitorElement * h2_EeleOPoutVsPhi ;
204 // MonitorElement * h2_EeleOPoutVsPt ;
205 // MonitorElement * h1_dEtaSc_propVtx ;
206 // MonitorElement * h2_dEtaSc_propVtxVsEta ;
210 // MonitorElement * h2_dEtaSc_propVtxVsPt ;
211 // MonitorElement * h1_dEtaEleCl_propOut ;
212 // MonitorElement * h2_dEtaEleCl_propOutVsEta ;
215 // MonitorElement * h2_dEtaEleCl_propOutVsPhi ;
216 // MonitorElement * h2_dEtaEleCl_propOutVsPt ;
217 // MonitorElement * h1_dPhiSc_propVtx ;
218 // MonitorElement * h2_dPhiSc_propVtxVsEta ;
222 // MonitorElement * h2_dPhiSc_propVtxVsPt ;
223 // MonitorElement * h1_dPhiEleCl_propOut ;
224 // MonitorElement * h2_dPhiEleCl_propOutVsEta ;
227 // MonitorElement * h2_dPhiEleCl_propOutVsPhi ;
228 // MonitorElement * h2_dPhiEleCl_propOutVsPt ;
229 // MonitorElement * h1_Hoe ;
230 // MonitorElement * h2_HoeVsEta ;
234 // MonitorElement * h2_HoeVsPt ;
237 
238  // fbrem related variables
239  //MonitorElement * h_outerP ;
240  //MonitorElement * h_outerP_mode ;
241 // MonitorElement * h_innerPt_mean ;
242 // MonitorElement * h_outerPt_mean ;
243 // MonitorElement * h_outerPt_mode ;
244 // MonitorElement * h_PinMnPout ;
245 // MonitorElement * h_PinMnPout_mode ;
249 // MonitorElement * h2_fbremVsPt ;
251 
252  // pflow
255 
256  // isolation
260 // MonitorElement * h1_hcalDepth1TowerSumEt_dr03 ;
261 // MonitorElement * h1_hcalDepth2TowerSumEt_dr03 ;
262 // MonitorElement * h1_tkSumPt_dr04 ;
263 // MonitorElement * h1_ecalRecHitSumEt_dr04 ;
264 // MonitorElement * h1_hcalTowerSumEt_dr04 ;
267 
268  // di-electron mass
271 
272 
273  // histos for matching and matched objects
274 
275 // MonitorElement * h1_matchedEle_eta ;
276 // MonitorElement * h1_matchedEle_eta_golden ;
277 // MonitorElement * h1_matchedEle_eta_shower ;
278 // //MonitorElement * h1_matchedEle_eta_bbrem ;
279 // //MonitorElement * h1_matchedEle_eta_narrow ;
280 
282 // MonitorElement * h1_matchedObject_AbsEta ;
285 // MonitorElement * h1_matchedObject_Z ;
286 
287 // MonitorElement * h1_matchingObject_Num ;
289 // MonitorElement * h1_matchingObject_AbsEta ;
290 // MonitorElement * h1_matchingObject_P ;
293 // MonitorElement * h1_matchingObject_Z ;
294 
295  } ;
296 
297 #endif
298 
299 
300 
MonitorElement * py_nElectronsVsLs
MonitorElement * h1_foundHits
virtual void book()
MonitorElement * h2_beamSpotXvsY
double hadronicOverEmMaxEndcaps_
MonitorElement * h1_mee_os
bool selected(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
MonitorElement * h1_dPhiSc_propVtx_barrel
edm::InputTag vertexCollection_
unsigned int nEvents_
MonitorElement * h1_vertexPt_barrel
MonitorElement * py_lostHitsVsEta
edm::ESHandle< TrackerGeometry > pDD
MonitorElement * h1_sclSigEtaEta_barrel
MonitorElement * py_chi2VsEta
MonitorElement * h1_vertexEta
MonitorElement * py_chi2VsPhi
MonitorElement * h1_Eop_endcaps
MonitorElement * h1_ecalRecHitSumEt_dr03
MonitorElement * h1_hcalTowerSumEt_dr03
MonitorElement * h1_matchingObject_Eta
MonitorElement * h1_Hoe_barrel
edm::InputTag triggerResults_
MonitorElement * py_HoeVsPhi
MonitorElement * h1_matchedObject_Pt
double sigIetaIetaMinBarrel_
float superclusterPhi[10]
edm::ESHandle< MagneticField > theMagField
MonitorElement * h1_matchedObject_Phi
MonitorElement * h1_tkSumPt_dr03
double sigIetaIetaMaxBarrel_
float superclusterEta[10]
edm::InputTag gsftrackCollection_
MonitorElement * h2_vertexXvsY
MonitorElement * py_fbremVsEta
MonitorElement * h1_provenance
MonitorElement * h1_dEtaEleCl_propOut_barrel
MonitorElement * py_nTracksVsLs
MonitorElement * py_EopVsPhi
edm::InputTag matchingObjectCollection_
MonitorElement * h1_Eop_barrel
edm::InputTag electronCollection_
MonitorElement * py_nGsfTracksVsLs
double sigIetaIetaMinEndcaps_
MonitorElement * py_nClustersVsLs
MonitorElement * py_dEtaSc_propVtxVsPhi
double sigIetaIetaMaxEndcaps_
std::string matchingCondition_
double hcalIso03Depth1MaxBarrel_
MonitorElement * h1_dEtaEleCl_propOut_endcaps
MonitorElement * h1_Hoe_endcaps
tuple conf
Definition: dbtoconf.py:185
MonitorElement * py_nVerticesVsLs
ElectronAnalyzer(const edm::ParameterSet &conf)
MonitorElement * h1_vertexPt_endcaps
MonitorElement * py_lostHitsVsPhi
MonitorElement * h1_vertexZ
MonitorElement * py_dPhiSc_propVtxVsPhi
double hcalIso03Depth1MaxEndcaps_
MonitorElement * h1_dPhiEleCl_propOut_endcaps
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * py_fbremVsPhi
MonitorElement * py_foundHitsVsPhi
bool etCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
MonitorElement * h1_fbrem
MonitorElement * h1_chi2
double maxAbsEtaMatchingObject_
MonitorElement * h1_lostHits
MonitorElement * h2_vertexEtaVsPhi
MonitorElement * h1_EeleOPout_endcaps
edm::InputTag beamSpotTag_
MonitorElement * h1_mee
MonitorElement * h1_classes
MonitorElement * h1_sclEt
MonitorElement * h1_EeleOPout_barrel
bool generalCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
MonitorElement * h1_dEtaSc_propVtx_barrel
float computeInvMass(const reco::GsfElectron &e1, const reco::GsfElectron &e2)
MonitorElement * h1_matchingObject_Phi
MonitorElement * h1_dPhiSc_propVtx_endcaps
edm::InputTag trackCollection_
virtual ~ElectronAnalyzer()
float superclusterEt[10]
MonitorElement * h1_sclSigEtaEta_endcaps
MonitorElement * py_foundHitsVsEta
float superclusterEnergy[10]
bool idCut(const reco::GsfElectronCollection::const_iterator &gsfIter)
double hcalIso03Depth2MaxEndcaps_
double hadronicOverEmMaxBarrel_
MonitorElement * h1_matchedObject_Eta
MonitorElement * h1_matchingObject_Pt
MonitorElement * h1_dPhiEleCl_propOut_barrel
MonitorElement * h1_dEtaSc_propVtx_endcaps
MonitorElement * h1_mva
bool isolationCut(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP)
MonitorElement * h1_triggers