#include <DQMOffline/EGamma/interface/PhotonAnalyzer.h>
EgammaCoreTools.
of Notre Dame, US Jamie Antonelli, U. of Notre Dame, US
$Id: PhotonAnalyzer
Definition at line 44 of file PhotonAnalyzer.h.
PhotonAnalyzer::PhotonAnalyzer | ( | const edm::ParameterSet & | pset | ) | [explicit] |
Definition at line 70 of file PhotonAnalyzer.cc.
References barrelEcalHits_, clusEtaSize_, clusPhiSize_, clusSeedThr_, cutStep_, endcapEcalHits_, fName_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), isolationStrength_, minPhoEtCut_, numberOfSteps_, ParameterLogWeighted_, parameters_, ParameterT0_barl_, ParameterW0_, ParameterX0_, photonCollection_, photonProducer_, prescaleFactor_, seleMinvMaxPi0_, seleMinvMinPi0_, selePi0BeltDeta_, selePi0BeltDR_, selePi0Iso_, selePtGammaOne_, selePtGammaTwo_, selePtPi0_, seleS4S9GammaOne_, seleS4S9GammaTwo_, seleXtalMinEnergy_, useBinning_, and verbosity_.
00071 { 00072 00073 fName_ = pset.getUntrackedParameter<std::string>("Name"); 00074 verbosity_ = pset.getUntrackedParameter<int>("Verbosity"); 00075 00076 prescaleFactor_ = pset.getUntrackedParameter<int>("prescaleFactor",1); 00077 00078 photonProducer_ = pset.getParameter<std::string>("phoProducer"); 00079 photonCollection_ = pset.getParameter<std::string>("photonCollection"); 00080 00081 barrelEcalHits_ = pset.getParameter<edm::InputTag>("barrelEcalHits"); 00082 endcapEcalHits_ = pset.getParameter<edm::InputTag>("endcapEcalHits"); 00083 00084 minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut"); 00085 00086 cutStep_ = pset.getParameter<double>("cutStep"); 00087 numberOfSteps_ = pset.getParameter<int>("numberOfSteps"); 00088 00089 useBinning_ = pset.getParameter<bool>("useBinning"); 00090 00091 isolationStrength_ = pset.getParameter<int>("isolationStrength"); 00092 00093 // parameters for Pizero finding 00094 seleXtalMinEnergy_ = pset.getParameter<double> ("seleXtalMinEnergy"); 00095 clusSeedThr_ = pset.getParameter<double> ("clusSeedThr"); 00096 clusEtaSize_ = pset.getParameter<int> ("clusEtaSize"); 00097 clusPhiSize_ = pset.getParameter<int> ("clusPhiSize"); 00098 ParameterLogWeighted_ = pset.getParameter<bool> ("ParameterLogWeighted"); 00099 ParameterX0_ = pset.getParameter<double> ("ParameterX0"); 00100 ParameterT0_barl_ = pset.getParameter<double> ("ParameterT0_barl"); 00101 ParameterW0_ = pset.getParameter<double> ("ParameterW0"); 00102 00103 selePtGammaOne_ = pset.getParameter<double> ("selePtGammaOne"); 00104 selePtGammaTwo_ = pset.getParameter<double> ("selePtGammaTwo"); 00105 seleS4S9GammaOne_ = pset.getParameter<double> ("seleS4S9GammaOne"); 00106 seleS4S9GammaTwo_ = pset.getParameter<double> ("seleS4S9GammaTwo"); 00107 selePtPi0_ = pset.getParameter<double> ("selePtPi0"); 00108 selePi0Iso_ = pset.getParameter<double> ("selePi0Iso"); 00109 selePi0BeltDR_ = pset.getParameter<double> ("selePi0BeltDR"); 00110 selePi0BeltDeta_ = pset.getParameter<double> ("selePi0BeltDeta"); 00111 seleMinvMaxPi0_ = pset.getParameter<double> ("seleMinvMaxPi0"); 00112 seleMinvMinPi0_ = pset.getParameter<double> ("seleMinvMinPi0"); 00113 00114 parameters_ = pset; 00115 00116 00117 }
PhotonAnalyzer::~PhotonAnalyzer | ( | ) | [virtual] |
void PhotonAnalyzer::analyze | ( | const edm::Event & | e, | |
const edm::EventSetup & | esup | |||
) | [virtual] |
End loop over Reco particles
Implements edm::EDAnalyzer.
Definition at line 395 of file PhotonAnalyzer.cc.
References barrelEcalHits_, conversions_cfi::conversions, EgammaValidation_Zee_cff::cut, cutStep_, endcapEcalHits_, eta, edm::AssociationMap< Tag >::find(), edm::Event::getByLabel(), h_convVtxRvsZ_, h_dCotTracks_, h_dEtaTracksAtEcal_, h_dPhiTracksAtEcal_, h_dPhiTracksAtVtx_, h_ecalSum_, h_eOverPTracks_, h_hcalSum_, h_hOverE_, h_nConv_, h_nHitsVsEta_, h_nPho_, h_nTrackIsolHollow_, h_nTrackIsolSolid_, h_phoConvEta_, h_phoConvPhi_, h_phoDistribution_, h_phoE_, h_phoEt_, h_phoEta_, h_phoPhi_, h_r9_, h_r9VsEt_, h_tkChi2_, h_trackPtSumHollow_, h_trackPtSumSolid_, i, edm::Event::id(), edm::Ref< C, T, F >::isNonnull(), isolationStrength_, edm::InputTag::label(), makePizero(), minPhoEtCut_, nEntry_, nEvt_, numberOfSteps_, phi, phiNormalization(), photonCollection_, photonProducer_, prescaleFactor_, r9, funct::sqrt(), tracks, useBinning_, and z.
00396 { 00397 00398 using namespace edm; 00399 00400 if (nEvt_% prescaleFactor_ ) return; 00401 nEvt_++; 00402 LogInfo("PhotonAnalyzer") << "PhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; 00403 00404 00405 // Get the recontructed photons 00406 Handle<reco::PhotonCollection> photonHandle; 00407 e.getByLabel(photonProducer_, photonCollection_ , photonHandle); 00408 if ( !photonHandle.isValid()) return; 00409 const reco::PhotonCollection photonCollection = *(photonHandle.product()); 00410 00411 00412 // grab PhotonId objects 00413 Handle<reco::PhotonIDAssociationCollection> photonIDMapColl; 00414 e.getByLabel("PhotonIDProd", "PhotonAssociatedID", photonIDMapColl); 00415 if ( !photonIDMapColl.isValid()) return; 00416 const reco::PhotonIDAssociationCollection *phoMap = photonIDMapColl.product(); 00417 00418 00419 // Get EcalRecHits 00420 bool validEcalRecHits=true; 00421 Handle<EcalRecHitCollection> barrelHitHandle; 00422 EcalRecHitCollection barrelRecHits; 00423 e.getByLabel(barrelEcalHits_, barrelHitHandle); 00424 if (!barrelHitHandle.isValid()) { 00425 edm::LogError("PhotonProducer") << "Error! Can't get the product "<<barrelEcalHits_.label(); 00426 validEcalRecHits=false; 00427 } 00428 00429 Handle<EcalRecHitCollection> endcapHitHandle; 00430 e.getByLabel(endcapEcalHits_, endcapHitHandle); 00431 EcalRecHitCollection endcapRecHits; 00432 if (!endcapHitHandle.isValid()) { 00433 edm::LogError("PhotonProducer") << "Error! Can't get the product "<<endcapEcalHits_.label(); 00434 validEcalRecHits=false; 00435 } 00436 00437 00438 // get the geometry from the event setup: 00439 // esup.get<CaloGeometryRecord>().get(theCaloGeom_); 00440 00441 00442 // Create array to hold #photons/event information 00443 int nPho[100][3][3]; 00444 00445 for (int cut=0; cut!=100; ++cut){ 00446 for (int type=0; type!=3; ++type){ 00447 for (int part=0; part!=3; ++part){ 00448 nPho[cut][type][part] = 0; 00449 } 00450 } 00451 } 00452 00453 00454 int photonCounter = 0; 00455 00456 // Loop over all photons in event 00457 for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) { 00458 00459 if ((*iPho).superCluster()->energy()/cosh( (*iPho).superCluster()->eta()) < minPhoEtCut_) continue; 00460 00461 edm::Ref<reco::PhotonCollection> photonref(photonHandle, photonCounter); 00462 photonCounter++; 00463 reco::PhotonIDAssociationCollection::const_iterator photonIter = phoMap->find(photonref); 00464 const reco::PhotonIDRef &phtn = photonIter->val; 00465 00466 00467 bool phoIsInBarrel=false; 00468 bool phoIsInEndcap=false; 00469 bool phoIsInEndcapMinus=false; 00470 bool phoIsInEndcapPlus=false; 00471 float etaPho = (*iPho).superCluster()->eta(); 00472 if ( fabs(etaPho) < 1.479 ) 00473 phoIsInBarrel=true; 00474 else { 00475 phoIsInEndcap=true; 00476 if ( etaPho < 0.0 ) 00477 phoIsInEndcapMinus=true; 00478 else 00479 phoIsInEndcapPlus=true; 00480 } 00481 00482 00483 bool isIsolated=false; 00484 if ( isolationStrength_ == 1) isIsolated = (phtn)->isLooseEM(); 00485 else if ( isolationStrength_ == 2) isIsolated = (phtn)->isLoosePhoton(); 00486 else if ( isolationStrength_ == 3) isIsolated = (phtn)->isTightPhoton(); 00487 00488 int type=0; 00489 if ( isIsolated ) type=1; 00490 if ( !isIsolated ) type=2; 00491 00492 00493 nEntry_++; 00494 00495 float r9 = (phtn)->r9(); 00496 00497 for (int cut=0; cut !=numberOfSteps_; ++cut) { 00498 double Et = (*iPho).energy()/cosh( (*iPho).superCluster()->eta()); 00499 00500 bool passesCuts = false; 00501 00502 if ( useBinning_ && Et > cut*cutStep_ && ( Et < (cut+1)*cutStep_ | cut == numberOfSteps_-1 ) ){ 00503 passesCuts = true; 00504 } 00505 else if ( !useBinning_ && Et > cut*cutStep_ ){ 00506 passesCuts = true; 00507 } 00508 00509 if (passesCuts){ 00510 //filling isolation variable histograms 00511 h_nTrackIsolSolid_[cut]->Fill( (*iPho).superCluster()->eta(),(phtn)->nTrkSolidCone()); 00512 h_trackPtSumSolid_[cut]->Fill((*iPho).superCluster()->eta(), (phtn)->isolationSolidTrkCone()); 00513 00514 h_nTrackIsolHollow_[cut]->Fill( (*iPho).superCluster()->eta(),(phtn)->nTrkHollowCone()); 00515 h_trackPtSumHollow_[cut]->Fill((*iPho).superCluster()->eta(), (phtn)->isolationHollowTrkCone()); 00516 00517 h_ecalSum_[cut]->Fill((*iPho).superCluster()->eta(), (phtn)->isolationEcalRecHit()); 00518 h_hcalSum_[cut]->Fill((*iPho).superCluster()->eta(), (phtn)->isolationHcalRecHit()); 00519 00520 00521 //filling all photons histograms 00522 h_phoE_[cut][0][0]->Fill( (*iPho).energy() ); 00523 h_phoEt_[cut][0][0]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()) ); 00524 00525 h_r9_[cut][0][0]->Fill( r9 ); 00526 h_hOverE_[cut][0][0]->Fill( (*iPho).hadronicOverEm() ); 00527 00528 nPho[cut][0][0]++; 00529 h_nConv_[cut][0][0]->Fill(float( (*iPho).conversions().size() )); 00530 00531 h_phoDistribution_[cut][0][0]->Fill( (*iPho).superCluster()->phi(),(*iPho).superCluster()->eta() ); 00532 00533 h_phoEta_[cut][0]->Fill( (*iPho).superCluster()->eta() ); 00534 h_phoPhi_[cut][0]->Fill( (*iPho).superCluster()->phi() ); 00535 00536 h_r9VsEt_[cut][0]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()), r9 ); 00537 00538 00539 // iso/noniso photons histograms 00540 h_phoE_[cut][type][0]->Fill( (*iPho).energy() ); 00541 h_phoEt_[cut][type][0]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()) ); 00542 00543 h_r9_[cut][type][0]->Fill( r9 ); 00544 h_hOverE_[cut][type][0]->Fill( (*iPho).hadronicOverEm() ); 00545 00546 nPho[cut][type][0]++; 00547 h_nConv_[cut][type][0]->Fill(float( (*iPho).conversions().size() )); 00548 00549 h_phoDistribution_[cut][type][0]->Fill( (*iPho).superCluster()->phi(),(*iPho).superCluster()->eta() ); 00550 00551 h_phoEta_[cut][type]->Fill( (*iPho).superCluster()->eta() ); 00552 h_phoPhi_[cut][type]->Fill( (*iPho).superCluster()->phi() ); 00553 00554 h_r9VsEt_[cut][type]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()), r9 ); 00555 00556 00557 //filling both types of histograms for different ecal parts 00558 int part = 0; 00559 if ( phoIsInBarrel ) 00560 part = 1; 00561 if ( phoIsInEndcap ) 00562 part = 2; 00563 00564 h_phoE_[cut][0][part]->Fill( (*iPho).energy() ); 00565 h_phoEt_[cut][0][part]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()) ); 00566 00567 h_r9_[cut][0][part]->Fill( r9 ); 00568 h_hOverE_[cut][0][part]->Fill( (*iPho).hadronicOverEm() ); 00569 00570 nPho[cut][0][part]++; 00571 h_nConv_[cut][0][part]->Fill(float( (*iPho).conversions().size() )); 00572 00573 if ( phoIsInBarrel ) h_phoDistribution_[cut][0][1]->Fill( (*iPho).superCluster()->phi(),(*iPho).superCluster()->eta() ); 00574 if ( phoIsInEndcapMinus ) h_phoDistribution_[cut][0][2]->Fill( (*iPho).superCluster()->x(),(*iPho).superCluster()->y() ); 00575 if ( phoIsInEndcapPlus ) h_phoDistribution_[cut][0][3]->Fill( (*iPho).superCluster()->x(),(*iPho).superCluster()->y() ); 00576 00577 00578 h_phoE_[cut][type][part]->Fill( (*iPho).energy() ); 00579 h_phoEt_[cut][type][part]->Fill( (*iPho).energy()/ cosh( (*iPho).superCluster()->eta()) ); 00580 00581 h_r9_[cut][type][part]->Fill( r9 ); 00582 h_hOverE_[cut][type][part]->Fill( (*iPho).hadronicOverEm() ); 00583 00584 nPho[cut][type][part]++; 00585 h_nConv_[cut][type][part]->Fill(float( (*iPho).conversions().size() )); 00586 00587 if ( phoIsInBarrel ) h_phoDistribution_[cut][type][1]->Fill( (*iPho).superCluster()->phi(),(*iPho).superCluster()->eta() ); 00588 if ( phoIsInEndcapMinus ) h_phoDistribution_[cut][type][2]->Fill( (*iPho).superCluster()->x(),(*iPho).superCluster()->y() ); 00589 if ( phoIsInEndcapPlus ) h_phoDistribution_[cut][type][3]->Fill( (*iPho).superCluster()->x(),(*iPho).superCluster()->y() ); 00590 00591 //loop over conversions 00592 00593 std::vector<reco::ConversionRef> conversions = (*iPho).conversions(); 00594 for (unsigned int iConv=0; iConv<conversions.size(); iConv++) { 00595 00596 reco::ConversionRef aConv=conversions[iConv]; 00597 00598 h_phoConvEta_[cut][0]->Fill( conversions[iConv]->caloCluster()[0]->eta() ); 00599 h_phoConvPhi_[cut][0]->Fill( conversions[iConv]->caloCluster()[0]->phi() ); 00600 h_phoConvEta_[cut][type]->Fill( conversions[iConv]->caloCluster()[0]->eta() ); 00601 h_phoConvPhi_[cut][type]->Fill( conversions[iConv]->caloCluster()[0]->phi() ); 00602 00603 00604 if ( conversions[iConv]->conversionVertex().isValid() ) { 00605 00606 h_convVtxRvsZ_[cut][0] ->Fill ( fabs (conversions[iConv]->conversionVertex().position().z() ), 00607 sqrt(conversions[iConv]->conversionVertex().position().perp2()) ) ; 00608 h_convVtxRvsZ_[cut][type] ->Fill ( fabs (conversions[iConv]->conversionVertex().position().z() ), 00609 sqrt(conversions[iConv]->conversionVertex().position().perp2()) ) ; 00610 } 00611 00612 00613 std::vector<reco::TrackRef> tracks = conversions[iConv]->tracks(); 00614 00615 for (unsigned int i=0; i<tracks.size(); i++) { 00616 h_tkChi2_[cut][0] ->Fill (tracks[i]->normalizedChi2()) ; 00617 h_tkChi2_[cut][type] ->Fill (tracks[i]->normalizedChi2()) ; 00618 h_nHitsVsEta_[cut][0]->Fill( conversions[iConv]->caloCluster()[0]->eta(), float(tracks[i]->numberOfValidHits() ) ); 00619 h_nHitsVsEta_[cut][type]->Fill( conversions[iConv]->caloCluster()[0]->eta(), float(tracks[i]->numberOfValidHits() ) ); 00620 } 00621 00622 float DPhiTracksAtVtx = -99; 00623 float dPhiTracksAtEcal= -99; 00624 float dEtaTracksAtEcal= -99; 00625 00626 00627 if ( tracks.size() > 1 ) { 00628 float phiTk1= tracks[0]->innerMomentum().phi(); 00629 float phiTk2= tracks[1]->innerMomentum().phi(); 00630 DPhiTracksAtVtx = phiTk1-phiTk2; 00631 DPhiTracksAtVtx = phiNormalization( DPhiTracksAtVtx ); 00632 } 00633 00634 00635 if (aConv->bcMatchingWithTracks()[0].isNonnull() && aConv->bcMatchingWithTracks()[1].isNonnull() ) { 00636 float recoPhi1 = aConv->ecalImpactPosition()[0].phi(); 00637 float recoPhi2 = aConv->ecalImpactPosition()[1].phi(); 00638 float recoEta1 = aConv->ecalImpactPosition()[0].eta(); 00639 float recoEta2 = aConv->ecalImpactPosition()[1].eta(); 00640 00641 recoPhi1 = phiNormalization(recoPhi1); 00642 recoPhi2 = phiNormalization(recoPhi2); 00643 00644 dPhiTracksAtEcal = recoPhi1 -recoPhi2; 00645 dPhiTracksAtEcal = phiNormalization( dPhiTracksAtEcal ); 00646 dEtaTracksAtEcal = recoEta1 -recoEta2; 00647 00648 } 00649 00650 h_eOverPTracks_[cut][0][0] ->Fill( conversions[iConv]->EoverP() ) ; 00651 h_eOverPTracks_[cut][type][0] ->Fill( conversions[iConv]->EoverP() ) ; 00652 h_dCotTracks_[cut][0][0] ->Fill ( conversions[iConv]->pairCotThetaSeparation() ); 00653 h_dCotTracks_[cut][type][0] ->Fill ( conversions[iConv]->pairCotThetaSeparation() ); 00654 h_dPhiTracksAtVtx_[cut][0][0]->Fill( DPhiTracksAtVtx); 00655 h_dPhiTracksAtVtx_[cut][type][0]->Fill( DPhiTracksAtVtx); 00656 h_dPhiTracksAtEcal_[cut][0][0]->Fill( fabs(dPhiTracksAtEcal)); 00657 h_dPhiTracksAtEcal_[cut][type][0]->Fill( fabs(dPhiTracksAtEcal)); 00658 h_dEtaTracksAtEcal_[cut][0][0]->Fill( dEtaTracksAtEcal); 00659 h_dEtaTracksAtEcal_[cut][type][0]->Fill( dEtaTracksAtEcal); 00660 00661 //filling both types of histograms for different ecal parts 00662 int part = 0; 00663 if ( phoIsInBarrel ) part = 1; 00664 if ( phoIsInEndcap ) part = 2; 00665 00666 h_eOverPTracks_[cut][0][part] ->Fill( conversions[iConv]->EoverP() ) ; 00667 h_eOverPTracks_[cut][type][part] ->Fill( conversions[iConv]->EoverP() ) ; 00668 h_dCotTracks_[cut][0][part] ->Fill ( conversions[iConv]->pairCotThetaSeparation() ); 00669 h_dCotTracks_[cut][type][part] ->Fill ( conversions[iConv]->pairCotThetaSeparation() ); 00670 h_dPhiTracksAtVtx_[cut][0][part]->Fill( DPhiTracksAtVtx); 00671 h_dPhiTracksAtVtx_[cut][type][part]->Fill( DPhiTracksAtVtx); 00672 h_dPhiTracksAtEcal_[cut][0][part]->Fill( fabs(dPhiTracksAtEcal)); 00673 h_dPhiTracksAtEcal_[cut][type][part]->Fill( fabs(dPhiTracksAtEcal)); 00674 h_dEtaTracksAtEcal_[cut][0][part]->Fill( dEtaTracksAtEcal); 00675 h_dEtaTracksAtEcal_[cut][type][part]->Fill( dEtaTracksAtEcal); 00676 00677 00678 00679 }//end loop over conversions 00680 00681 } 00682 } 00683 00684 } 00685 00686 //filling number of photons per event histograms 00687 for (int cut=0; cut !=numberOfSteps_; ++cut) { 00688 for(int type=0;type!=3;++type){ 00689 for(int part=0;part!=3;++part){ 00690 h_nPho_[cut][type][part]-> Fill (float(nPho[cut][type][part])); 00691 } 00692 } 00693 } 00694 00695 if (validEcalRecHits) makePizero(esup, barrelHitHandle, endcapHitHandle); 00696 00697 00698 00699 00700 }
void PhotonAnalyzer::beginJob | ( | const edm::EventSetup & | setup | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 129 of file PhotonAnalyzer.cc.
References DQMStore::book1D(), DQMStore::book2D(), currentFolder_, EgammaValidation_Zee_cff::cut, cutStep_, dbe_, gen_hydjet_hard_muon_trigger_cfg::etaMax, gen_hydjet_hard_muon_trigger_cfg::etaMin, edm::ParameterSet::getParameter(), h_convVtxRvsZ_, h_convVtxRvsZ_isol_, h_dCotTracks_, h_dCotTracks_isol_, h_dCotTracks_part_, h_dEtaTracksAtEcal_, h_dEtaTracksAtEcal_isol_, h_dEtaTracksAtEcal_part_, h_dPhiTracksAtEcal_, h_dPhiTracksAtEcal_isol_, h_dPhiTracksAtEcal_part_, h_dPhiTracksAtVtx_, h_dPhiTracksAtVtx_isol_, h_dPhiTracksAtVtx_part_, h_ecalSum_, h_eOverPTracks_, h_eOverPTracks_isol_, h_eOverPTracks_part_, h_hcalSum_, h_hOverE_, h_hOverE_isol_, h_hOverE_part_, h_nConv_, h_nConv_isol_, h_nConv_part_, h_nHitsVsEta_, h_nHitsVsEta_isol_, h_nPho_, h_nPho_isol_, h_nPho_part_, h_nTrackIsolHollow_, h_nTrackIsolSolid_, h_phoConvEta_, h_phoConvEta_isol_, h_phoConvPhi_, h_phoConvPhi_isol_, h_phoDistribution_, h_phoDistribution_isol_, h_phoDistribution_part_, h_phoE_, h_phoE_isol_, h_phoE_part_, h_phoEt_, h_phoEt_isol_, h_phoEt_part_, h_phoEta_, h_phoEta_isol_, h_phoPhi_, h_phoPhi_isol_, h_r9_, h_r9_isol_, h_r9_part_, h_r9VsEt_, h_r9VsEt_isol_, h_tkChi2_, h_tkChi2_isol_, h_trackPtSumHollow_, h_trackPtSumSolid_, hIsoPi0EB_, hMinvPi0EB_, hPt1Pi0EB_, hPt2Pi0EB_, hPtPi0EB_, nEntry_, nEvt_, numberOfSteps_, p_ecalSum_, p_efficiencyVsEt_, p_efficiencyVsEta_, p_hcalSum_, p_nHitsVsEta_, p_nHitsVsEta_isol_, p_nTrackIsolHollow_, p_nTrackIsolSolid_, p_r9VsEt_, p_r9VsEt_isol_, p_trackPtSumHollow_, p_trackPtSumSolid_, parameters_, MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), DQMStore::setVerbose(), DQMStore::showDirStructure(), and verbosity_.
00130 { 00131 00132 00133 nEvt_=0; 00134 nEntry_=0; 00135 00136 dbe_ = 0; 00137 dbe_ = edm::Service<DQMStore>().operator->(); 00138 00139 00140 00141 if (dbe_) { 00142 if (verbosity_ > 0 ) { 00143 dbe_->setVerbose(1); 00144 } else { 00145 dbe_->setVerbose(0); 00146 } 00147 } 00148 if (dbe_) { 00149 if (verbosity_ > 0 ) dbe_->showDirStructure(); 00150 } 00151 00152 00153 00154 double eMin = parameters_.getParameter<double>("eMin"); 00155 double eMax = parameters_.getParameter<double>("eMax"); 00156 int eBin = parameters_.getParameter<int>("eBin"); 00157 00158 double etMin = parameters_.getParameter<double>("etMin"); 00159 double etMax = parameters_.getParameter<double>("etMax"); 00160 int etBin = parameters_.getParameter<int>("etBin"); 00161 00162 double etaMin = parameters_.getParameter<double>("etaMin"); 00163 double etaMax = parameters_.getParameter<double>("etaMax"); 00164 int etaBin = parameters_.getParameter<int>("etaBin"); 00165 00166 double phiMin = parameters_.getParameter<double>("phiMin"); 00167 double phiMax = parameters_.getParameter<double>("phiMax"); 00168 int phiBin = parameters_.getParameter<int>("phiBin"); 00169 00170 00171 double r9Min = parameters_.getParameter<double>("r9Min"); 00172 double r9Max = parameters_.getParameter<double>("r9Max"); 00173 int r9Bin = parameters_.getParameter<int>("r9Bin"); 00174 00175 double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin"); 00176 double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax"); 00177 int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin"); 00178 00179 double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin"); 00180 double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax"); 00181 int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin"); 00182 00183 00184 vector<string> parts; 00185 parts.push_back("AllEcal"); 00186 parts.push_back("Barrel"); 00187 parts.push_back("Endcaps"); 00188 00189 00190 vector<string> types; 00191 types.push_back("All"); 00192 types.push_back("Isolated"); 00193 types.push_back("Nonisolated"); 00194 00195 //booking all histograms 00196 00197 if (dbe_) { 00198 00199 00200 for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values 00201 00202 00203 // Isolation Variable infos 00204 00205 currentFolder_.str(""); 00206 currentFolder_ << "Egamma/PhotonAnalyzer/IsolationVariables/Et above " << cut*cutStep_ << " GeV"; 00207 dbe_->setCurrentFolder(currentFolder_.str()); 00208 00209 h_nTrackIsolSolid_.push_back(dbe_->book2D("nIsoTracksSolid2D","Avg Number Of Tracks in the Solid Iso Cone",etaBin,etaMin, etaMax,10,-0.5, 9.5)); 00210 h_trackPtSumSolid_.push_back(dbe_->book2D("isoPtSumSolid2D","Avg Tracks Pt Sum in the Solid Iso Cone",etaBin,etaMin, etaMax,100,0., 20.)); 00211 h_nTrackIsolHollow_.push_back(dbe_->book2D("nIsoTracksHollow2D","Avg Number Of Tracks in the Hollow Iso Cone",etaBin,etaMin, etaMax,10,-0.5, 9.5)); 00212 h_trackPtSumHollow_.push_back(dbe_->book2D("isoPtSumHollow2D","Avg Tracks Pt Sum in the Hollow Iso Cone",etaBin,etaMin, etaMax,100,0., 20.)); 00213 h_ecalSum_.push_back(dbe_->book2D("ecalSum2D","Avg Ecal Sum in the Iso Cone",etaBin,etaMin, etaMax,100,0., 20.)); 00214 h_hcalSum_.push_back(dbe_->book2D("hcalSum2D","Avg Hcal Sum in the Iso Cone",etaBin,etaMin, etaMax,100,0., 20.)); 00215 p_nTrackIsolSolid_.push_back(dbe_->book1D("nIsoTracksSolid","Avg Number Of Tracks in the Solid Iso Cone",etaBin,etaMin, etaMax)); 00216 p_trackPtSumSolid_.push_back(dbe_->book1D("isoPtSumSolid","Avg Tracks Pt Sum in the Solid Iso Cone",etaBin,etaMin, etaMax)); 00217 p_nTrackIsolHollow_.push_back(dbe_->book1D("nIsoTracksHollow","Avg Number Of Tracks in the Hollow Iso Cone",etaBin,etaMin, etaMax)); 00218 p_trackPtSumHollow_.push_back(dbe_->book1D("isoPtSumHollow","Avg Tracks Pt Sum in the Hollow Iso Cone",etaBin,etaMin, etaMax)); 00219 p_ecalSum_.push_back(dbe_->book1D("ecalSum","Avg Ecal Sum in the Iso Cone",etaBin,etaMin, etaMax)); 00220 p_hcalSum_.push_back(dbe_->book1D("hcalSum","Avg Hcal Sum in the Iso Cone",etaBin,etaMin, etaMax)); 00221 00222 //Efficiency histograms 00223 00224 p_efficiencyVsEta_.push_back(dbe_->book1D("EfficiencyVsEta","Fraction of isolated Photons vs. Eta",etaBin,etaMin, etaMax)); 00225 p_efficiencyVsEt_.push_back(dbe_->book1D("EfficiencyVsEt","Fraction of isolated Photons vs. Et",etBin,etMin, etMax)); 00226 00227 00228 // Photon histograms 00229 00230 for(int type=0;type!=3;++type){ //looping over isolation type 00231 00232 currentFolder_.str(""); 00233 currentFolder_ << "Egamma/PhotonAnalyzer/" << types[type] << "Photons/Et above " << cut*cutStep_ << " GeV"; 00234 dbe_->setCurrentFolder(currentFolder_.str()); 00235 00236 for(int part=0;part!=3;++part){ //loop over different parts of the ecal 00237 00238 h_phoE_part_.push_back(dbe_->book1D("phoE"+parts[part],types[type]+" Photon Energy: "+parts[part], eBin,eMin, eMax)); 00239 h_phoEt_part_.push_back(dbe_->book1D("phoEt"+parts[part],types[type]+" Photon Transverse Energy: "+parts[part], etBin,etMin, etMax)); 00240 h_r9_part_.push_back(dbe_->book1D("r9"+parts[part],types[type]+" Photon r9: "+parts[part],r9Bin,r9Min, r9Max)); 00241 h_hOverE_part_.push_back(dbe_->book1D("hOverE"+parts[part],types[type]+" Photon H/E: "+parts[part],r9Bin,r9Min, 1)); 00242 h_nPho_part_.push_back(dbe_->book1D("nPho"+parts[part],"Number of "+types[type]+" Photons per Event: "+parts[part], 10,-0.5,9.5)); 00243 } 00244 00245 h_phoDistribution_part_.push_back(dbe_->book2D("DistributionAllEcal","Distribution of "+types[type]+" Photons in Eta/Phi: AllEcal",phiBin,phiMin,phiMax,etaBin,-2.5,2.5)); 00246 h_phoDistribution_part_.push_back(dbe_->book2D("DistributionBarrel","Distribution of "+types[type]+" Photons in Eta/Phi: Barrel",360,phiMin,phiMax,170,-1.5,1.5)); 00247 h_phoDistribution_part_.push_back(dbe_->book2D("DistributionEndcapMinus","Distribution of "+types[type]+" Photons in X/Y: EndcapMinus",100,-150,150,100,-150,150)); 00248 h_phoDistribution_part_.push_back(dbe_->book2D("DistributionEndcapPlus","Distribution of "+types[type]+" Photons in X/Y: EndcapPlus",100,-150,150,100,-150,150)); 00249 00250 h_phoE_isol_.push_back(h_phoE_part_); 00251 h_phoE_part_.clear(); 00252 h_phoEt_isol_.push_back(h_phoEt_part_); 00253 h_phoEt_part_.clear(); 00254 h_r9_isol_.push_back(h_r9_part_); 00255 h_r9_part_.clear(); 00256 h_hOverE_isol_.push_back(h_hOverE_part_); 00257 h_hOverE_part_.clear(); 00258 h_nPho_isol_.push_back(h_nPho_part_); 00259 h_nPho_part_.clear(); 00260 00261 h_phoDistribution_isol_.push_back(h_phoDistribution_part_); 00262 h_phoDistribution_part_.clear(); 00263 00264 h_phoEta_isol_.push_back(dbe_->book1D("phoEta",types[type]+" Photon Eta ",etaBin,etaMin, etaMax)) ; 00265 h_phoPhi_isol_.push_back(dbe_->book1D("phoPhi",types[type]+" Photon Phi ",phiBin,phiMin,phiMax)) ; 00266 h_r9VsEt_isol_.push_back(dbe_->book2D("r9VsEt2D",types[type]+" Photon r9 vs. Transverse Energy",etBin,etMin,etMax,r9Bin,r9Min,r9Max)); 00267 p_r9VsEt_isol_.push_back(dbe_->book1D("r9VsEt",types[type]+" Photon r9 vs. Transverse Energy",etBin,etMin,etMax)); 00268 00269 00270 } 00271 00272 h_phoE_.push_back(h_phoE_isol_); 00273 h_phoE_isol_.clear(); 00274 h_phoEt_.push_back(h_phoEt_isol_); 00275 h_phoEt_isol_.clear(); 00276 h_r9_.push_back(h_r9_isol_); 00277 h_r9_isol_.clear(); 00278 h_hOverE_.push_back(h_hOverE_isol_); 00279 h_hOverE_isol_.clear(); 00280 h_nPho_.push_back(h_nPho_isol_); 00281 h_nPho_isol_.clear(); 00282 00283 h_phoDistribution_.push_back(h_phoDistribution_isol_); 00284 h_phoDistribution_isol_.clear(); 00285 00286 h_phoEta_.push_back(h_phoEta_isol_); 00287 h_phoEta_isol_.clear(); 00288 h_phoPhi_.push_back(h_phoPhi_isol_); 00289 h_phoPhi_isol_.clear(); 00290 h_r9VsEt_.push_back(h_r9VsEt_isol_); 00291 h_r9VsEt_isol_.clear(); 00292 p_r9VsEt_.push_back(p_r9VsEt_isol_); 00293 p_r9VsEt_isol_.clear(); 00294 00295 00296 00297 //conversion plots 00298 00299 for(int type=0;type!=3;++type){ //looping over isolation type 00300 00301 currentFolder_.str(""); 00302 currentFolder_ << "Egamma/PhotonAnalyzer/" << types[type] << "Photons/Et above " << cut*cutStep_ << " GeV/Conversions"; 00303 dbe_->setCurrentFolder(currentFolder_.str()); 00304 00305 for(int part=0;part!=3;++part){ //loop over different parts of the ecal 00306 00307 h_nConv_part_.push_back(dbe_->book1D("nConv"+parts[part],"Number Of Conversions per Event: "+parts[part] ,10,-0.5, 9.5)); 00308 h_eOverPTracks_part_.push_back(dbe_->book1D("eOverPTracks"+parts[part],"E/P of Conversions: "+parts[part] ,100, 0., 5.)); 00309 00310 h_dPhiTracksAtVtx_part_.push_back(dbe_->book1D("dPhiTracksAtVtx"+parts[part], " #delta#phi of Conversion Tracks at Vertex: "+parts[part],dPhiTracksBin,dPhiTracksMin,dPhiTracksMax)); 00311 h_dCotTracks_part_.push_back(dbe_->book1D("dCotTracks"+parts[part],"#delta cotg(#Theta) of Conversion Tracks: "+parts[part],dEtaTracksBin,dEtaTracksMin,dEtaTracksMax)); 00312 00313 h_dPhiTracksAtEcal_part_.push_back(dbe_->book1D("dPhiTracksAtEcal"+parts[part], " #delta#phi of Conversion Tracks at Ecal: "+parts[part],dPhiTracksBin,0.,dPhiTracksMax)); 00314 h_dEtaTracksAtEcal_part_.push_back(dbe_->book1D("dEtaTracksAtEcal"+parts[part], " #delta#eta of Conversion Tracks at Ecal: "+parts[part],dEtaTracksBin,dEtaTracksMin,dEtaTracksMax)); 00315 } 00316 00317 h_nConv_isol_.push_back(h_nConv_part_); 00318 h_nConv_part_.clear(); 00319 h_eOverPTracks_isol_.push_back(h_eOverPTracks_part_); 00320 h_eOverPTracks_part_.clear(); 00321 h_dPhiTracksAtVtx_isol_.push_back(h_dPhiTracksAtVtx_part_); 00322 h_dPhiTracksAtVtx_part_.clear(); 00323 h_dCotTracks_isol_.push_back(h_dCotTracks_part_); 00324 h_dCotTracks_part_.clear(); 00325 h_dPhiTracksAtEcal_isol_.push_back(h_dPhiTracksAtEcal_part_); 00326 h_dPhiTracksAtEcal_part_.clear(); 00327 h_dEtaTracksAtEcal_isol_.push_back(h_dEtaTracksAtEcal_part_); 00328 h_dEtaTracksAtEcal_part_.clear(); 00329 00330 00331 h_phoConvEta_isol_.push_back(dbe_->book1D("phoConvEta",types[type]+" Converted Photon Eta ",etaBin,etaMin, etaMax)) ; 00332 h_phoConvPhi_isol_.push_back(dbe_->book1D("phoConvPhi",types[type]+" Converted Photon Phi ",phiBin,phiMin,phiMax)) ; 00333 h_convVtxRvsZ_isol_.push_back(dbe_->book2D("convVtxRvsZ",types[type]+" Photon Reco conversion vtx position",100, 0., 280.,200,0., 120.)); 00334 h_nHitsVsEta_isol_.push_back(dbe_->book2D("nHitsVsEta2D",types[type]+" Photons: Tracks from conversions: Mean Number of Hits vs Eta",etaBin,etaMin, etaMax,etaBin,0, 16)); 00335 p_nHitsVsEta_isol_.push_back(dbe_->book1D("nHitsVsEta",types[type]+" Photons: Tracks from conversions: Mean Number of Hits vs Eta",etaBin,etaMin, etaMax)); 00336 h_tkChi2_isol_.push_back(dbe_->book1D("tkChi2",types[type]+" Photons: Tracks from conversions: #chi^{2} of all tracks", 100, 0., 20.0)); 00337 } 00338 00339 h_nConv_.push_back(h_nConv_isol_); 00340 h_nConv_isol_.clear(); 00341 h_eOverPTracks_.push_back(h_eOverPTracks_isol_); 00342 h_eOverPTracks_isol_.clear(); 00343 h_dPhiTracksAtVtx_.push_back(h_dPhiTracksAtVtx_isol_); 00344 h_dPhiTracksAtVtx_isol_.clear(); 00345 h_dCotTracks_.push_back(h_dCotTracks_isol_); 00346 h_dCotTracks_isol_.clear(); 00347 h_dPhiTracksAtEcal_.push_back(h_dPhiTracksAtEcal_isol_); 00348 h_dPhiTracksAtEcal_isol_.clear(); 00349 h_dEtaTracksAtEcal_.push_back(h_dEtaTracksAtEcal_isol_); 00350 h_dEtaTracksAtEcal_isol_.clear(); 00351 00352 h_phoConvEta_.push_back(h_phoConvEta_isol_); 00353 h_phoConvEta_isol_.clear(); 00354 h_phoConvPhi_.push_back(h_phoConvPhi_isol_); 00355 h_phoConvPhi_isol_.clear(); 00356 h_convVtxRvsZ_.push_back(h_convVtxRvsZ_isol_); 00357 h_convVtxRvsZ_isol_.clear(); 00358 h_tkChi2_.push_back(h_tkChi2_isol_); 00359 h_tkChi2_isol_.clear(); 00360 h_nHitsVsEta_.push_back(h_nHitsVsEta_isol_); 00361 h_nHitsVsEta_isol_.clear(); 00362 p_nHitsVsEta_.push_back(p_nHitsVsEta_isol_); 00363 p_nHitsVsEta_isol_.clear(); 00364 00365 } 00366 00367 00368 currentFolder_.str(""); 00369 currentFolder_ << "Egamma/PhotonAnalyzer/PiZero"; 00370 dbe_->setCurrentFolder(currentFolder_.str()); 00371 00372 hMinvPi0EB_ = dbe_->book1D("Pi0InvmassEB","Pi0 Invariant Mass in EB",100,0.,0.5); 00373 hMinvPi0EB_->setAxisTitle("Inv Mass [GeV] ",1); 00374 00375 hPt1Pi0EB_ = dbe_->book1D("Pt1Pi0EB","Pt 1st most energetic Pi0 photon in EB",100,0.,20.); 00376 hPt1Pi0EB_->setAxisTitle("1st photon Pt [GeV] ",1); 00377 00378 hPt2Pi0EB_ = dbe_->book1D("Pt2Pi0EB","Pt 2nd most energetic Pi0 photon in EB",100,0.,20.); 00379 hPt2Pi0EB_->setAxisTitle("2nd photon Pt [GeV] ",1); 00380 00381 hPtPi0EB_ = dbe_->book1D("PtPi0EB","Pi0 Pt in EB",100,0.,20.); 00382 hPtPi0EB_->setAxisTitle("Pi0 Pt [GeV] ",1); 00383 00384 hIsoPi0EB_ = dbe_->book1D("IsoPi0EB","Pi0 Iso in EB",50,0.,1.); 00385 hIsoPi0EB_->setAxisTitle("Pi0 Iso",1); 00386 00387 00388 } 00389 00390 00391 }
void PhotonAnalyzer::dividePlots | ( | MonitorElement * | dividend, | |
MonitorElement * | numerator, | |||
MonitorElement * | denominator | |||
) | [private] |
Definition at line 1075 of file PhotonAnalyzer.cc.
References err, MonitorElement::getBinContent(), MonitorElement::getNbinsX(), j, MonitorElement::setBinContent(), MonitorElement::setBinError(), funct::sqrt(), and value.
Referenced by endJob().
01075 { 01076 double value,err; 01077 for (int j=1; j<=numerator->getNbinsX(); j++){ 01078 if (denominator->getBinContent(j)!=0){ 01079 value = ((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j)); 01080 err = sqrt( value*(1-value) / ((double) denominator->getBinContent(j)) ); 01081 dividend->setBinContent(j, value); 01082 dividend->setBinError(j,err); 01083 } 01084 else { 01085 dividend->setBinContent(j, 0); 01086 } 01087 } 01088 }
void PhotonAnalyzer::doProfileX | ( | MonitorElement * | th2m, | |
MonitorElement * | me | |||
) | [private] |
Definition at line 1068 of file PhotonAnalyzer.cc.
References doProfileX(), and MonitorElement::getTH2F().
01068 { 01069 doProfileX(th2m->getTH2F(), me); 01070 }
void PhotonAnalyzer::doProfileX | ( | TH2 * | th2, | |
MonitorElement * | me | |||
) | [private] |
Definition at line 1055 of file PhotonAnalyzer.cc.
References Exception, MonitorElement::getNbinsX(), h1, MonitorElement::setBinContent(), and MonitorElement::setBinError().
Referenced by doProfileX(), and endJob().
01055 { 01056 if (th2->GetNbinsX()==me->getNbinsX()){ 01057 TH1F * h1 = (TH1F*) th2->ProfileX(); 01058 for (int bin=0;bin!=h1->GetNbinsX();bin++){ 01059 me->setBinContent(bin+1,h1->GetBinContent(bin+1)); 01060 me->setBinError(bin+1,h1->GetBinError(bin+1)); 01061 } 01062 delete h1; 01063 } else { 01064 throw cms::Exception("PhotonAnalyzer") << "Different number of bins!"; 01065 } 01066 }
Reimplemented from edm::EDAnalyzer.
Definition at line 952 of file PhotonAnalyzer.cc.
References currentFolder_, EgammaValidation_Zee_cff::cut, cutStep_, dbe_, dividePlots(), doProfileX(), edm::getName(), edm::ParameterSet::getParameter(), h_ecalSum_, h_hcalSum_, h_nHitsVsEta_, h_nTrackIsolHollow_, h_nTrackIsolSolid_, h_phoEt_, h_phoEta_, h_r9VsEt_, h_trackPtSumHollow_, h_trackPtSumSolid_, nEvt_, numberOfSteps_, iggi_31X_cfg::outputFileName, p_ecalSum_, p_efficiencyVsEt_, p_efficiencyVsEta_, p_hcalSum_, p_nHitsVsEta_, p_nTrackIsolHollow_, p_nTrackIsolSolid_, p_r9VsEt_, p_trackPtSumHollow_, p_trackPtSumSolid_, parameters_, DQMStore::removeElement(), DQMStore::save(), and DQMStore::setCurrentFolder().
00953 { 00954 00955 vector<string> types; 00956 types.push_back("All"); 00957 types.push_back("Isolated"); 00958 types.push_back("Nonisolated"); 00959 00960 00961 for (int cut=0; cut !=numberOfSteps_; ++cut) { 00962 00963 //making efficiency plots 00964 00965 MonitorElement * EtaNum = h_phoEta_[cut][1]; 00966 MonitorElement * EtaDen = h_phoEta_[cut][0]; 00967 dividePlots(p_efficiencyVsEta_[cut],EtaNum,EtaDen); 00968 00969 MonitorElement * EtNum = h_phoEt_[cut][1][0]; 00970 MonitorElement * EtDen = h_phoEt_[cut][0][0]; 00971 dividePlots(p_efficiencyVsEt_[cut],EtNum,EtDen); 00972 00973 00974 //making isolation variable profiles 00975 00976 doProfileX( h_nTrackIsolSolid_[cut], p_nTrackIsolSolid_[cut]); 00977 doProfileX( h_trackPtSumSolid_[cut], p_trackPtSumSolid_[cut]); 00978 doProfileX( h_nTrackIsolHollow_[cut], p_nTrackIsolHollow_[cut]); 00979 doProfileX( h_trackPtSumHollow_[cut], p_trackPtSumHollow_[cut]); 00980 doProfileX( h_ecalSum_[cut], p_ecalSum_[cut]); 00981 doProfileX( h_hcalSum_[cut], p_hcalSum_[cut]); 00982 00983 00984 //removing unneeded plots 00985 00986 currentFolder_.str(""); 00987 currentFolder_ << "Egamma/PhotonAnalyzer/IsolationVariables/Et above " << cut*cutStep_ << " GeV"; 00988 dbe_->setCurrentFolder(currentFolder_.str()); 00989 00990 dbe_->removeElement(h_nTrackIsolSolid_[cut]->getName()); 00991 dbe_->removeElement(h_trackPtSumSolid_[cut]->getName()); 00992 dbe_->removeElement(h_nTrackIsolHollow_[cut]->getName()); 00993 dbe_->removeElement(h_trackPtSumHollow_[cut]->getName()); 00994 dbe_->removeElement(h_ecalSum_[cut]->getName()); 00995 dbe_->removeElement(h_hcalSum_[cut]->getName()); 00996 00997 for(int type=0;type!=3;++type){ 00998 doProfileX( h_nHitsVsEta_[cut][type], p_nHitsVsEta_[cut][type]); 00999 doProfileX( h_r9VsEt_[cut][type], p_r9VsEt_[cut][type]); 01000 currentFolder_.str(""); 01001 currentFolder_ << "Egamma/PhotonAnalyzer/" << types[type] << "Photons/Et above " << cut*cutStep_ << " GeV"; 01002 dbe_->setCurrentFolder(currentFolder_.str()); 01003 dbe_->removeElement("r9VsEt2D"); 01004 currentFolder_ << "/Conversions"; 01005 dbe_->setCurrentFolder(currentFolder_.str()); 01006 dbe_->removeElement("nHitsVsEta2D"); 01007 } 01008 01009 01010 01011 01012 } 01013 01014 01015 01016 01017 01018 01019 bool outputMEsInRootFile = parameters_.getParameter<bool>("OutputMEsInRootFile"); 01020 std::string outputFileName = parameters_.getParameter<std::string>("OutputFileName"); 01021 if(outputMEsInRootFile){ 01022 dbe_->save(outputFileName); 01023 } 01024 01025 edm::LogInfo("PhotonAnalyzer") << "Analyzed " << nEvt_ << "\n"; 01026 01027 01028 return ; 01029 }
void PhotonAnalyzer::makePizero | ( | const edm::EventSetup & | es, | |
const edm::Handle< EcalRecHitCollection > | eb, | |||
const edm::Handle< EcalRecHitCollection > | ee | |||
) | [private] |
Definition at line 702 of file PhotonAnalyzer.cc.
References PositionCalc::Calculate_Location(), clusEtaSize_, clusPhiSize_, clusSeedThr_, funct::cos(), GenMuonPlsPt100GeV_cfg::cout, DetId::Ecal, EcalBarrel, EcalPreshower, lat::endl(), relval_parameters_module::energy, funct::exp(), MonitorElement::Fill(), edm::EventSetup::get(), CaloSubdetectorTopology::getWindow(), hIsoPi0EB_, hMinvPi0EB_, hPt1Pi0EB_, hPt2Pi0EB_, hPtPi0EB_, i, id, EBDetId::ieta(), EBDetId::iphi(), j, k, ParameterLogWeighted_, ParameterT0_barl_, ParameterW0_, ParameterX0_, edm::Handle< T >::product(), seleMinvMaxPi0_, seleMinvMinPi0_, selePi0BeltDeta_, selePi0BeltDR_, selePi0Iso_, selePtGammaOne_, selePtGammaTwo_, selePtPi0_, seleS4S9GammaOne_, seleS4S9GammaTwo_, seleXtalMinEnergy_, funct::sin(), python::multivaluedict::sort(), funct::sqrt(), and muonGeometry::TVector3().
Referenced by analyze().
00702 { 00703 00704 const EcalRecHitCollection *hitCollection_p = rhEB.product(); 00705 00706 edm::ESHandle<CaloGeometry> geoHandle; 00707 es.get<CaloGeometryRecord>().get(geoHandle); 00708 00709 edm::ESHandle<CaloTopology> theCaloTopology; 00710 es.get<CaloTopologyRecord>().get(theCaloTopology); 00711 00712 00713 const CaloSubdetectorGeometry *geometry_p; 00714 const CaloSubdetectorTopology *topology_p; 00715 const CaloSubdetectorGeometry *geometryES_p; 00716 geometry_p = geoHandle->getSubdetectorGeometry(DetId::Ecal,EcalBarrel); 00717 geometryES_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower); 00718 // Initialize the Position Calc 00719 std::map<std::string,double> providedParameters; 00720 providedParameters.insert(std::make_pair("LogWeighted",ParameterLogWeighted_)); 00721 providedParameters.insert(std::make_pair("X0",ParameterX0_)); 00722 providedParameters.insert(std::make_pair("T0_barl",ParameterT0_barl_)); 00723 providedParameters.insert(std::make_pair("W0",ParameterW0_)); 00724 PositionCalc posCalculator_ = PositionCalc(providedParameters); 00725 // 00726 00727 std::map<DetId, EcalRecHit> recHitsEB_map; 00728 00729 // 00730 std::vector<EcalRecHit> seeds; 00731 00732 seeds.clear(); 00733 // 00734 vector<EBDetId> usedXtals; 00735 usedXtals.clear(); 00736 // 00737 EcalRecHitCollection::const_iterator itb; 00738 // 00739 static const int MAXCLUS = 2000; 00740 int nClus=0; 00741 vector<float> eClus; 00742 vector<float> etClus; 00743 vector<float> etaClus; 00744 vector<float> phiClus; 00745 vector<EBDetId> max_hit; 00746 vector< vector<EcalRecHit> > RecHitsCluster; 00747 vector<float> s4s9Clus; 00748 00749 // find cluster seeds in EB 00750 for(itb=rhEB->begin(); itb!=rhEB->end(); ++itb){ 00751 EBDetId id(itb->id()); 00752 double energy = itb->energy(); 00753 if (energy > seleXtalMinEnergy_) { 00754 std::pair<DetId, EcalRecHit> map_entry(itb->id(), *itb); 00755 recHitsEB_map.insert(map_entry); 00756 } 00757 if (energy > clusSeedThr_) seeds.push_back(*itb); 00758 } // Eb rechits 00759 00760 sort(seeds.begin(), seeds.end(), ecalRecHitLess()); 00761 for (std::vector<EcalRecHit>::iterator itseed=seeds.begin(); itseed!=seeds.end(); itseed++) { 00762 EBDetId seed_id = itseed->id(); 00763 std::vector<EBDetId>::const_iterator usedIds; 00764 00765 bool seedAlreadyUsed=false; 00766 for(usedIds=usedXtals.begin(); usedIds!=usedXtals.end(); usedIds++){ 00767 if(*usedIds==seed_id){ 00768 seedAlreadyUsed=true; 00769 //cout<< " Seed with energy "<<itseed->energy()<<" was used !"<<endl; 00770 break; 00771 } 00772 } 00773 if(seedAlreadyUsed)continue; 00774 topology_p = theCaloTopology->getSubdetectorTopology(DetId::Ecal,EcalBarrel); 00775 std::vector<DetId> clus_v = topology_p->getWindow(seed_id,clusEtaSize_,clusPhiSize_); 00776 std::vector<DetId> clus_used; 00777 00778 vector<EcalRecHit> RecHitsInWindow; 00779 00780 double simple_energy = 0; 00781 00782 for (std::vector<DetId>::iterator det=clus_v.begin(); det!=clus_v.end(); det++) { 00783 EBDetId EBdet = *det; 00784 // cout<<" det "<< EBdet<<" ieta "<<EBdet.ieta()<<" iphi "<<EBdet.iphi()<<endl; 00785 bool HitAlreadyUsed=false; 00786 for(usedIds=usedXtals.begin(); usedIds!=usedXtals.end(); usedIds++){ 00787 if(*usedIds==*det){ 00788 HitAlreadyUsed=true; 00789 break; 00790 } 00791 } 00792 if(HitAlreadyUsed)continue; 00793 if (recHitsEB_map.find(*det) != recHitsEB_map.end()){ 00794 // cout<<" Used det "<< EBdet<<endl; 00795 std::map<DetId, EcalRecHit>::iterator aHit; 00796 aHit = recHitsEB_map.find(*det); 00797 usedXtals.push_back(*det); 00798 RecHitsInWindow.push_back(aHit->second); 00799 clus_used.push_back(*det); 00800 simple_energy = simple_energy + aHit->second.energy(); 00801 } 00802 } 00803 00804 math::XYZPoint clus_pos = posCalculator_.Calculate_Location(clus_used,hitCollection_p,geometry_p,geometryES_p); 00805 float theta_s = 2. * atan(exp(-clus_pos.eta())); 00806 float p0x_s = simple_energy * sin(theta_s) * cos(clus_pos.phi()); 00807 float p0y_s = simple_energy * sin(theta_s) * sin(clus_pos.phi()); 00808 // float p0z_s = simple_energy * cos(theta_s); 00809 float et_s = sqrt( p0x_s*p0x_s + p0y_s*p0y_s); 00810 00811 //cout << " Simple Clustering: E,Et,px,py,pz: "<<simple_energy<<" "<<et_s<<" "<<p0x_s<<" "<<p0y_s<<" "<<endl; 00812 00813 eClus.push_back(simple_energy); 00814 etClus.push_back(et_s); 00815 etaClus.push_back(clus_pos.eta()); 00816 phiClus.push_back(clus_pos.phi()); 00817 max_hit.push_back(seed_id); 00818 RecHitsCluster.push_back(RecHitsInWindow); 00819 //Compute S4/S9 variable 00820 //We are not sure to have 9 RecHits so need to check eta and phi: 00821 float s4s9_[4]; 00822 for(int i=0;i<4;i++)s4s9_[i]= itseed->energy(); 00823 for(unsigned int j=0; j<RecHitsInWindow.size();j++){ 00824 //cout << " Simple cluster rh, ieta, iphi : "<<((EBDetId)RecHitsInWindow[j].id()).ieta()<<" "<<((EBDetId)RecHitsInWindow[j].id()).iphi()<<endl; 00825 if((((EBDetId)RecHitsInWindow[j].id()).ieta() == seed_id.ieta()-1 && seed_id.ieta()!=1 ) || ( seed_id.ieta()==1 && (((EBDetId)RecHitsInWindow[j].id()).ieta() == seed_id.ieta()-2))){ 00826 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()-1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()-1 ){ 00827 s4s9_[0]+=RecHitsInWindow[j].energy(); 00828 }else{ 00829 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()){ 00830 s4s9_[0]+=RecHitsInWindow[j].energy(); 00831 s4s9_[1]+=RecHitsInWindow[j].energy(); 00832 }else{ 00833 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()+1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()+1 ){ 00834 s4s9_[1]+=RecHitsInWindow[j].energy(); 00835 } 00836 } 00837 } 00838 }else{ 00839 if(((EBDetId)RecHitsInWindow[j].id()).ieta() == seed_id.ieta()){ 00840 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()-1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()-1 ){ 00841 s4s9_[0]+=RecHitsInWindow[j].energy(); 00842 s4s9_[3]+=RecHitsInWindow[j].energy(); 00843 }else{ 00844 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()+1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()+1 ){ 00845 s4s9_[1]+=RecHitsInWindow[j].energy(); 00846 s4s9_[2]+=RecHitsInWindow[j].energy(); 00847 } 00848 } 00849 }else{ 00850 if((((EBDetId)RecHitsInWindow[j].id()).ieta() == seed_id.ieta()+1 && seed_id.ieta()!=-1 ) || ( seed_id.ieta()==-1 && (((EBDetId)RecHitsInWindow[j].id()).ieta() == seed_id.ieta()+2))){ 00851 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()-1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()-1 ){ 00852 s4s9_[3]+=RecHitsInWindow[j].energy(); 00853 }else{ 00854 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()){ 00855 s4s9_[2]+=RecHitsInWindow[j].energy(); 00856 s4s9_[3]+=RecHitsInWindow[j].energy(); 00857 }else{ 00858 if(((EBDetId)RecHitsInWindow[j].id()).iphi() == seed_id.iphi()+1 ||((EBDetId)RecHitsInWindow[j].id()).iphi()-360 == seed_id.iphi()+1 ){ 00859 s4s9_[2]+=RecHitsInWindow[j].energy(); 00860 } 00861 } 00862 } 00863 }else{ 00864 cout<<" (EBDetId)RecHitsInWindow[j].id()).ieta() "<<((EBDetId)RecHitsInWindow[j].id()).ieta()<<" seed_id.ieta() "<<seed_id.ieta()<<endl; 00865 cout<<" Problem with S4 calculation "<<endl;return; 00866 } 00867 } 00868 } 00869 } 00870 s4s9Clus.push_back(*max_element( s4s9_,s4s9_+4)/simple_energy); 00871 // cout<<" s4s9Clus[0] "<<s4s9_[0]/simple_energy<<" s4s9Clus[1] "<<s4s9_[1]/simple_energy<<" s4s9Clus[2] "<<s4s9_[2]/simple_energy<<" s4s9Clus[3] "<<s4s9_[3]/simple_energy<<endl; 00872 // cout<<" Max "<<*max_element( s4s9_,s4s9_+4)/simple_energy<<endl; 00873 nClus++; 00874 if (nClus == MAXCLUS) return; 00875 } // End loop over seed clusters 00876 00877 // cout<< " Pi0 clusters: "<<nClus<<endl; 00878 00879 // Selection, based on Simple clustering 00880 //pi0 candidates 00881 static const int MAXPI0S = 200; 00882 int npi0_s=0; 00883 00884 vector<EBDetId> scXtals; 00885 scXtals.clear(); 00886 00887 if (nClus <= 1) return; 00888 for(Int_t i=0 ; i<nClus ; i++){ 00889 for(Int_t j=i+1 ; j<nClus ; j++){ 00890 // cout<<" i "<<i<<" etClus[i] "<<etClus[i]<<" j "<<j<<" etClus[j] "<<etClus[j]<<endl; 00891 if( etClus[i]>selePtGammaOne_ && etClus[j]>selePtGammaTwo_ && s4s9Clus[i]>seleS4S9GammaOne_ && s4s9Clus[j]>seleS4S9GammaTwo_){ 00892 float theta_0 = 2. * atan(exp(-etaClus[i])); 00893 float theta_1 = 2. * atan(exp(-etaClus[j])); 00894 00895 float p0x = eClus[i] * sin(theta_0) * cos(phiClus[i]); 00896 float p1x = eClus[j] * sin(theta_1) * cos(phiClus[j]); 00897 float p0y = eClus[i] * sin(theta_0) * sin(phiClus[i]); 00898 float p1y = eClus[j] * sin(theta_1) * sin(phiClus[j]); 00899 float p0z = eClus[i] * cos(theta_0); 00900 float p1z = eClus[j] * cos(theta_1); 00901 00902 float pt_pi0 = sqrt( (p0x+p1x)*(p0x+p1x) + (p0y+p1y)*(p0y+p1y)); 00903 // cout<<" pt_pi0 "<<pt_pi0<<endl; 00904 if (pt_pi0 < selePtPi0_)continue; 00905 float m_inv = sqrt ( (eClus[i] + eClus[j])*(eClus[i] + eClus[j]) - (p0x+p1x)*(p0x+p1x) - (p0y+p1y)*(p0y+p1y) - (p0z+p1z)*(p0z+p1z) ); 00906 if ( (m_inv<seleMinvMaxPi0_) && (m_inv>seleMinvMinPi0_) ){ 00907 00908 //New Loop on cluster to measure isolation: 00909 vector<int> IsoClus; 00910 IsoClus.clear(); 00911 float Iso = 0; 00912 TVector3 pi0vect = TVector3((p0x+p1x), (p0y+p1y), (p0z+p1z)); 00913 for(Int_t k=0 ; k<nClus ; k++){ 00914 if(k==i || k==j)continue; 00915 TVector3 Clusvect = TVector3(eClus[k] * sin(2. * atan(exp(-etaClus[k]))) * cos(phiClus[k]), eClus[k] * sin(2. * atan(exp(-etaClus[k]))) * sin(phiClus[k]) , eClus[k] * cos(2. * atan(exp(-etaClus[k])))); 00916 float dretaclpi0 = fabs(etaClus[k] - pi0vect.Eta()); 00917 float drclpi0 = Clusvect.DeltaR(pi0vect); 00918 00919 if((drclpi0<selePi0BeltDR_) && (dretaclpi0<selePi0BeltDeta_) ){ 00920 00921 Iso = Iso + etClus[k]; 00922 IsoClus.push_back(k); 00923 } 00924 } 00925 00926 00927 if(Iso/pt_pi0<selePi0Iso_){ 00928 00929 hMinvPi0EB_->Fill(m_inv); 00930 hPt1Pi0EB_->Fill(etClus[i]); 00931 hPt2Pi0EB_->Fill(etClus[j]); 00932 hPtPi0EB_->Fill(pt_pi0); 00933 hIsoPi0EB_->Fill(Iso/pt_pi0); 00934 00935 00936 npi0_s++; 00937 } 00938 00939 if(npi0_s == MAXPI0S) return; 00940 } 00941 } 00942 } 00943 } 00944 00945 00946 00947 00948 }
float PhotonAnalyzer::phiNormalization | ( | float & | a | ) | [private] |
Definition at line 1036 of file PhotonAnalyzer.cc.
Referenced by analyze().
01037 { 01038 //---Definitions 01039 const float PI = 3.1415927; 01040 const float TWOPI = 2.0*PI; 01041 01042 01043 if(phi > PI) {phi = phi - TWOPI;} 01044 if(phi < -PI) {phi = phi + TWOPI;} 01045 01046 return phi; 01047 01048 }
edm::InputTag PhotonAnalyzer::barrelEcalHits_ [private] |
int PhotonAnalyzer::clusEtaSize_ [private] |
int PhotonAnalyzer::clusPhiSize_ [private] |
double PhotonAnalyzer::clusSeedThr_ [private] |
parameters needed for pizero finding
Definition at line 97 of file PhotonAnalyzer.h.
Referenced by makePizero(), and PhotonAnalyzer().
std::stringstream PhotonAnalyzer::currentFolder_ [private] |
double PhotonAnalyzer::cutStep_ [private] |
Definition at line 89 of file PhotonAnalyzer.h.
Referenced by analyze(), beginJob(), endJob(), and PhotonAnalyzer().
DQMStore* PhotonAnalyzer::dbe_ [private] |
edm::InputTag PhotonAnalyzer::endcapEcalHits_ [private] |
std::string PhotonAnalyzer::fName_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxRvsZ_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_convVtxRvsZ_isol_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dCotTracks_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_dCotTracks_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_dCotTracks_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dEtaTracksAtEcal_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_dEtaTracksAtEcal_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_dEtaTracksAtEcal_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtEcal_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_dPhiTracksAtEcal_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_dPhiTracksAtEcal_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtVtx_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_dPhiTracksAtVtx_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_dPhiTracksAtVtx_part_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_ecalSum_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_eOverPTracks_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_eOverPTracks_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_eOverPTracks_part_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_hcalSum_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_hOverE_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hOverE_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_hOverE_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nConv_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nConv_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_nConv_part_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nHitsVsEta_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_nHitsVsEta_isol_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nPho_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nPho_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_nPho_part_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_nTrackIsolHollow_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_nTrackIsolSolid_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvEta_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoConvEta_isol_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvPhi_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoConvPhi_isol_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoDistribution_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoDistribution_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoDistribution_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoE_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoE_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoE_part_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoEt_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEt_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoEt_part_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEta_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoEta_isol_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoPhi_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_phoPhi_isol_ [private] |
std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_r9_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_r9_part_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9VsEt_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_r9VsEt_isol_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_tkChi2_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_tkChi2_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_trackPtSumHollow_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::h_trackPtSumSolid_ [private] |
MonitorElement* PhotonAnalyzer::hIsoPi0EB_ [private] |
MonitorElement* PhotonAnalyzer::hMinvPi0EB_ [private] |
MonitorElement* PhotonAnalyzer::hPt1Pi0EB_ [private] |
MonitorElement* PhotonAnalyzer::hPt2Pi0EB_ [private] |
MonitorElement* PhotonAnalyzer::hPtPi0EB_ [private] |
int PhotonAnalyzer::isolationStrength_ [private] |
double PhotonAnalyzer::minPhoEtCut_ [private] |
int PhotonAnalyzer::nEntry_ [private] |
int PhotonAnalyzer::nEvt_ [private] |
int PhotonAnalyzer::numberOfSteps_ [private] |
Definition at line 90 of file PhotonAnalyzer.h.
Referenced by analyze(), beginJob(), endJob(), and PhotonAnalyzer().
std::vector<MonitorElement*> PhotonAnalyzer::p_ecalSum_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_efficiencyVsEt_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_efficiencyVsEta_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_hcalSum_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nHitsVsEta_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_nHitsVsEta_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_nTrackIsolHollow_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_nTrackIsolSolid_ [private] |
std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r9VsEt_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_r9VsEt_isol_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_trackPtSumHollow_ [private] |
std::vector<MonitorElement*> PhotonAnalyzer::p_trackPtSumSolid_ [private] |
bool PhotonAnalyzer::ParameterLogWeighted_ [private] |
edm::ParameterSet PhotonAnalyzer::parameters_ [private] |
Definition at line 78 of file PhotonAnalyzer.h.
Referenced by beginJob(), endJob(), and PhotonAnalyzer().
double PhotonAnalyzer::ParameterT0_barl_ [private] |
double PhotonAnalyzer::ParameterW0_ [private] |
double PhotonAnalyzer::ParameterX0_ [private] |
std::string PhotonAnalyzer::photonCollection_ [private] |
std::string PhotonAnalyzer::photonProducer_ [private] |
unsigned int PhotonAnalyzer::prescaleFactor_ [private] |
double PhotonAnalyzer::seleMinvMaxPi0_ [private] |
double PhotonAnalyzer::seleMinvMinPi0_ [private] |
double PhotonAnalyzer::selePi0BeltDeta_ [private] |
double PhotonAnalyzer::selePi0BeltDR_ [private] |
double PhotonAnalyzer::selePi0Iso_ [private] |
double PhotonAnalyzer::selePtGammaOne_ [private] |
double PhotonAnalyzer::selePtGammaTwo_ [private] |
double PhotonAnalyzer::selePtPi0_ [private] |
double PhotonAnalyzer::seleS4S9GammaOne_ [private] |
double PhotonAnalyzer::seleS4S9GammaTwo_ [private] |
double PhotonAnalyzer::seleXtalMinEnergy_ [private] |
bool PhotonAnalyzer::useBinning_ [private] |
int PhotonAnalyzer::verbosity_ [private] |