00001 #ifndef PhotonValidator_H 00002 #define PhotonValidator_H 00003 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00004 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00005 #include "Geometry/CaloTopology/interface/CaloTopology.h" 00006 #include "FWCore/Framework/interface/EDAnalyzer.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "FWCore/Framework/interface/Event.h" 00009 #include "FWCore/Framework/interface/EventSetup.h" 00010 #include "FWCore/Framework/interface/ESHandle.h" 00011 #include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h" 00012 #include "SimTracker/TrackAssociation/interface/TrackAssociatorBase.h" 00013 #include "MagneticField/Engine/interface/MagneticField.h" 00014 #include "DataFormats/EgammaCandidates/interface/Photon.h" 00015 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" 00016 00017 //#include "RecoEgamma/EgammaTools/interface/ConversionLikelihoodCalculator.h" 00018 // 00019 //DQM services 00020 #include "DQMServices/Core/interface/DQMStore.h" 00021 #include "FWCore/ServiceRegistry/interface/Service.h" 00022 #include "DQMServices/Core/interface/MonitorElement.h" 00023 00024 // 00025 #include <map> 00026 #include <vector> 00038 // forward declarations 00039 class TFile; 00040 class TH1F; 00041 class TH2F; 00042 class TProfile; 00043 class TTree; 00044 class SimVertex; 00045 class SimTrack; 00046 00047 00048 00049 class PhotonValidator : public edm::EDAnalyzer 00050 { 00051 00052 public: 00053 00054 // 00055 explicit PhotonValidator( const edm::ParameterSet& ) ; 00056 virtual ~PhotonValidator(); 00057 00058 00059 virtual void analyze( const edm::Event&, const edm::EventSetup& ) ; 00060 virtual void beginJob(); 00061 virtual void beginRun( edm::Run const & r, edm::EventSetup const & theEventSetup) ; 00062 virtual void endRun (edm::Run& r, edm::EventSetup const & es); 00063 virtual void endJob() ; 00064 00065 private: 00066 // 00067 00068 float phiNormalization( float& a); 00069 float etaTransformation( float a, float b); 00070 00071 00072 std::string fName_; 00073 DQMStore *dbe_; 00074 edm::ESHandle<MagneticField> theMF_; 00075 00076 int verbosity_; 00077 int nEvt_; 00078 int nEntry_; 00079 int nSimPho_[2]; 00080 int nSimConv_[2]; 00081 int nMatched_; 00082 int nRecConv_; 00083 int nRecConvAss_; 00084 int nRecConvAssWithEcal_; 00085 00086 int nInvalidPCA_; 00087 00088 edm::ParameterSet parameters_; 00089 edm::ESHandle<CaloGeometry> theCaloGeom_; 00090 edm::ESHandle<CaloTopology> theCaloTopo_; 00091 00092 std::string photonCollectionProducer_; 00093 std::string photonCollection_; 00094 00095 edm::InputTag bcBarrelCollection_; 00096 edm::InputTag bcEndcapCollection_; 00097 00098 edm::InputTag barrelEcalHits_; 00099 edm::InputTag endcapEcalHits_; 00100 00101 edm::InputTag label_tp_; 00102 00103 00104 std::string conversionOITrackProducer_; 00105 std::string conversionIOTrackProducer_; 00106 00107 00108 00109 PhotonMCTruthFinder* thePhotonMCTruthFinder_; 00110 TrackAssociatorBase * theTrackAssociator_; 00111 00112 bool fastSim_; 00113 bool isRunCentrally_; 00114 00115 00116 double minPhoEtCut_; 00117 double convTrackMinPtCut_; 00118 double likelihoodCut_; 00119 double trkIsolExtRadius_; 00120 double trkIsolInnRadius_; 00121 double trkPtLow_; 00122 double lip_; 00123 double ecalIsolRadius_; 00124 double bcEtLow_; 00125 double hcalIsolExtRadius_; 00126 double hcalIsolInnRadius_; 00127 double hcalHitEtLow_; 00128 int numOfTracksInCone_; 00129 double trkPtSumCut_; 00130 double ecalEtSumCut_; 00131 double hcalEtSumCut_; 00132 bool dCotCutOn_; 00133 double dCotCutValue_; 00134 double dCotHardCutValue_; 00135 00136 00138 double mcPhi_; 00139 double mcEta_; 00140 double mcConvR_; 00141 double mcConvZ_; 00142 double mcConvY_; 00143 double mcConvX_; 00144 double mcConvPhi_; 00145 double mcConvEta_; 00146 double mcJetEta_; 00147 double mcJetPhi_; 00148 00149 edm::RefVector<TrackingParticleCollection> theConvTP_; 00150 // std::vector<TrackingParticleRef> theConvTP_; 00151 00152 double simMinPt_; 00153 double simMaxPt_; 00154 00156 double recMinPt_; 00157 double recMaxPt_; 00158 MonitorElement* h_nRecoVtx_; 00159 // 00160 MonitorElement* h_nSimPho_[2]; 00161 MonitorElement* h_SimPhoMotherType_[2]; 00162 MonitorElement* h_SimPhoMotherEt_[2]; 00163 MonitorElement* h_SimPhoMotherEta_[2]; 00164 MonitorElement* h_SimPhoEtaSmallR9_; 00165 // 00166 MonitorElement* h_nSimConv_[2]; 00167 MonitorElement* h_SimConvEtaPix_[2]; 00168 // 00169 MonitorElement* h_simTkPt_; 00170 MonitorElement* h_simTkEta_; 00171 00172 MonitorElement* h_simConvVtxRvsZ_[4]; 00173 MonitorElement* h_simConvVtxYvsX_; 00174 00175 00177 MonitorElement* h_SimPho_[3]; 00178 MonitorElement* h_AllSimConv_[5]; 00179 MonitorElement* h_VisSimConv_[6]; 00180 MonitorElement* h_VisSimConvLarge_; 00182 MonitorElement* h_MatchedSimPho_[3]; 00183 MonitorElement* h_MatchedSimPhoBadCh_[3]; 00184 MonitorElement* h_SimConvOneTracks_[5]; 00185 MonitorElement* h_SimConvOneMTracks_[5]; 00186 MonitorElement* h_SimConvTwoTracks_[5]; 00187 MonitorElement* h_SimConvTwoMTracks_[5]; 00188 MonitorElement* h_SimConvTwoMTracksAndVtxPGT0_[5]; 00189 MonitorElement* h_SimConvTwoMTracksAndVtxPGT0005_[5]; 00190 MonitorElement* h_SimConvTwoMTracksAndVtxPGT01_[5]; 00191 // Denominators for conversion fake rate 00192 MonitorElement* h_RecoConvTwoTracks_[5]; 00193 // Numerators for conversion fake rate 00194 MonitorElement* h_RecoConvTwoMTracks_[5]; 00195 00196 00198 MonitorElement* h_OIinnermostHitR_; 00199 MonitorElement* h_IOinnermostHitR_; 00200 MonitorElement* h_trkProv_[2]; 00201 00202 00203 MonitorElement* h_phoDEta_[2]; 00204 MonitorElement* h_phoDPhi_[2]; 00205 00206 00207 00208 MonitorElement* h_scEta_[2]; 00209 MonitorElement* h_scEtaWidth_[2]; 00210 MonitorElement* h_scPhi_[2]; 00211 MonitorElement* h_scPhiWidth_[2]; 00212 MonitorElement* h_scEtaPhi_[2]; 00213 00214 00215 MonitorElement* h_scE_[2][3]; 00216 MonitorElement* h_scEt_[2][3]; 00217 00218 MonitorElement* h_psE_; 00219 00220 MonitorElement* h_EtR9Less093_[3][3]; 00221 MonitorElement* h_r9_[3][3]; 00222 MonitorElement* h2_r9VsEta_[3]; 00223 MonitorElement* p_r9VsEta_[3]; 00224 MonitorElement* h2_r9VsEt_[3]; 00225 MonitorElement* p_r9VsEt_[3]; 00226 // 00227 MonitorElement* h_r1_[3][3]; 00228 MonitorElement* h2_r1VsEta_[3]; 00229 MonitorElement* p_r1VsEta_[3]; 00230 MonitorElement* h2_r1VsEt_[3]; 00231 MonitorElement* p_r1VsEt_[3]; 00232 // 00233 MonitorElement* h_r2_[3][3]; 00234 MonitorElement* h2_r2VsEta_[3]; 00235 MonitorElement* p_r2VsEta_[3]; 00236 MonitorElement* h2_r2VsEt_[3]; 00237 MonitorElement* p_r2VsEt_[3]; 00238 // 00239 MonitorElement* h_sigmaIetaIeta_[3][3]; 00240 MonitorElement* h2_sigmaIetaIetaVsEta_[3]; 00241 MonitorElement* p_sigmaIetaIetaVsEta_[3]; 00242 MonitorElement* h2_sigmaIetaIetaVsEt_[3]; 00243 MonitorElement* p_sigmaIetaIetaVsEt_[3]; 00244 // 00245 MonitorElement* h_hOverE_[3][3]; 00246 MonitorElement* h2_hOverEVsEta_[3]; 00247 MonitorElement* p_hOverEVsEta_[3]; 00248 MonitorElement* h2_hOverEVsEt_[3]; 00249 MonitorElement* p_hOverEVsEt_[3]; 00250 // 00251 MonitorElement* h_newhOverE_[3][3]; 00252 MonitorElement* p_newhOverEVsEta_[3]; 00253 MonitorElement* p_newhOverEVsEt_[3]; 00254 00255 00256 00257 00258 00259 // 00260 MonitorElement* h_ecalRecHitSumEtConeDR04_[3][3]; 00261 MonitorElement* h2_ecalRecHitSumEtConeDR04VsEta_[3]; 00262 MonitorElement* p_ecalRecHitSumEtConeDR04VsEta_[3]; 00263 MonitorElement* h2_ecalRecHitSumEtConeDR04VsEt_[3]; 00264 MonitorElement* p_ecalRecHitSumEtConeDR04VsEt_[3]; 00265 // 00266 MonitorElement* h_hcalTowerSumEtConeDR04_[3][3]; 00267 MonitorElement* h2_hcalTowerSumEtConeDR04VsEta_[3]; 00268 MonitorElement* p_hcalTowerSumEtConeDR04VsEta_[3]; 00269 MonitorElement* h2_hcalTowerSumEtConeDR04VsEt_[3]; 00270 MonitorElement* p_hcalTowerSumEtConeDR04VsEt_[3]; 00271 // 00272 MonitorElement* h_hcalTowerBcSumEtConeDR04_[3][3]; 00273 MonitorElement* p_hcalTowerBcSumEtConeDR04VsEta_[3]; 00274 MonitorElement* p_hcalTowerBcSumEtConeDR04VsEt_[3]; 00275 // 00276 MonitorElement* h_isoTrkSolidConeDR04_[3][3]; 00277 MonitorElement* h2_isoTrkSolidConeDR04VsEta_[3]; 00278 MonitorElement* p_isoTrkSolidConeDR04VsEta_[3]; 00279 MonitorElement* h2_isoTrkSolidConeDR04VsEt_[3]; 00280 MonitorElement* p_isoTrkSolidConeDR04VsEt_[3]; 00281 // 00282 MonitorElement* h_nTrkSolidConeDR04_[3][3]; 00283 MonitorElement* h2_nTrkSolidConeDR04VsEta_[3]; 00284 MonitorElement* p_nTrkSolidConeDR04VsEta_[3]; 00285 MonitorElement* h2_nTrkSolidConeDR04VsEt_[3]; 00286 MonitorElement* p_nTrkSolidConeDR04VsEt_[3]; 00287 // 00288 00289 MonitorElement* h_gamgamMass_[3][3]; 00290 MonitorElement* h_gamgamMassRegr1_[3][3]; 00291 MonitorElement* h_gamgamMassRegr2_[3][3]; 00292 00293 MonitorElement* h_phoE_[2][3]; 00294 MonitorElement* h_phoEt_[2][3]; 00295 MonitorElement* h_phoERes_[3][3]; 00296 00297 MonitorElement* h2_eResVsEta_[3]; 00298 MonitorElement* p_eResVsEta_[3]; 00299 MonitorElement* h2_eResVsEt_[3][3]; 00300 MonitorElement* p_eResVsEt_[3][3]; 00301 00302 MonitorElement* h2_eResVsR9_[3]; 00303 MonitorElement* p_eResVsR9_[3]; 00304 MonitorElement* h2_sceResVsR9_[3]; 00305 MonitorElement* p_sceResVsR9_[3]; 00306 00307 MonitorElement* h_phoEta_[2]; 00308 MonitorElement* h_phoPhi_[2]; 00309 00310 // Photon energies as derived from Regression1 (MIT) nd Regression2 (PF/Rishi) 00311 MonitorElement* h_phoEResRegr1_[3][3]; 00312 MonitorElement* h_phoEResRegr2_[3][3]; 00313 00314 00315 // Information from Particle Flow 00316 // Isolation 00317 MonitorElement* h_chHadIso_[3]; 00318 MonitorElement* h_nHadIso_[3]; 00319 MonitorElement* h_phoIso_[3]; 00320 // Identification 00321 MonitorElement* h_nCluOutsideMustache_[3]; 00322 MonitorElement* h_etOutsideMustache_[3]; 00323 MonitorElement* h_pfMva_[3]; 00324 00325 00327 MonitorElement* h_nConv_[2][3]; 00328 MonitorElement* h_convEta_[3]; 00329 MonitorElement* h_convPhi_[2]; 00330 MonitorElement* h_convERes_[2][3]; 00331 MonitorElement* p_eResVsR_; 00332 00333 MonitorElement* h_convPtRes_[2][3]; 00334 00335 MonitorElement* h_invMass_[2][3]; 00336 MonitorElement* h_r9VsNofTracks_[2][3]; 00337 MonitorElement* h_EoverPTracks_[2][3]; 00338 MonitorElement* h_PoverETracks_[2][3]; 00339 00340 MonitorElement* h_mvaOut_[3]; 00341 MonitorElement* h2_etaVsRsim_[3]; 00342 MonitorElement* h2_etaVsRreco_[3]; 00343 00344 MonitorElement* h2_EoverEtrueVsEoverP_[3]; 00345 MonitorElement* h2_PoverPtrueVsEoverP_[3]; 00346 00347 MonitorElement* h2_EoverPVsEta_[3]; 00348 MonitorElement* p_EoverPVsEta_[3]; 00349 MonitorElement* h2_EoverPVsR_[3]; 00350 MonitorElement* p_EoverPVsR_[3]; 00351 00352 MonitorElement* h2_EoverEtrueVsEta_[3]; 00353 MonitorElement* p_EoverEtrueVsEta_[3]; 00354 MonitorElement* h2_EoverEtrueVsR_[3]; 00355 MonitorElement* p_EoverEtrueVsR_[3]; 00356 00357 00358 MonitorElement* h2_PoverPtrueVsEta_[3]; 00359 MonitorElement* p_PoverPtrueVsEta_[3]; 00360 00361 MonitorElement* h_DPhiTracksAtVtx_[2][3]; 00362 MonitorElement* h2_DPhiTracksAtVtxVsEta_; 00363 MonitorElement* p_DPhiTracksAtVtxVsEta_; 00364 MonitorElement* h2_DPhiTracksAtVtxVsR_; 00365 MonitorElement* p_DPhiTracksAtVtxVsR_; 00366 00367 MonitorElement* h_DCotTracks_[2][3]; 00368 MonitorElement* h2_DCotTracksVsEta_; 00369 MonitorElement* p_DCotTracksVsEta_; 00370 MonitorElement* h2_DCotTracksVsR_; 00371 MonitorElement* p_DCotTracksVsR_; 00372 00373 MonitorElement* h_distMinAppTracks_[2][3]; 00374 00375 00376 00377 MonitorElement* h_DPhiTracksAtEcal_[2][3]; 00378 MonitorElement* h2_DPhiTracksAtEcalVsR_; 00379 MonitorElement* p_DPhiTracksAtEcalVsR_; 00380 MonitorElement* h2_DPhiTracksAtEcalVsEta_; 00381 MonitorElement* p_DPhiTracksAtEcalVsEta_; 00382 00383 00384 MonitorElement* h_DEtaTracksAtEcal_[2][3]; 00385 00386 00387 00388 MonitorElement* h_convVtxRvsZ_[3]; 00389 MonitorElement* h_convVtxYvsX_; 00390 MonitorElement* h_convVtxRvsZ_zoom_[2]; 00391 MonitorElement* h_convVtxYvsX_zoom_[2]; 00392 00393 MonitorElement* h_convVtxdX_; 00394 MonitorElement* h_convVtxdY_; 00395 MonitorElement* h_convVtxdZ_; 00396 MonitorElement* h_convVtxdR_; 00397 00398 MonitorElement* h_convVtxdX_barrel_; 00399 MonitorElement* h_convVtxdY_barrel_; 00400 MonitorElement* h_convVtxdZ_barrel_; 00401 MonitorElement* h_convVtxdR_barrel_; 00402 00403 MonitorElement* h_convVtxdX_endcap_; 00404 MonitorElement* h_convVtxdY_endcap_; 00405 MonitorElement* h_convVtxdZ_endcap_; 00406 MonitorElement* h_convVtxdR_endcap_; 00407 00408 MonitorElement* h_convVtxdEta_; 00409 MonitorElement* h_convVtxdPhi_; 00410 00411 00412 MonitorElement* h2_convVtxdRVsR_; 00413 MonitorElement* p_convVtxdRVsR_; 00414 MonitorElement* h2_convVtxdRVsEta_; 00415 MonitorElement* p_convVtxdRVsEta_; 00416 MonitorElement* p_convVtxdXVsX_; 00417 MonitorElement* p_convVtxdYVsY_; 00418 MonitorElement* p_convVtxdZVsZ_; 00419 00420 MonitorElement* h2_convVtxRrecVsTrue_; 00421 00422 MonitorElement* h_vtxChi2_[3]; 00423 MonitorElement* h_vtxChi2Prob_[3]; 00424 00425 00426 00427 MonitorElement* h_zPVFromTracks_[5]; 00428 MonitorElement* h_dzPVFromTracks_[5]; 00429 MonitorElement* h2_dzPVVsR_; 00430 MonitorElement* p_dzPVVsR_; 00431 MonitorElement* p_dzPVVsEta_; 00432 00433 00435 MonitorElement* p_nHitsVsEta_[2]; 00436 MonitorElement* nHitsVsEta_[2]; 00437 MonitorElement* p_nHitsVsR_[2]; 00438 MonitorElement* nHitsVsR_[2]; 00439 MonitorElement* h_tkChi2_[2]; 00440 MonitorElement* h_tkChi2Large_[2]; 00441 MonitorElement* h2_Chi2VsEta_[3]; 00442 MonitorElement* p_Chi2VsEta_[3]; 00443 MonitorElement* h2_Chi2VsR_[3]; 00444 MonitorElement* p_Chi2VsR_[3]; 00445 00446 MonitorElement* h_TkD0_[3]; 00447 00448 MonitorElement* h_TkPtPull_[3]; 00449 MonitorElement* h2_TkPtPull_[3]; 00450 MonitorElement* p_TkPtPull_[3]; 00451 MonitorElement* h2_PtRecVsPtSim_[3]; 00452 MonitorElement* h2_PtRecVsPtSimMixProv_; 00453 00454 MonitorElement* hBCEnergyOverTrackPout_[3]; 00455 00456 // ME for bkg efficiencies 00457 MonitorElement* h_SimJet_[3]; 00458 MonitorElement* h_MatchedSimJet_[3]; 00459 MonitorElement* h_MatchedSimJetBadCh_[3]; 00460 // 00461 00462 MonitorElement* h_nPho_; 00463 00464 MonitorElement* h_scBkgEta_; 00465 MonitorElement* h_scBkgPhi_; 00466 MonitorElement* h_phoBkgEta_; 00467 MonitorElement* h_phoBkgPhi_; 00468 MonitorElement* h_phoBkgDEta_; 00469 MonitorElement* h_phoBkgDPhi_; 00470 MonitorElement* h_phoBkgE_[3]; 00471 MonitorElement* h_phoBkgEt_[3]; 00472 00473 00474 MonitorElement* h_scBkgE_[3]; 00475 MonitorElement* h_scBkgEt_[3]; 00476 00477 MonitorElement* h_r9Bkg_[3]; 00478 MonitorElement* h_r1Bkg_[3]; 00479 MonitorElement* h_r2Bkg_[3]; 00480 MonitorElement* h_hOverEBkg_[3]; 00481 00482 MonitorElement* h2_r9VsEtaBkg_; 00483 MonitorElement* h2_r9VsEtBkg_; 00484 00485 MonitorElement* h2_r1VsEtaBkg_; 00486 MonitorElement* h2_r1VsEtBkg_; 00487 MonitorElement* p_r1VsEtaBkg_; 00488 MonitorElement* p_r1VsEtBkg_; 00489 00490 MonitorElement* h2_r2VsEtaBkg_; 00491 MonitorElement* h2_r2VsEtBkg_; 00492 MonitorElement* p_r2VsEtaBkg_; 00493 MonitorElement* p_r2VsEtBkg_; 00494 00495 MonitorElement* h_sigmaIetaIetaBkg_[3]; 00496 MonitorElement* h2_sigmaIetaIetaVsEtaBkg_; 00497 MonitorElement* p_sigmaIetaIetaVsEtaBkg_; 00498 MonitorElement* h2_sigmaIetaIetaVsEtBkg_[3]; 00499 MonitorElement* p_sigmaIetaIetaVsEtBkg_[3]; 00500 00501 00502 MonitorElement* h2_hOverEVsEtaBkg_; 00503 MonitorElement* h2_hOverEVsEtBkg_; 00504 MonitorElement* p_hOverEVsEtaBkg_; 00505 MonitorElement* p_hOverEVsEtBkg_; 00506 00507 00508 MonitorElement* h_ecalRecHitSumEtConeDR04Bkg_[3]; 00509 MonitorElement* h2_ecalRecHitSumEtConeDR04VsEtaBkg_; 00510 MonitorElement* p_ecalRecHitSumEtConeDR04VsEtaBkg_; 00511 MonitorElement* h2_ecalRecHitSumEtConeDR04VsEtBkg_[3]; 00512 MonitorElement* p_ecalRecHitSumEtConeDR04VsEtBkg_[3]; 00513 00514 00515 MonitorElement* h_hcalTowerSumEtConeDR04Bkg_[3]; 00516 MonitorElement* h2_hcalTowerSumEtConeDR04VsEtaBkg_; 00517 MonitorElement* p_hcalTowerSumEtConeDR04VsEtaBkg_; 00518 MonitorElement* h2_hcalTowerSumEtConeDR04VsEtBkg_[3]; 00519 MonitorElement* p_hcalTowerSumEtConeDR04VsEtBkg_[3]; 00520 00521 MonitorElement* h_isoTrkSolidConeDR04Bkg_[3]; 00522 MonitorElement* h2_isoTrkSolidConeDR04VsEtaBkg_; 00523 MonitorElement* p_isoTrkSolidConeDR04VsEtaBkg_; 00524 MonitorElement* h2_isoTrkSolidConeDR04VsEtBkg_[3]; 00525 MonitorElement* p_isoTrkSolidConeDR04VsEtBkg_[3]; 00526 // 00527 MonitorElement* h_nTrkSolidConeDR04Bkg_[3]; 00528 MonitorElement* h2_nTrkSolidConeDR04VsEtaBkg_; 00529 MonitorElement* p_nTrkSolidConeDR04VsEtaBkg_; 00530 MonitorElement* h2_nTrkSolidConeDR04VsEtBkg_[3]; 00531 MonitorElement* p_nTrkSolidConeDR04VsEtBkg_[3]; 00532 // 00533 MonitorElement* h_convEtaBkg_; 00534 MonitorElement* h_convPhiBkg_; 00535 MonitorElement* h_mvaOutBkg_[3]; 00536 MonitorElement* nHitsVsEtaBkg_; 00537 MonitorElement* h_tkChi2Bkg_; 00538 MonitorElement* h_EoverPTracksBkg_[3]; 00539 MonitorElement* h_PoverETracksBkg_[3]; 00540 MonitorElement* h_DPhiTracksAtVtxBkg_[3]; 00541 MonitorElement* h_DCotTracksBkg_[3]; 00542 MonitorElement* h_convVtxYvsXBkg_; 00543 MonitorElement* h_convVtxRvsZBkg_[2]; 00544 00545 00546 00547 class sortPhotons 00548 { 00549 public: 00550 bool operator () (const reco::Photon & lhs, const reco::Photon & rhs) 00551 { 00552 return lhs.et() > rhs.et(); 00553 } 00554 }; 00555 00556 00557 00558 }; 00559 00560 00561 00562 00563 00564 00565 00566 #endif