CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PhotonAnalyzer.h
Go to the documentation of this file.
1 #ifndef PhotonAnalyzer_H
2 #define PhotonAnalyzer_H
3 
6 //
11 // DataFormats
22 
31 
36 
41 
43 
44 // Geometry
54 //
55 #include "TFile.h"
56 #include "TH1.h"
57 #include "TH2.h"
58 #include "TTree.h"
59 #include "TVector3.h"
60 #include "TProfile.h"
61 //
62 
71 
72 //
73 //DQM services
77 
78 //
79 
80 #include <vector>
81 #include <string>
82 
95 // forward declarations
96 class TFile;
97 class TH1F;
98 class TH2F;
99 class TProfile;
100 class TTree;
101 class SimVertex;
102 class SimTrack;
103 
104 
106 {
107 
108 
109  public:
110 
111  //
112  explicit PhotonAnalyzer( const edm::ParameterSet& ) ;
113  virtual ~PhotonAnalyzer();
114 
115 
116  virtual void analyze( const edm::Event&, const edm::EventSetup& ) ;
117  virtual void beginJob() ;
118  virtual void endJob() ;
119  virtual void endRun(const edm::Run& , const edm::EventSetup& ) ;
120 
121 
122  private:
123  //
124 
125  float phiNormalization( float& a);
126 
127  MonitorElement* bookHisto(std::string histoName, std::string title, int bin, double min, double max);
128 
129  void book2DHistoVector(std::vector<std::vector<MonitorElement*> > & toFill,
130  std::string histoType, std::string histoName, std::string title,
131  int xbin, double xmin, double xmax,
132  int ybin=1,double ymin=1, double ymax=2);
133 
134  void book3DHistoVector( std::vector<std::vector<std::vector<MonitorElement*> > > & toFill,
135  std::string histoType, std::string histoName, std::string title,
136  int xbin, double xmin, double xmax,
137  int ybin=1,double ymin=1, double ymax=2);
138 
139 
140  void fill2DHistoVector(std::vector<std::vector<MonitorElement*> >& histoVector,double x, int cut, int type);
141  void fill2DHistoVector(std::vector<std::vector<MonitorElement*> >& histoVector,double x, double y, int cut, int type);
142 
143  void fill3DHistoVector(std::vector<std::vector<std::vector<MonitorElement*> > >& histoVector,double x, int cut, int type, int part);
144  void fill3DHistoVector(std::vector<std::vector<std::vector<MonitorElement*> > >& histoVector,double x, double y, int cut, int type, int part);
145 
146 
147 
149 
150  std::string fName_;
152 
153  unsigned int prescaleFactor_;
154 
155  std::string photonProducer_;
156  std::string photonCollection_;
157 
160 
163 
165 
166  double minPhoEtCut_;
168 
169  double cutStep_;
171 
175  std::string outputFileName_;
176 
179 
181 
183 
185 
187 
189  std::stringstream currentFolder_;
190 
195 
196 
197  int nEvt_;
198  int nEntry_;
199 
200  std::vector<std::string> types_;
201  std::vector<std::string> parts_;
202 
204 
209 
210 
215 
220 
225 
226 
228 
233 
235 
236 
237  std::vector<std::vector<MonitorElement*> > h_nTrackIsolSolidVsEta_;
238  std::vector<std::vector<MonitorElement*> > h_trackPtSumSolidVsEta_;
239  std::vector<std::vector<MonitorElement*> > h_nTrackIsolHollowVsEta_;
240  std::vector<std::vector<MonitorElement*> > h_trackPtSumHollowVsEta_;
241  std::vector<std::vector<MonitorElement*> > h_ecalSumVsEta_;
242  std::vector<std::vector<MonitorElement*> > h_hcalSumVsEta_;
243 
244 
245  std::vector<std::vector<MonitorElement*> > h_nTrackIsolSolidVsEt_;
246  std::vector<std::vector<MonitorElement*> > h_trackPtSumSolidVsEt_;
247  std::vector<std::vector<MonitorElement*> > h_nTrackIsolHollowVsEt_;
248  std::vector<std::vector<MonitorElement*> > h_trackPtSumHollowVsEt_;
249  std::vector<std::vector<MonitorElement*> > h_ecalSumVsEt_;
250  std::vector<std::vector<MonitorElement*> > h_hcalSumVsEt_;
251 
252 
253  std::vector<std::vector<MonitorElement*> > h_nTrackIsolSolid_;
254  std::vector<std::vector<MonitorElement*> > h_trackPtSumSolid_;
255  std::vector<std::vector<MonitorElement*> > h_nTrackIsolHollow_;
256  std::vector<std::vector<MonitorElement*> > h_trackPtSumHollow_;
257  std::vector<std::vector<MonitorElement*> > h_ecalSum_;
258  std::vector<std::vector<MonitorElement*> > h_hcalSum_;
259 
260 
261  std::vector<std::vector<MonitorElement*> > p_nTrackIsolSolidVsEta_;
262  std::vector<std::vector<MonitorElement*> > p_trackPtSumSolidVsEta_;
263  std::vector<std::vector<MonitorElement*> > p_nTrackIsolHollowVsEta_;
264  std::vector<std::vector<MonitorElement*> > p_trackPtSumHollowVsEta_;
265  std::vector<std::vector<MonitorElement*> > p_ecalSumVsEta_;
266  std::vector<std::vector<MonitorElement*> > p_hcalSumVsEta_;
267 
268  std::vector<std::vector<MonitorElement*> > p_nTrackIsolSolidVsEt_;
269  std::vector<std::vector<MonitorElement*> > p_trackPtSumSolidVsEt_;
270  std::vector<std::vector<MonitorElement*> > p_nTrackIsolHollowVsEt_;
271  std::vector<std::vector<MonitorElement*> > p_trackPtSumHollowVsEt_;
272 
273  std::vector<std::vector<MonitorElement*> > p_r9VsEt_;
274  std::vector<std::vector<MonitorElement*> > p_r9VsEta_;
275 
276  std::vector<std::vector<MonitorElement*> > p_e1x5VsEt_;
277  std::vector<std::vector<MonitorElement*> > p_e1x5VsEta_;
278 
279  std::vector<std::vector<MonitorElement*> > p_e2x5VsEt_;
280  std::vector<std::vector<MonitorElement*> > p_e2x5VsEta_;
281 
282  std::vector<std::vector<MonitorElement*> > p_maxEXtalOver3x3VsEt_;
283  std::vector<std::vector<MonitorElement*> > p_maxEXtalOver3x3VsEta_;
284 
285  std::vector<std::vector<MonitorElement*> > p_r1x5VsEt_;
286  std::vector<std::vector<MonitorElement*> > p_r1x5VsEta_;
287 
288  std::vector<std::vector<MonitorElement*> > p_r2x5VsEt_;
289  std::vector<std::vector<MonitorElement*> > p_r2x5VsEta_;
290 
291  std::vector<std::vector<MonitorElement*> > p_sigmaIetaIetaVsEta_;
292 
293  std::vector<std::vector<MonitorElement*> > p_dCotTracksVsEta_;
294 
295  std::vector<std::vector<MonitorElement*> > p_hOverEVsEta_;
296  std::vector<std::vector<MonitorElement*> > p_hOverEVsEt_;
297 
298  std::vector<std::vector<MonitorElement*> > h_phoEta_;
299  std::vector<std::vector<MonitorElement*> > h_scEta_;
300 
301 
302  std::vector<std::vector<MonitorElement*> > h_phoConvEtaForEfficiency_;
303 
304  std::vector<std::vector<MonitorElement*> > h_phoEta_BadChannels_;
305  std::vector<std::vector<MonitorElement*> > h_phoEt_BadChannels_;
306  std::vector<std::vector<MonitorElement*> > h_phoPhi_BadChannels_;
307 
308  std::vector<std::vector<MonitorElement*> > h_phoConvEta_;
309 
310  std::vector<std::vector<MonitorElement*> > h_convVtxRvsZ_;
311  std::vector<std::vector<MonitorElement*> > h_convVtxZEndcap_;
312  std::vector<std::vector<MonitorElement*> > h_convVtxZ_;
313  std::vector<std::vector<MonitorElement*> > h_convVtxYvsX_;
314  std::vector<std::vector<MonitorElement*> > h_convVtxR_;
315 
316  std::vector<std::vector<MonitorElement*> > h_r9VsEt_;
317  std::vector<std::vector<MonitorElement*> > h_r9VsEta_;
318 
319 
320  std::vector<std::vector<MonitorElement*> > h_e1x5VsEt_;
321  std::vector<std::vector<MonitorElement*> > h_e1x5VsEta_;
322 
323  std::vector<std::vector<MonitorElement*> > h_e2x5VsEt_;
324  std::vector<std::vector<MonitorElement*> > h_e2x5VsEta_;
325 
326  std::vector<std::vector<MonitorElement*> > h_maxEXtalOver3x3VsEt_;
327  std::vector<std::vector<MonitorElement*> > h_maxEXtalOver3x3VsEta_;
328 
329  std::vector<std::vector<MonitorElement*> > h_r1x5VsEt_;
330  std::vector<std::vector<MonitorElement*> > h_r1x5VsEta_;
331 
332  std::vector<std::vector<MonitorElement*> > h_r2x5VsEt_;
333  std::vector<std::vector<MonitorElement*> > h_r2x5VsEta_;
334 
335  std::vector<std::vector<MonitorElement*> > h_sigmaIetaIetaVsEta_;
336 
337  std::vector<std::vector<MonitorElement*> > h_tkChi2_;
338 
339  std::vector<std::vector<MonitorElement*> > h_vertexChi2Prob_;
340 
341  std::vector<std::vector<MonitorElement*> > p_nHitsVsEta_;
342 
343  std::vector<std::vector<MonitorElement*> > p_tkChi2VsEta_;
344 
345 
347 
348  std::vector<std::vector<std::vector<MonitorElement*> > > p_ecalSumVsEt_;
349  std::vector<std::vector<std::vector<MonitorElement*> > > p_hcalSumVsEt_;
350 
351  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoE_;
352  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoEt_;
353  std::vector<std::vector<std::vector<MonitorElement*> > > h_r9_;
354  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoPhi_;
355  std::vector<std::vector<std::vector<MonitorElement*> > > h_scPhi_;
356  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoConvPhiForEfficiency_;
357  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoConvPhi_;
358 
359 
360 
361  std::vector<std::vector<std::vector<MonitorElement*> > > h_hOverE_;
362  std::vector<std::vector<std::vector<MonitorElement*> > > h_h1OverE_;
363  std::vector<std::vector<std::vector<MonitorElement*> > > h_h2OverE_;
364 
365  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoSigmaIetaIeta_;
366 
367  std::vector<std::vector<std::vector<MonitorElement*> > > h_nPho_;
368 
369  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoConvE_;
370  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoConvEt_;
371  std::vector<std::vector<std::vector<MonitorElement*> > > h_phoConvR9_;
372 
373  std::vector<std::vector<std::vector<MonitorElement*> > > h_nConv_;
374 
375  std::vector<std::vector<std::vector<MonitorElement*> > > h_eOverPTracks_;
376  std::vector<std::vector<std::vector<MonitorElement*> > > h_pOverETracks_;
377 
378  std::vector<std::vector<std::vector<MonitorElement*> > > h_dCotTracks_;
379 
380  std::vector<std::vector<std::vector<MonitorElement*> > > h_dPhiTracksAtVtx_;
381  std::vector<std::vector<std::vector<MonitorElement*> > > h_dPhiTracksAtEcal_;
382 
383  std::vector<std::vector<std::vector<MonitorElement*> > > h_dEtaTracksAtEcal_;
384 
385 };
386 
387 
388 
389 
390 
391 #endif
392 
393 
394 
395 
virtual void endJob()
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
type
Definition: HCALResponse.h:22
MonitorElement * h_invMassOneWithTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoEt_
MonitorElement * h_phoEt_preHLT_
std::vector< std::vector< MonitorElement * > > h_phoEta_BadChannels_
virtual void beginJob()
MonitorElement * totalNumberOfHistos_photonsFolder
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEta_
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEta_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolid_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEta_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_r9VsEta_
MonitorElement * bookHisto(std::string histoName, std::string title, int bin, double min, double max)
std::vector< std::vector< MonitorElement * > > p_sigmaIetaIetaVsEta_
std::vector< std::vector< MonitorElement * > > h_e1x5VsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoE_
MonitorElement * h_phoEta_Vertex_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEta_
std::vector< std::vector< MonitorElement * > > h_convVtxRvsZ_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEt_
std::vector< std::string > parts_
MonitorElement * h_convEta_Loose_
std::vector< std::vector< MonitorElement * > > h_phoEta_
MonitorElement * totalNumberOfHistos_efficiencyFolder
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhiForEfficiency_
int histo_index_conversions_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
MonitorElement * h_phoEta_preHLT_
#define min(a, b)
Definition: mlp_lapack.h:161
std::vector< std::vector< MonitorElement * > > h_convVtxZ_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dCotTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_hOverE_
edm::InputTag triggerEvent_
MonitorElement * h_convEt_Loose_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_pOverETracks_
void fill3DHistoVector(std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, int cut, int type, int part)
MonitorElement * totalNumberOfHistos_conversionsFolder
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvR9_
std::vector< std::vector< MonitorElement * > > h_r9VsEta_
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
MonitorElement * h_phoEt_postHLT_
std::stringstream currentFolder_
std::string barrelRecHitProducer_
std::string photonCollection_
std::vector< std::vector< MonitorElement * > > h_convVtxZEndcap_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEta_
MonitorElement * h_convEta_Tight_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEta_
std::vector< std::vector< MonitorElement * > > h_ecalSum_
std::vector< std::vector< MonitorElement * > > p_dCotTracksVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > p_hcalSumVsEt_
std::vector< std::vector< MonitorElement * > > h_scEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEt_
MonitorElement * h_invMassZeroWithTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvE_
void fill2DHistoVector(std::vector< std::vector< MonitorElement * > > &histoVector, double x, int cut, int type)
std::vector< std::vector< MonitorElement * > > h_convVtxR_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEta_
std::string fName_
std::vector< std::vector< MonitorElement * > > h_phoConvEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_eOverPTracks_
EgammaCoreTools.
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEt_
MonitorElement * h_phoEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSum_
std::vector< std::vector< MonitorElement * > > p_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
const T & max(const T &a, const T &b)
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
unsigned int prescaleFactor_
std::vector< std::string > types_
MonitorElement * totalNumberOfHistos_invMassFolder
std::vector< std::vector< std::vector< MonitorElement * > > > h_h1OverE_
DQMStore * dbe_
std::string endcapRecHitProducer_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEta_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
std::string outputFileName_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEt_
MonitorElement * h_invMassTwoWithTracks_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaIetaIeta_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_phoPhi_BadChannels_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEta_
float phiNormalization(float &a)
MonitorElement * h_phoEta_Tight_
void book3DHistoVector(std::vector< std::vector< std::vector< MonitorElement * > > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEt_
MonitorElement * h_phoEt_Loose_
std::vector< std::vector< std::vector< MonitorElement * > > > p_ecalSumVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_r9_
MonitorElement * h_invMassAllPhotons_
virtual ~PhotonAnalyzer()
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_scPhi_
virtual void endRun(const edm::Run &, const edm::EventSetup &)
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
part
Definition: HCALResponse.h:21
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEta_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_h2OverE_
std::vector< std::vector< MonitorElement * > > p_r2x5VsEta_
std::vector< std::vector< MonitorElement * > > p_r9VsEt_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEta_
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_ecalSumVsEta_
std::string barrelRecHitCollection_
std::vector< std::vector< MonitorElement * > > h_tkChi2_
std::string photonProducer_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
edm::ParameterSet parameters_
double a
Definition: hdecay.h:121
std::vector< std::vector< MonitorElement * > > h_phoConvEtaForEfficiency_
MonitorElement * h_convEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEt_
std::vector< std::vector< MonitorElement * > > p_trackPtSumHollowVsEt_
MonitorElement * h_phoEta_postHLT_
std::vector< std::vector< MonitorElement * > > h_e1x5VsEta_
MonitorElement * h_phoEta_Loose_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtEcal_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolid_
std::vector< std::vector< std::vector< MonitorElement * > > > h_nConv_
std::vector< std::vector< MonitorElement * > > h_r2x5VsEt_
x
Definition: VDTMath.h:216
std::string endcapRecHitCollection_
std::vector< std::vector< MonitorElement * > > h_phoEt_BadChannels_
std::vector< std::vector< MonitorElement * > > h_r2x5VsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoPhi_
std::vector< std::vector< MonitorElement * > > h_convVtxYvsX_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollow_
std::vector< std::vector< std::vector< MonitorElement * > > > h_nPho_
std::vector< std::vector< MonitorElement * > > h_r9VsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhi_
PhotonAnalyzer(const edm::ParameterSet &)
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEt_
Definition: Run.h:33
void book2DHistoVector(std::vector< std::vector< MonitorElement * > > &toFill, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > p_tkChi2VsEta_