CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
PhotonAnalyzer Class Reference

EgammaCoreTools. More...

#include <PhotonAnalyzer.h>

Inheritance diagram for PhotonAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void endJob ()
 
virtual void endRun (const edm::Run &, const edm::EventSetup &)
 
 PhotonAnalyzer (const edm::ParameterSet &)
 
virtual ~PhotonAnalyzer ()
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

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)
 
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)
 
MonitorElementbookHisto (std::string histoName, std::string title, int bin, double min, double max)
 
void fill2DHistoVector (std::vector< std::vector< MonitorElement * > > &histoVector, double x, int cut, int type)
 
void fill2DHistoVector (std::vector< std::vector< MonitorElement * > > &histoVector, double x, double y, int cut, int type)
 
void fill3DHistoVector (std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, int cut, int type, int part)
 
void fill3DHistoVector (std::vector< std::vector< std::vector< MonitorElement * > > > &histoVector, double x, double y, int cut, int type, int part)
 
float phiNormalization (float &a)
 

Private Attributes

edm::EDGetTokenT
< edm::SortedCollection
< EcalRecHit,
edm::StrictWeakOrdering
< EcalRecHit > > > 
barrelRecHit_token_
 
std::stringstream currentFolder_
 
double cutStep_
 
DQMStoredbe_
 
edm::EDGetTokenT
< edm::SortedCollection
< EcalRecHit,
edm::StrictWeakOrdering
< EcalRecHit > > > 
endcapRecHit_token_
 
bool excludeBkgHistos_
 
std::string fName_
 
MonitorElementh_convEt_Loose_
 
MonitorElementh_convEt_Tight_
 
MonitorElementh_convEta_Loose_
 
MonitorElementh_convEta_Tight_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxR_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxRvsZ_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxYvsX_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxZ_
 
std::vector< std::vector
< MonitorElement * > > 
h_convVtxZEndcap_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dCotTracks_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dEtaTracksAtEcal_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dPhiTracksAtEcal_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_dPhiTracksAtVtx_
 
std::vector< std::vector
< MonitorElement * > > 
h_e1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_e1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_e2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_e2x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSum_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumEBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumEEndcap_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_ecalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_eOverPTracks_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_h1OverE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_h2OverE_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSum_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumEBarrel_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumEEndcap_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_hcalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_hOverE_
 
MonitorElementh_invMassAllPhotons_
 
MonitorElementh_invMassOneWithTracks_
 
MonitorElementh_invMassPhotonsEBarrel_
 
MonitorElementh_invMassPhotonsEEndcap_
 
MonitorElementh_invMassTwoWithTracks_
 
MonitorElementh_invMassZeroWithTracks_
 
std::vector< std::vector
< MonitorElement * > > 
h_maxEXtalOver3x3VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_maxEXtalOver3x3VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_nConv_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_nPho_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollow_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolid_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_nTrackIsolSolidVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoConvEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoConvEtaForEfficiency_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvPhi_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvPhiForEfficiency_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoConvR9_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoE_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEt_BadChannels_
 
MonitorElementh_phoEt_Loose_
 
MonitorElementh_phoEt_postHLT_
 
MonitorElementh_phoEt_preHLT_
 
MonitorElementh_phoEt_Tight_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoEta_BadChannels_
 
MonitorElementh_phoEta_Loose_
 
MonitorElementh_phoEta_postHLT_
 
MonitorElementh_phoEta_preHLT_
 
MonitorElementh_phoEta_Tight_
 
MonitorElementh_phoEta_Vertex_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoPhi_
 
std::vector< std::vector
< MonitorElement * > > 
h_phoPhi_BadChannels_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_phoSigmaIetaIeta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_pOverETracks_
 
std::vector< std::vector
< MonitorElement * > > 
h_r1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_r2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r2x5VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_r9_
 
std::vector< std::vector
< MonitorElement * > > 
h_r9VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_r9VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_scEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
h_scPhi_
 
std::vector< std::vector
< MonitorElement * > > 
h_sigmaIetaIetaVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_tkChi2_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollow_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolid_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
h_trackPtSumSolidVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
h_vertexChi2Prob_
 
int histo_index_conversions_
 
int histo_index_efficiency_
 
int histo_index_invMass_
 
int histo_index_photons_
 
double invMassEtCut_
 
bool isHeavyIon_
 
int isolationStrength_
 
bool minimalSetOfHistos_
 
double minPhoEtCut_
 
int nEntry_
 
int nEvt_
 
int numberOfSteps_
 
std::string outputFileName_
 
std::vector< std::vector
< MonitorElement * > > 
p_dCotTracksVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_e1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_e1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_e2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_e2x5VsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
p_ecalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_ecalSumVsEta_
 
std::vector< std::vector
< std::vector< MonitorElement * > > > 
p_hcalSumVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_hcalSumVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_hOverEVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_hOverEVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_maxEXtalOver3x3VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_maxEXtalOver3x3VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nHitsVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_nTrackIsolSolidVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_r1x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r1x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_r2x5VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r2x5VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_r9VsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_r9VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_sigmaIetaIetaVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_tkChi2VsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumHollowVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumHollowVsEta_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumSolidVsEt_
 
std::vector< std::vector
< MonitorElement * > > 
p_trackPtSumSolidVsEta_
 
edm::ParameterSet parameters_
 
std::vector< std::string > parts_
 
edm::EDGetTokenT< std::vector
< reco::Photon > > 
photon_token_
 
edm::EDGetTokenT
< edm::ValueMap< bool > > 
PhotonIDLoose_token_
 
edm::EDGetTokenT
< edm::ValueMap< bool > > 
PhotonIDTight_token_
 
unsigned int prescaleFactor_
 
bool standAlone_
 
MonitorElementtotalNumberOfHistos_conversionsFolder
 
MonitorElementtotalNumberOfHistos_efficiencyFolder
 
MonitorElementtotalNumberOfHistos_invMassFolder
 
MonitorElementtotalNumberOfHistos_photonsFolder
 
edm::EDGetTokenT
< trigger::TriggerEvent
triggerEvent_token_
 
std::vector< std::string > types_
 
bool useBinning_
 
bool useTriggerFiltering_
 
int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

EgammaCoreTools.

$Id: PhotonAnalyzer authors: Nancy Marinelli, U. of Notre Dame, US Jamie Antonelli, U. of Notre Dame, US

Definition at line 104 of file PhotonAnalyzer.h.

Constructor & Destructor Documentation

PhotonAnalyzer::PhotonAnalyzer ( const edm::ParameterSet pset)
explicit

Definition at line 21 of file PhotonAnalyzer.cc.

References edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

22 {
23 
24  fName_ = pset.getUntrackedParameter<string>("Name");
25  verbosity_ = pset.getUntrackedParameter<int>("Verbosity");
26 
27  prescaleFactor_ = pset.getUntrackedParameter<int>("prescaleFactor",1);
28 
29  photon_token_ = consumes<vector<reco::Photon> >(pset.getParameter<edm::InputTag>("phoProducer"));
30 
31  barrelRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("barrelRecHitProducer"));
32 
33  PhotonIDLoose_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDLoose"));
34  PhotonIDTight_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDTight"));
35 
36  endcapRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("endcapRecHitProducer"));
37 
38  triggerEvent_token_ = consumes<trigger::TriggerEvent>(pset.getParameter<edm::InputTag>("triggerEvent"));
39 
40  minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
41  invMassEtCut_ = pset.getParameter<double>("invMassEtCut");
42 
43  cutStep_ = pset.getParameter<double>("cutStep");
44  numberOfSteps_ = pset.getParameter<int>("numberOfSteps");
45 
46  useBinning_ = pset.getParameter<bool>("useBinning");
47  useTriggerFiltering_ = pset.getParameter<bool>("useTriggerFiltering");
48 
49  minimalSetOfHistos_ = pset.getParameter<bool>("minimalSetOfHistos");
50  excludeBkgHistos_ = pset.getParameter<bool>("excludeBkgHistos");
51 
52  standAlone_ = pset.getParameter<bool>("standAlone");
53  outputFileName_ = pset.getParameter<string>("OutputFileName");
54 
55  isolationStrength_ = pset.getParameter<int>("isolationStrength");
56 
57  isHeavyIon_ = pset.getUntrackedParameter<bool>("isHeavyIon",false);
58 
59  parameters_ = pset;
60 
65 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDLoose_token_
int histo_index_conversions_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDTight_token_
std::string fName_
unsigned int prescaleFactor_
std::string outputFileName_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > endcapRecHit_token_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_token_
edm::ParameterSet parameters_
edm::EDGetTokenT< std::vector< reco::Photon > > photon_token_
PhotonAnalyzer::~PhotonAnalyzer ( )
virtual

Definition at line 69 of file PhotonAnalyzer.cc.

69 {}

Member Function Documentation

void PhotonAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup esup 
)
virtual

End loop over Reco photons

Implements edm::EDAnalyzer.

Definition at line 437 of file PhotonAnalyzer.cc.

References edm::SortedCollection< T, SORT >::begin(), ChiSquaredProbability(), conversions_cfi::conversions, GOODCOLL_filter_cfg::cut, deltaR(), reco::deltaR(), deltaRMax, edm::SortedCollection< T, SORT >::end(), HcalObjRepresent::Fill(), edm::Event::getByToken(), i, edm::EventBase::id(), edm::Ref< C, T, F >::isNonnull(), edm::HandleBase::isValid(), diffTwoXMLs::label, edm::Handle< T >::product(), hitfit::scalar(), edm::RefVector< C, T, F >::size(), python.multivaluedict::sort(), mathSSE::sqrt(), and testEve_cfg::tracks.

438 {
439  using namespace edm;
440 
441  if (nEvt_% prescaleFactor_ ) return;
442  nEvt_++;
443  LogInfo("PhotonAnalyzer") << "PhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
444 
445  // Get the trigger results
446  bool validTriggerEvent=true;
447  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
448  trigger::TriggerEvent triggerEvent;
449  e.getByToken(triggerEvent_token_,triggerEventHandle);
450  if(!triggerEventHandle.isValid()) {
451  edm::LogInfo("PhotonAnalyzer") << "Error! Can't get the product: triggerEvent_" << endl;
452  validTriggerEvent=false;
453  }
454  if(validTriggerEvent) triggerEvent = *(triggerEventHandle.product());
455 
456  // Get the reconstructed photons
457  bool validPhotons=true;
458  Handle<reco::PhotonCollection> photonHandle;
459  reco::PhotonCollection photonCollection;
460  e.getByToken(photon_token_ , photonHandle);
461  if ( !photonHandle.isValid()) {
462  edm::LogInfo("PhotonAnalyzer") << "Error! Can't get the product: photon_token_" << endl;
463  validPhotons=false;
464  }
465  if(validPhotons) photonCollection = *(photonHandle.product());
466 
467  // Get the PhotonId objects
468  bool validloosePhotonID=true;
469  Handle<edm::ValueMap<bool> > loosePhotonFlag;
470  edm::ValueMap<bool> loosePhotonID;
471  e.getByToken(PhotonIDLoose_token_, loosePhotonFlag);
472  if ( !loosePhotonFlag.isValid()) {
473  edm::LogInfo("PhotonAnalyzer") << "Error! Can't get the product: PhotonIDLoose_token_" << endl;
474  validloosePhotonID=false;
475  }
476  if (validloosePhotonID) loosePhotonID = *(loosePhotonFlag.product());
477 
478  bool validtightPhotonID=true;
479  Handle<edm::ValueMap<bool> > tightPhotonFlag;
480  edm::ValueMap<bool> tightPhotonID;
481  e.getByToken(PhotonIDTight_token_, tightPhotonFlag);
482  if ( !tightPhotonFlag.isValid()) {
483  edm::LogInfo("PhotonAnalyzer") << "Error! Can't get the product: PhotonIDTight_token_" << endl;
484  validtightPhotonID=false;
485  }
486  if (validtightPhotonID) tightPhotonID = *(tightPhotonFlag.product());
487 
488 
489 
490  // Create array to hold #photons/event information
491  int nPho[100][3][3];
492 
493  for (int cut=0; cut!=100; ++cut){
494  for (unsigned int type=0; type!=types_.size(); ++type){
495  for (unsigned int part=0; part!=parts_.size(); ++part){
496  nPho[cut][type][part] = 0;
497  }
498  }
499  }
500  // Create array to hold #conversions/event information
501  int nConv[100][3][3];
502 
503  for (int cut=0; cut!=100; ++cut){
504  for (unsigned int type=0; type!=types_.size(); ++type){
505  for (unsigned int part=0; part!=parts_.size(); ++part){
506  nConv[cut][type][part] = 0;
507  }
508  }
509  }
510 
511 
512 
513  //Prepare list of photon-related HLT filter names
514 
515  vector<int> Keys;
516 
517  for(uint filterIndex=0;filterIndex<triggerEvent.sizeFilters();++filterIndex){ //loop over all trigger filters in event (i.e. filters passed)
518 
519  string label = triggerEvent.filterTag(filterIndex).label();
520 
521  if(label.find( "Photon" ) != string::npos ) { //get photon-related filters
522 
523  for(uint filterKeyIndex=0;filterKeyIndex<triggerEvent.filterKeys(filterIndex).size();++filterKeyIndex){ //loop over keys to objects passing this filter
524  Keys.push_back(triggerEvent.filterKeys(filterIndex)[filterKeyIndex]); //add keys to a vector for later reference
525  }
526 
527  }
528 
529  }
530 
531  // sort Keys vector in ascending order
532  // and erases duplicate entries from the vector
533  sort(Keys.begin(),Keys.end());
534  for ( uint i=0 ; i<Keys.size() ; )
535  {
536  if (i!=(Keys.size()-1))
537  {
538  if (Keys[i]==Keys[i+1]) Keys.erase(Keys.begin()+i+1) ;
539  else ++i ;
540  }
541  else ++i ;
542  }
543 
544  //We now have a vector of unique keys to TriggerObjects passing a photon-related filter
545 
546  int photonCounter = 0;
547 
549 
550  for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
551 
552 
553  //for HLT efficiency plots
554 
555  h_phoEta_preHLT_->Fill((*iPho).eta());
556  h_phoEt_preHLT_->Fill( (*iPho).et());
557 
558 
559  double deltaR=1000.;
560  double deltaRMin=1000.;
561  double deltaRMax=0.05;//sets deltaR threshold for matching photons to trigger objects
562 
563 
564  for (vector<int>::const_iterator objectKey=Keys.begin();objectKey!=Keys.end();objectKey++){ //loop over keys to objects that fired photon triggers
565 
566  deltaR = reco::deltaR(triggerEvent.getObjects()[(*objectKey)].eta(),triggerEvent.getObjects()[(*objectKey)].phi(),(*iPho).superCluster()->eta(),(*iPho).superCluster()->phi());
567  if(deltaR < deltaRMin) deltaRMin = deltaR;
568 
569  }
570 
571  if(deltaRMin > deltaRMax) { //photon fails delta R cut
572  if(useTriggerFiltering_) continue; //throw away photons that haven't passed any photon filters
573  }
574 
575  if(deltaRMin <= deltaRMax) { //photon passes delta R cut
576  h_phoEta_postHLT_->Fill((*iPho).eta() );
577  h_phoEt_postHLT_->Fill( (*iPho).et() );
578  }
579 
580  if ((*iPho).et() < minPhoEtCut_) continue;
581 
582  nEntry_++;
583 
584  edm::Ref<reco::PhotonCollection> photonref(photonHandle, photonCounter);
585  photonCounter++;
586 
587  bool isLoosePhoton(false), isTightPhoton(false);
588  if ( !isHeavyIon_ ) {
589  isLoosePhoton = (loosePhotonID)[photonref];
590  isTightPhoton = (tightPhotonID)[photonref];
591  }
592 
593 
594  //find out which part of the Ecal contains the photon
595 
596  bool phoIsInBarrel=false;
597  bool phoIsInEndcap=false;
598  float etaPho = (*iPho).superCluster()->eta();
599  if ( fabs(etaPho) < 1.479 )
600  phoIsInBarrel=true;
601  else {
602  phoIsInEndcap=true;
603  }
604 
605  int part = 0;
606  if ( phoIsInBarrel ) part = 1;
607  if ( phoIsInEndcap ) part = 2;
608 
610  bool isIsolated=false;
611  if ( isolationStrength_ == 0) isIsolated = isLoosePhoton;
612  if ( isolationStrength_ == 1) isIsolated = isTightPhoton;
613 
614  int type=0;
615  if ( isIsolated ) type=1;
616  if ( !excludeBkgHistos_ && !isIsolated ) type=2;
617 
618 
619  //get rechit collection containing this photon
620  bool validEcalRecHits=true;
621  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
622  EcalRecHitCollection ecalRecHitCollection;
623  if ( phoIsInBarrel ) {
624  // Get handle to barrel rec hits
625  e.getByToken(barrelRecHit_token_, ecalRecHitHandle);
626  if (!ecalRecHitHandle.isValid()) {
627  edm::LogError("PhotonAnalyzer") << "Error! Can't get the product: barrelRecHit_token_";
628  validEcalRecHits=false;
629  }
630  }
631  else if ( phoIsInEndcap ) {
632  // Get handle to endcap rec hits
633  e.getByToken(endcapRecHit_token_, ecalRecHitHandle);
634  if (!ecalRecHitHandle.isValid()) {
635  edm::LogError("PhotonAnalyzer") << "Error! Can't get the product: endcapRecHit_token";
636  validEcalRecHits=false;
637  }
638  }
639  if (validEcalRecHits) ecalRecHitCollection = *(ecalRecHitHandle.product());
640 
641 
642  //if ((*iPho).isEBEEGap()) continue; //cut out gap photons
643 
644 
645  //filling histograms to make isolation efficiencies
646  if(isLoosePhoton){
647  h_phoEta_Loose_->Fill((*iPho).eta());
648  h_phoEt_Loose_->Fill( (*iPho).et() );
649  }
650  if(isTightPhoton){
651  h_phoEta_Tight_->Fill((*iPho).eta());
652  h_phoEt_Tight_->Fill( (*iPho).et() );
653  }
654 
655 
656 
657  for (int cut = 0; cut !=numberOfSteps_; ++cut) { //loop over different transverse energy cuts
658  double Et = (*iPho).et();
659  bool passesCuts = false;
660 
661  //sorting the photon into the right Et-dependant folder
662  if ( useBinning_ && Et > (cut+1)*cutStep_ && ( (Et < (cut+2)*cutStep_) | (cut == numberOfSteps_-1) ) ){
663  passesCuts = true;
664  }
665  else if ( !useBinning_ && Et > (cut+1)*cutStep_ ){
666  passesCuts = true;
667  }
668 
669  if (passesCuts){
670 
671  //filling isolation variable histograms
672 
673  //tracker isolation variables
674  fill2DHistoVector(h_nTrackIsolSolid_, (*iPho).nTrkSolidConeDR04(), cut,type);
675  fill2DHistoVector(h_nTrackIsolHollow_,(*iPho).nTrkHollowConeDR04(),cut,type);
676 
677  fill2DHistoVector(h_nTrackIsolSolidVsEta_, (*iPho).eta(),(*iPho).nTrkSolidConeDR04(), cut,type);
678  fill2DHistoVector(p_nTrackIsolSolidVsEta_, (*iPho).eta(),(*iPho).nTrkSolidConeDR04(), cut,type);
679  fill2DHistoVector(h_nTrackIsolHollowVsEta_,(*iPho).eta(),(*iPho).nTrkHollowConeDR04(),cut,type);
680  fill2DHistoVector(p_nTrackIsolHollowVsEta_,(*iPho).eta(),(*iPho).nTrkHollowConeDR04(),cut,type);
681 
682  fill2DHistoVector(h_nTrackIsolSolidVsEt_, (*iPho).et(), (*iPho).nTrkSolidConeDR04(), cut,type);
683  fill2DHistoVector(p_nTrackIsolSolidVsEt_, (*iPho).et(), (*iPho).nTrkSolidConeDR04(), cut,type);
684  fill2DHistoVector(h_nTrackIsolHollowVsEt_, (*iPho).et(), (*iPho).nTrkHollowConeDR04(),cut,type);
685  fill2DHistoVector(p_nTrackIsolHollowVsEt_, (*iPho).et(), (*iPho).nTrkHollowConeDR04(),cut,type);
686 
688  fill2DHistoVector(h_trackPtSumSolid_, (*iPho).trkSumPtSolidConeDR04(),cut,type);
689  fill2DHistoVector(h_trackPtSumHollow_,(*iPho).trkSumPtSolidConeDR04(),cut,type);
690 
691  fill2DHistoVector(h_trackPtSumSolidVsEta_, (*iPho).eta(),(*iPho).trkSumPtSolidConeDR04(), cut,type);
692  fill2DHistoVector(p_trackPtSumSolidVsEta_, (*iPho).eta(),(*iPho).trkSumPtSolidConeDR04(), cut,type);
693  fill2DHistoVector(h_trackPtSumHollowVsEta_,(*iPho).eta(),(*iPho).trkSumPtHollowConeDR04(),cut,type);
694  fill2DHistoVector(p_trackPtSumHollowVsEta_,(*iPho).eta(),(*iPho).trkSumPtHollowConeDR04(),cut,type);
695 
696  fill2DHistoVector(h_trackPtSumSolidVsEt_, (*iPho).et(), (*iPho).trkSumPtSolidConeDR04(), cut,type);
697  fill2DHistoVector(p_trackPtSumSolidVsEt_, (*iPho).et(), (*iPho).trkSumPtSolidConeDR04(), cut,type);
698  fill2DHistoVector(h_trackPtSumHollowVsEt_, (*iPho).et(), (*iPho).trkSumPtHollowConeDR04(),cut,type);
699  fill2DHistoVector(p_trackPtSumHollowVsEt_, (*iPho).et(), (*iPho).trkSumPtHollowConeDR04(),cut,type);
700  //calorimeter isolation variables
701 
702  fill2DHistoVector(h_ecalSum_,(*iPho).ecalRecHitSumEtConeDR04(),cut,type);
703  if(iPho->isEB()){fill2DHistoVector(h_ecalSumEBarrel_,(*iPho).ecalRecHitSumEtConeDR04(),cut,type);}
704  if(iPho->isEE()){fill2DHistoVector(h_ecalSumEEndcap_,(*iPho).ecalRecHitSumEtConeDR04(),cut,type);}
705  fill2DHistoVector(h_ecalSumVsEta_,(*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04(),cut,type);
706  fill2DHistoVector(p_ecalSumVsEta_,(*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04(),cut,type);
707  fill2DHistoVector(h_ecalSumVsEt_, (*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04(),cut,type);
708  fill3DHistoVector(p_ecalSumVsEt_, (*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04(),cut,type,part);
709 
711 
712  fill2DHistoVector(h_hcalSum_,(*iPho).hcalTowerSumEtConeDR04(),cut,type);
713  if(iPho->isEB()){fill2DHistoVector(h_hcalSumEBarrel_,(*iPho).hcalTowerSumEtConeDR04(),cut,type);}
714  if(iPho->isEE()){fill2DHistoVector(h_hcalSumEEndcap_,(*iPho).hcalTowerSumEtConeDR04(),cut,type);}
715  fill2DHistoVector(h_hcalSumVsEta_,(*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04(),cut,type);
716  fill2DHistoVector(p_hcalSumVsEta_,(*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04(),cut,type);
717  fill2DHistoVector(h_hcalSumVsEt_, (*iPho).et(), (*iPho).hcalTowerSumEtConeDR04(),cut,type);
718  fill3DHistoVector(p_hcalSumVsEt_, (*iPho).et(), (*iPho).hcalTowerSumEtConeDR04(),cut,type,part);
719 
720  fill3DHistoVector(h_hOverE_,(*iPho).hadronicOverEm(),cut,type,part);
721  fill2DHistoVector(p_hOverEVsEta_,(*iPho).eta(),(*iPho).hadronicOverEm(),cut,type);
722  fill2DHistoVector(p_hOverEVsEt_, (*iPho).et(), (*iPho).hadronicOverEm(),cut,type);
723 
724  fill3DHistoVector(h_h1OverE_,(*iPho).hadronicDepth1OverEm(),cut,type,part);
725  fill3DHistoVector(h_h2OverE_,(*iPho).hadronicDepth2OverEm(),cut,type,part);
726 
727  //filling photon histograms
728 
729  nPho[cut][0][0]++;
730  nPho[cut][0][part]++;
731  nPho[cut][type][0]++;
732  nPho[cut][type][part]++;
733 
734  //energy variables
735 
736  fill3DHistoVector(h_phoE_, (*iPho).energy(),cut,type,part);
737  fill3DHistoVector(h_phoEt_,(*iPho).et(), cut,type,part);
738 
739  //geometrical variables
740 
741  fill2DHistoVector(h_phoEta_,(*iPho).eta(),cut,type);
742  fill2DHistoVector(h_scEta_, (*iPho).superCluster()->eta(),cut,type);
743 
744  fill3DHistoVector(h_phoPhi_,(*iPho).phi(),cut,type,part);
745  fill3DHistoVector(h_scPhi_, (*iPho).superCluster()->phi(),cut,type,part);
746 
747  //shower shape variables
748 
749  fill3DHistoVector(h_r9_,(*iPho).r9(),cut,type,part);
750  fill2DHistoVector(h_r9VsEta_,(*iPho).eta(),(*iPho).r9(),cut,type);
751  fill2DHistoVector(p_r9VsEta_,(*iPho).eta(),(*iPho).r9(),cut,type);
752  fill2DHistoVector(h_r9VsEt_, (*iPho).et(), (*iPho).r9(),cut,type);
753  fill2DHistoVector(p_r9VsEt_, (*iPho).et(), (*iPho).r9(),cut,type);
754 
755  fill2DHistoVector(h_e1x5VsEta_,(*iPho).eta(),(*iPho).e1x5(),cut,type);
756  fill2DHistoVector(p_e1x5VsEta_,(*iPho).eta(),(*iPho).e1x5(),cut,type);
757  fill2DHistoVector(h_e1x5VsEt_, (*iPho).et(), (*iPho).e1x5(),cut,type);
758  fill2DHistoVector(p_e1x5VsEt_, (*iPho).et(), (*iPho).e1x5(),cut,type);
759 
760  fill2DHistoVector(h_e2x5VsEta_,(*iPho).eta(),(*iPho).e2x5(),cut,type);
761  fill2DHistoVector(p_e2x5VsEta_,(*iPho).eta(),(*iPho).e2x5(),cut,type);
762  fill2DHistoVector(h_e2x5VsEt_, (*iPho).et(), (*iPho).e2x5(),cut,type);
763  fill2DHistoVector(p_e2x5VsEt_, (*iPho).et(), (*iPho).e2x5(),cut,type);
764 
765  fill2DHistoVector(h_maxEXtalOver3x3VsEta_,(*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3(),cut,type);
766  fill2DHistoVector(p_maxEXtalOver3x3VsEta_,(*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3(),cut,type);
767  fill2DHistoVector(h_maxEXtalOver3x3VsEt_, (*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3(),cut,type);
768  fill2DHistoVector(p_maxEXtalOver3x3VsEt_, (*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3(),cut,type);
769 
770 
771  fill2DHistoVector(h_r1x5VsEta_,(*iPho).eta(),(*iPho).r1x5(),cut,type);
772  fill2DHistoVector(p_r1x5VsEta_,(*iPho).eta(),(*iPho).r1x5(),cut,type);
773  fill2DHistoVector(h_r1x5VsEt_, (*iPho).et(), (*iPho).r1x5(),cut,type);
774  fill2DHistoVector(p_r1x5VsEt_, (*iPho).et(), (*iPho).r1x5(),cut,type);
775 
776  fill2DHistoVector(h_r2x5VsEta_,(*iPho).eta(),(*iPho).r2x5(),cut,type);
777  fill2DHistoVector(p_r2x5VsEta_,(*iPho).eta(),(*iPho).r2x5(),cut,type);
778  fill2DHistoVector(h_r2x5VsEt_, (*iPho).et(), (*iPho).r2x5(),cut,type);
779  fill2DHistoVector(p_r2x5VsEt_, (*iPho).et(), (*iPho).r2x5(),cut,type);
780 
781  fill3DHistoVector(h_phoSigmaIetaIeta_,(*iPho).sigmaIetaIeta(),cut,type,part);
782  fill2DHistoVector(h_sigmaIetaIetaVsEta_,(*iPho).eta(),(*iPho).sigmaIetaIeta(),cut,type);
783  fill2DHistoVector(p_sigmaIetaIetaVsEta_,(*iPho).eta(),(*iPho).sigmaIetaIeta(),cut,type);
784 
785 
786 
787  //filling histograms for photons containing a bad ECAL channel
788 
789  bool atLeastOneDeadChannel=false;
790  for(reco::CaloCluster_iterator bcIt = (*iPho).superCluster()->clustersBegin();bcIt != (*iPho).superCluster()->clustersEnd(); ++bcIt) { //loop over basic clusters in SC
791  for(vector< pair<DetId, float> >::const_iterator rhIt = (*bcIt)->hitsAndFractions().begin();rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) { //loop over rec hits in basic cluster
792 
793  for(EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end(); ++it) { //loop over all rec hits to find the right ones
794  if (rhIt->first == (*it).id() ) { //found the matching rechit
795  if ( (*it).recoFlag() == 9 ) { //has a bad channel
796  atLeastOneDeadChannel=true;
797  break;
798  }
799  }
800  }
801  }
802  }
803  if ( atLeastOneDeadChannel ) {
807  }
808 
809 
810  // filling conversion-related histograms
811  if((*iPho).hasConversionTracks()){
812  nConv[cut][0][0]++;
813  nConv[cut][0][part]++;
814  nConv[cut][type][0]++;
815  nConv[cut][type][part]++;
816  }
817 
818  //loop over conversions (don't forget, we're still inside the photon loop,
819  // i.e. these are all the conversions for this ONE photon, not for all the photons in the event)
820  reco::ConversionRefVector conversions = (*iPho).conversions();
821  for (unsigned int iConv=0; iConv<conversions.size(); iConv++) {
822 
823  reco::ConversionRef aConv=conversions[iConv];
824 
825  if ( aConv->nTracks() <2 ) continue;
826 
827  //fill histogram for denominator of vertex reconstruction efficiency plot
828  if(cut==0) h_phoEta_Vertex_->Fill(aConv->refittedPairMomentum().eta());
829 
830  if ( !(aConv->conversionVertex().isValid()) ) continue;
831 
832  float chi2Prob = ChiSquaredProbability( aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof() );
833 
834  if(chi2Prob<0.0005) continue;
835 
836  fill2DHistoVector(h_vertexChi2Prob_,chi2Prob,cut,type);
837 
838 
839 
840  fill3DHistoVector(h_phoConvE_, (*iPho).energy(),cut,type,part);
843 
844  if (cut==0 && isLoosePhoton){
845  h_convEta_Loose_->Fill((*iPho).eta());
846  h_convEt_Loose_->Fill( (*iPho).et() );
847  }
848  if (cut==0 && isTightPhoton){
849  h_convEta_Tight_->Fill((*iPho).eta());
850  h_convEt_Tight_->Fill( (*iPho).et() );
851  }
852 
853  fill2DHistoVector(h_phoConvEta_,aConv->refittedPairMomentum().eta(),cut,type);
854  fill3DHistoVector(h_phoConvPhi_,aConv->refittedPairMomentum().phi(),cut,type,part);
855 
856 
857  //we use the photon position because we'll be dividing it by a photon histogram (not a conversion histogram)
860 
861 
862  //vertex histograms
863  double convR= sqrt(aConv->conversionVertex().position().perp2());
864  double scalar = aConv->conversionVertex().position().x()*aConv->refittedPairMomentum().x() + aConv->conversionVertex().position().y()*aConv->refittedPairMomentum().y();
865  if ( scalar < 0 ) convR= -convR;
866 
867  fill2DHistoVector(h_convVtxRvsZ_,aConv->conversionVertex().position().z(), convR,cut,type);//trying to "see" R-Z view of tracker
868  fill2DHistoVector(h_convVtxZ_,aConv->conversionVertex().position().z(), cut,type);
869 
870  if(fabs(aConv->caloCluster()[0]->eta()) > 1.5){//trying to "see" tracker endcaps
871  fill2DHistoVector(h_convVtxZEndcap_,aConv->conversionVertex().position().z(), cut,type);
872  }
873  else if(fabs(aConv->caloCluster()[0]->eta()) < 1){//trying to "see" tracker barrel
874  fill2DHistoVector(h_convVtxR_,convR,cut,type);
875  fill2DHistoVector(h_convVtxYvsX_,aConv->conversionVertex().position().x(),aConv->conversionVertex().position().y(),cut,type);
876  }
877 
878  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
879 
880 
881  for (unsigned int i=0; i<tracks.size(); i++) {
882  fill2DHistoVector(h_tkChi2_,tracks[i]->normalizedChi2(),cut,type);
883  fill2DHistoVector(p_tkChi2VsEta_,aConv->caloCluster()[0]->eta(),tracks[i]->normalizedChi2(),cut,type);
884  fill2DHistoVector(p_dCotTracksVsEta_,aConv->caloCluster()[0]->eta(),aConv->pairCotThetaSeparation(),cut,type);
885  fill2DHistoVector(p_nHitsVsEta_,aConv->caloCluster()[0]->eta(),float(tracks[i]->numberOfValidHits()),cut,type);
886  }
887 
888  //calculating delta eta and delta phi of the two tracks
889 
890  float DPhiTracksAtVtx = -99;
891  float dPhiTracksAtEcal= -99;
892  float dEtaTracksAtEcal= -99;
893 
894  float phiTk1= aConv->tracksPin()[0].phi();
895  float phiTk2= aConv->tracksPin()[1].phi();
896  DPhiTracksAtVtx = phiTk1-phiTk2;
897  DPhiTracksAtVtx = phiNormalization( DPhiTracksAtVtx );
898 
899  if (aConv->bcMatchingWithTracks()[0].isNonnull() && aConv->bcMatchingWithTracks()[1].isNonnull() ) {
900  float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
901  float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
902  float recoEta1 = aConv->ecalImpactPosition()[0].eta();
903  float recoEta2 = aConv->ecalImpactPosition()[1].eta();
904 
905  recoPhi1 = phiNormalization(recoPhi1);
906  recoPhi2 = phiNormalization(recoPhi2);
907 
908  dPhiTracksAtEcal = recoPhi1 -recoPhi2;
909  dPhiTracksAtEcal = phiNormalization( dPhiTracksAtEcal );
910  dEtaTracksAtEcal = recoEta1 -recoEta2;
911 
912  }
913 
914 
915  fill3DHistoVector(h_dPhiTracksAtVtx_,DPhiTracksAtVtx,cut,type,part);
916  fill3DHistoVector(h_dPhiTracksAtEcal_,fabs(dPhiTracksAtEcal),cut,type,part);
917  fill3DHistoVector(h_dEtaTracksAtEcal_, dEtaTracksAtEcal,cut,type,part);
918  fill3DHistoVector(h_eOverPTracks_,aConv->EoverPrefittedTracks(),cut,type,part);
919  fill3DHistoVector(h_pOverETracks_,1./aConv->EoverPrefittedTracks(),cut,type,part);
920  fill3DHistoVector(h_dCotTracks_,aConv->pairCotThetaSeparation(),cut,type,part);
921 
922 
923  }//end loop over conversions
924 
925  }//end loop over photons passing cuts
926  }//end loop over transverse energy cuts
927 
928 
929 
930 
931 
932  //make invariant mass plots
933 
934  if (isIsolated && iPho->et()>=invMassEtCut_){
935 
936  for (reco::PhotonCollection::const_iterator iPho2=iPho+1; iPho2!=photonCollection.end(); iPho2++){
937 
938  edm::Ref<reco::PhotonCollection> photonref2(photonHandle, photonCounter); //note: it's correct to use photonCounter and not photonCounter+1
939  //since it has already been incremented earlier
940 
941  bool isTightPhoton2(false), isLoosePhoton2(false);
942 
943  if ( !isHeavyIon_ ) {
944  isTightPhoton2 = (tightPhotonID)[photonref2];
945  isLoosePhoton2 = (loosePhotonID)[photonref2];
946  }
947 
948  bool isIsolated2=false;
949  if ( isolationStrength_ == 0) isIsolated2 = isLoosePhoton2;
950  if ( isolationStrength_ == 1) isIsolated2 = isTightPhoton2;
951 
952  reco::ConversionRefVector conversions = (*iPho).conversions();
953  reco::ConversionRefVector conversions2 = (*iPho2).conversions();
954 
955  if(isIsolated2 && iPho2->et()>=invMassEtCut_){
956 
957  math::XYZTLorentzVector p12 = iPho->p4()+iPho2->p4();
958  float gamgamMass2 = p12.Dot(p12);
959 
960 
961  h_invMassAllPhotons_ -> Fill(sqrt( gamgamMass2 ));
962  if(iPho->isEB() && iPho2->isEB()){h_invMassPhotonsEBarrel_ -> Fill(sqrt( gamgamMass2 ));}
963  if(iPho->isEE() || iPho2->isEE()){h_invMassPhotonsEEndcap_ -> Fill(sqrt( gamgamMass2 ));}
964 
965  if(conversions.size()!=0 && conversions[0]->nTracks() >= 2){
966  if(conversions2.size()!=0 && conversions2[0]->nTracks() >= 2) h_invMassTwoWithTracks_ -> Fill(sqrt( gamgamMass2 ));
967  else h_invMassOneWithTracks_ -> Fill(sqrt( gamgamMass2 ));
968  }
969  else if(conversions2.size()!=0 && conversions2[0]->nTracks() >= 2) h_invMassOneWithTracks_ -> Fill(sqrt( gamgamMass2 ));
970  else h_invMassZeroWithTracks_ -> Fill(sqrt( gamgamMass2 ));
971  }
972 
973  }
974 
975  }
976 
977 
978 
979  }
980 
981 
982  //filling number of photons/conversions per event histograms
983  for (int cut = 0; cut !=numberOfSteps_; ++cut) {
984  for(uint type=0;type!=types_.size();++type){
985  for(uint part=0;part!=parts_.size();++part){
986  h_nPho_[cut][type][part]-> Fill (float(nPho[cut][type][part]));
987  h_nConv_[cut][type][part]-> Fill (float(nConv[cut][type][part]));
988  }
989  }
990  }
991 
992 }//End of Analyze method
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
type
Definition: HCALResponse.h:21
MonitorElement * h_invMassOneWithTracks_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dEtaTracksAtEcal_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoEt_
int i
Definition: DBlmapReader.cc:9
MonitorElement * h_phoEt_preHLT_
std::vector< std::vector< MonitorElement * > > h_phoEta_BadChannels_
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_
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_r9VsEta_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > barrelRecHit_token_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDLoose_token_
std::vector< std::vector< MonitorElement * > > p_sigmaIetaIetaVsEta_
double deltaRMax
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
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_
std::vector< EcalRecHit >::const_iterator const_iterator
std::vector< std::vector< MonitorElement * > > h_hcalSumEBarrel_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhiForEfficiency_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
MonitorElement * h_phoEta_preHLT_
edm::EDGetTokenT< edm::ValueMap< bool > > PhotonIDTight_token_
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_
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)
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvR9_
std::vector< std::vector< MonitorElement * > > h_r9VsEta_
std::vector< std::vector< MonitorElement * > > h_hcalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
MonitorElement * h_phoEt_postHLT_
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_
void Fill(long long x)
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_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MonitorElement * h_invMassZeroWithTracks_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
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::vector< std::vector< MonitorElement * > > h_phoConvEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_eOverPTracks_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEt_
MonitorElement * h_phoEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSum_
MonitorElement * h_invMassPhotonsEBarrel_
std::vector< std::vector< MonitorElement * > > p_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
unsigned int prescaleFactor_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< std::string > types_
T sqrt(T t)
Definition: SSEVec.h:48
std::vector< std::vector< std::vector< MonitorElement * > > > h_h1OverE_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEta_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
std::vector< std::vector< MonitorElement * > > p_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > p_maxEXtalOver3x3VsEt_
MonitorElement * h_invMassTwoWithTracks_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollowVsEt_
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
float ChiSquaredProbability(double chiSquared, double nrDOF)
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoSigmaIetaIeta_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit, edm::StrictWeakOrdering< EcalRecHit > > > endcapRecHit_token_
std::vector< std::vector< MonitorElement * > > h_e2x5VsEt_
std::vector< std::vector< MonitorElement * > > h_phoPhi_BadChannels_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolSolidVsEta_
bool isValid() const
Definition: HandleBase.h:76
float phiNormalization(float &a)
MonitorElement * h_phoEta_Tight_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEt_
MonitorElement * h_phoEt_Loose_
const_iterator end() const
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< std::vector< std::vector< MonitorElement * > > > p_ecalSumVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_r9_
MonitorElement * h_invMassAllPhotons_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolSolidVsEta_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_token_
std::vector< std::vector< std::vector< MonitorElement * > > > h_scPhi_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
tuple tracks
Definition: testEve_cfg.py:39
std::vector< size_type > Keys
part
Definition: HCALResponse.h:20
MonitorElement * h_invMassPhotonsEEndcap_
std::vector< std::vector< MonitorElement * > > p_nTrackIsolHollowVsEta_
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEt_
T const * product() const
Definition: Handle.h:81
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_
edm::EventID id() const
Definition: EventBase.h:56
std::vector< std::vector< MonitorElement * > > p_trackPtSumSolidVsEt_
std::vector< std::vector< MonitorElement * > > p_ecalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_tkChi2_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
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_
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
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_
edm::EDGetTokenT< std::vector< reco::Photon > > photon_token_
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_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEt_
const_iterator begin() const
std::vector< std::vector< MonitorElement * > > h_ecalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_ecalSumEBarrel_
double scalar(const CLHEP::HepGenMatrix &m)
Return the matrix as a scalar. Raise an assertion if the matris is not .
Definition: matutil.cc:183
std::vector< std::vector< MonitorElement * > > p_tkChi2VsEta_
void PhotonAnalyzer::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 72 of file PhotonAnalyzer.cc.

References DQMStore::book1D(), DQMStore::bookInt(), GOODCOLL_filter_cfg::cut, dbe_, jptDQMConfig_cff::eMax, jptDQMConfig_cff::etaMax, jptDQMConfig_cff::etaMin, jptDQMConfig_cff::etMax, cppFunctionSkipper::operator, jptDQMConfig_cff::phiMax, jptDQMConfig_cff::phiMin, DQMStore::setCurrentFolder(), and cuy::yBin.

73 {
74 
75  nEvt_=0;
76  nEntry_=0;
77 
78  dbe_ = 0;
80 
81 
82 
83  double eMin = parameters_.getParameter<double>("eMin");
84  double eMax = parameters_.getParameter<double>("eMax");
85  int eBin = parameters_.getParameter<int>("eBin");
86 
87  double etMin = parameters_.getParameter<double>("etMin");
88  double etMax = parameters_.getParameter<double>("etMax");
89  int etBin = parameters_.getParameter<int>("etBin");
90 
91  double sumMin = parameters_.getParameter<double>("sumMin");
92  double sumMax = parameters_.getParameter<double>("sumMax");
93  int sumBin = parameters_.getParameter<int>("sumBin");
94 
95  double etaMin = parameters_.getParameter<double>("etaMin");
96  double etaMax = parameters_.getParameter<double>("etaMax");
97  int etaBin = parameters_.getParameter<int>("etaBin");
98 
99  double phiMin = parameters_.getParameter<double>("phiMin");
100  double phiMax = parameters_.getParameter<double>("phiMax");
101  int phiBin = parameters_.getParameter<int>("phiBin");
102 
103  double r9Min = parameters_.getParameter<double>("r9Min");
104  double r9Max = parameters_.getParameter<double>("r9Max");
105  int r9Bin = parameters_.getParameter<int>("r9Bin");
106 
107  double hOverEMin = parameters_.getParameter<double>("hOverEMin");
108  double hOverEMax = parameters_.getParameter<double>("hOverEMax");
109  int hOverEBin = parameters_.getParameter<int>("hOverEBin");
110 
111  double xMin = parameters_.getParameter<double>("xMin");
112  double xMax = parameters_.getParameter<double>("xMax");
113  int xBin = parameters_.getParameter<int>("xBin");
114 
115  double yMin = parameters_.getParameter<double>("yMin");
116  double yMax = parameters_.getParameter<double>("yMax");
117  int yBin = parameters_.getParameter<int>("yBin");
118 
119  double numberMin = parameters_.getParameter<double>("numberMin");
120  double numberMax = parameters_.getParameter<double>("numberMax");
121  int numberBin = parameters_.getParameter<int>("numberBin");
122 
123  double zMin = parameters_.getParameter<double>("zMin");
124  double zMax = parameters_.getParameter<double>("zMax");
125  int zBin = parameters_.getParameter<int>("zBin");
126 
127  double rMin = parameters_.getParameter<double>("rMin");
128  double rMax = parameters_.getParameter<double>("rMax");
129  int rBin = parameters_.getParameter<int>("rBin");
130 
131  double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin");
132  double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax");
133  int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin");
134 
135  double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin");
136  double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax");
137  int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin");
138 
139  double sigmaIetaMin = parameters_.getParameter<double>("sigmaIetaMin");
140  double sigmaIetaMax = parameters_.getParameter<double>("sigmaIetaMax");
141  int sigmaIetaBin = parameters_.getParameter<int>("sigmaIetaBin");
142 
143  double eOverPMin = parameters_.getParameter<double>("eOverPMin");
144  double eOverPMax = parameters_.getParameter<double>("eOverPMax");
145  int eOverPBin = parameters_.getParameter<int>("eOverPBin");
146 
147  double chi2Min = parameters_.getParameter<double>("chi2Min");
148  double chi2Max = parameters_.getParameter<double>("chi2Max");
149  int chi2Bin = parameters_.getParameter<int>("chi2Bin");
150 
151 
152  int reducedEtBin = etBin/4;
153  int reducedEtaBin = etaBin/4;
154  int reducedSumBin = sumBin/4;
155  int reducedR9Bin = r9Bin/4;
156 
157 
158  parts_.push_back("AllEcal");
159  parts_.push_back("Barrel");
160  parts_.push_back("Endcaps");
161 
162  types_.push_back("All");
163  types_.push_back("GoodCandidate");
164  if (!excludeBkgHistos_) types_.push_back("Background");
165 
166 
167 
169 
170  if (dbe_) {
171 
172  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer");
173 
174  //int values stored in MEs to keep track of how many histograms are in each folder
175  totalNumberOfHistos_efficiencyFolder = dbe_->bookInt("numberOfHistogramsInEfficiencyFolder");
176  totalNumberOfHistos_photonsFolder = dbe_->bookInt("numberOfHistogramsInPhotonsFolder");
177  totalNumberOfHistos_conversionsFolder = dbe_->bookInt("numberOfHistogramsInConversionsFolder");
178  totalNumberOfHistos_invMassFolder = dbe_->bookInt("numberOfHistogramsInInvMassFolder");
179 
180 
181  //Efficiency histograms
182 
183  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/Efficiencies");
184 
185  //don't number these histograms with the "bookHisto" method, since they'll be erased in the offline client
186  h_phoEta_Loose_ = dbe_->book1D("phoEtaLoose","Loose Photon #eta",etaBin,etaMin,etaMax);
187  h_phoEta_Tight_ = dbe_->book1D("phoEtaTight","Tight Photon #eta",etaBin,etaMin,etaMax);
188  h_phoEt_Loose_ = dbe_->book1D("phoEtLoose", "Loose Photon E_{T}",etBin,etMin,etMax);
189  h_phoEt_Tight_ = dbe_->book1D("phoEtTight", "Tight Photon E_{T}",etBin,etMin,etMax);
190 
191 
192  h_phoEta_preHLT_ = dbe_->book1D("phoEtaPreHLT", "Photon #eta: before HLT",etaBin,etaMin,etaMax);
193  h_phoEta_postHLT_ = dbe_->book1D("phoEtaPostHLT","Photon #eta: after HLT",etaBin,etaMin,etaMax);
194  h_phoEt_preHLT_ = dbe_->book1D("phoEtPreHLT", "Photon E_{T}: before HLT",etBin,etMin,etMax);
195  h_phoEt_postHLT_ = dbe_->book1D("phoEtPostHLT", "Photon E_{T}: after HLT",etBin,etMin,etMax);
196 
197  h_convEta_Loose_ = dbe_->book1D("convEtaLoose","Converted Loose Photon #eta",etaBin,etaMin,etaMax);
198  h_convEta_Tight_ = dbe_->book1D("convEtaTight","Converted Tight Photon #eta",etaBin,etaMin,etaMax);
199  h_convEt_Loose_ = dbe_->book1D("convEtLoose", "Converted Loose Photon E_{T}",etBin,etMin,etMax);
200  h_convEt_Tight_ = dbe_->book1D("convEtTight", "Converted Tight Photon E_{T}",etBin,etMin,etMax);
201 
202  h_phoEta_Vertex_ = dbe_->book1D("phoEtaVertex","Converted Photons before valid vertex cut: #eta",etaBin,etaMin,etaMax);
203 
204 
205  vector<MonitorElement*> temp1DVectorEta;
206  vector<MonitorElement*> temp1DVectorPhi;
207  vector<vector<MonitorElement*> > temp2DVectorPhi;
208 
209 
210  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
211  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
212  currentFolder_.str("");
213  currentFolder_ << "Egamma/PhotonAnalyzer/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV/Conversions";
215 
216  temp1DVectorEta.push_back(dbe_->book1D("phoConvEtaForEfficiency","Converted Photon #eta;#eta",etaBin,etaMin,etaMax));
217  for(uint part=0;part!=parts_.size();++part){
218  temp1DVectorPhi.push_back(dbe_->book1D("phoConvPhiForEfficiency"+parts_[part],"Converted Photon #phi;#phi",phiBin,phiMin,phiMax));
219  }
220  temp2DVectorPhi.push_back(temp1DVectorPhi);
221  temp1DVectorPhi.clear();
222  }
223  h_phoConvEtaForEfficiency_.push_back(temp1DVectorEta);
224  temp1DVectorEta.clear();
225  h_phoConvPhiForEfficiency_.push_back(temp2DVectorPhi);
226  temp2DVectorPhi.clear();
227  }
228 
229 
230 
231 
232  //Invariant mass plots
233 
234  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/InvMass");
235 
236  h_invMassAllPhotons_ = bookHisto("invMassAllIsolatedPhotons","Two photon invariant mass: All isolated photons;M (GeV)",etBin,etMin,etMax);
237  h_invMassPhotonsEBarrel_ = bookHisto("invMassIsoPhotonsEBarrel", "Two photon invariant mass: isolated photons in barrel; M (GeV)",etBin,etMin,etMax);
238  h_invMassPhotonsEEndcap_ = bookHisto("invMassIsoPhotonsEEndcap", "Two photon invariant mass: isolated photons in endcap; M (GeV)",etBin,etMin,etMax);
239 
240  h_invMassZeroWithTracks_= bookHisto("invMassZeroWithTracks", "Two photon invariant mass: Neither has tracks;M (GeV)", etBin,etMin,etMax);
241  h_invMassOneWithTracks_ = bookHisto("invMassOneWithTracks", "Two photon invariant mass: Only one has tracks;M (GeV)", etBin,etMin,etMax);
242  h_invMassTwoWithTracks_ = bookHisto("invMassTwoWithTracks", "Two photon invariant mass: Both have tracks;M (GeV)", etBin,etMin,etMax);
243 
244 
246 
247  //ENERGY VARIABLES
248 
249  book3DHistoVector(h_phoE_, "1D","phoE","Energy;E (GeV)",eBin,eMin,eMax);
250  book3DHistoVector(h_phoEt_, "1D","phoEt","E_{T};E_{T} (GeV)", etBin,etMin,etMax);
251 
252  //NUMBER OF PHOTONS
253 
254  book3DHistoVector(h_nPho_, "1D","nPho","Number of Photons per Event;# #gamma",numberBin,numberMin,numberMax);
255 
256  //GEOMETRICAL VARIABLES
257 
258  //photon eta/phi
259  book2DHistoVector(h_phoEta_, "1D","phoEta","#eta;#eta",etaBin,etaMin,etaMax) ;
260  book3DHistoVector(h_phoPhi_, "1D","phoPhi","#phi;#phi",phiBin,phiMin,phiMax) ;
261 
262  //supercluster eta/phi
263  book2DHistoVector(h_scEta_, "1D","scEta","SuperCluster #eta;#eta",etaBin,etaMin,etaMax) ;
264  book3DHistoVector(h_scPhi_, "1D","scPhi","SuperCluster #phi;#phi",phiBin,phiMin,phiMax) ;
265 
266  //SHOWER SHAPE VARIABLES
267 
268  //r9
269  book3DHistoVector(h_r9_, "1D","r9","R9;R9",r9Bin,r9Min, r9Max);
270  book2DHistoVector(h_r9VsEt_, "2D","r9VsEt2D","R9 vs E_{T};E_{T} (GeV);R9",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
271  book2DHistoVector(p_r9VsEt_, "Profile","r9VsEt","Avg R9 vs E_{T};E_{T} (GeV);R9",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
272  book2DHistoVector(h_r9VsEta_, "2D","r9VsEta2D","R9 vs #eta;#eta;R9",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
273  book2DHistoVector(p_r9VsEta_, "Profile","r9VsEta","Avg R9 vs #eta;#eta;R9",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
274 
275  //sigma ieta ieta
276  book3DHistoVector(h_phoSigmaIetaIeta_, "1D","phoSigmaIetaIeta","#sigma_{i#etai#eta};#sigma_{i#etai#eta}",sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
277  book2DHistoVector(h_sigmaIetaIetaVsEta_, "2D","sigmaIetaIetaVsEta2D","#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",reducedEtaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
278  book2DHistoVector(p_sigmaIetaIetaVsEta_, "Profile","sigmaIetaIetaVsEta","Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",etaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
279 
280  //e1x5
281  book2DHistoVector(h_e1x5VsEt_, "2D","e1x5VsEt2D","E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
282  book2DHistoVector(p_e1x5VsEt_, "Profile","e1x5VsEt","Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
283  book2DHistoVector(h_e1x5VsEta_, "2D","e1x5VsEta2D","E1x5 vs #eta;#eta;E1X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
284  book2DHistoVector(p_e1x5VsEta_, "Profile","e1x5VsEta","Avg E1x5 vs #eta;#eta;E1X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
285 
286  //e2x5
287  book2DHistoVector(h_e2x5VsEt_, "2D","e2x5VsEt2D","E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
288  book2DHistoVector(p_e2x5VsEt_, "Profile","e2x5VsEt","Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
289  book2DHistoVector(h_e2x5VsEta_, "2D","e2x5VsEta2D","E2x5 vs #eta;#eta;E2X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
290  book2DHistoVector(p_e2x5VsEta_, "Profile","e2x5VsEta","Avg E2x5 vs #eta;#eta;E2X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
291 
292  //r1x5
293  book2DHistoVector(h_r1x5VsEt_, "2D","r1x5VsEt2D","R1x5 vs E_{T};E_{T} (GeV);R1X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
294  book2DHistoVector(p_r1x5VsEt_, "Profile","r1x5VsEt","Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
295  book2DHistoVector(h_r1x5VsEta_, "2D","r1x5VsEta2D","R1x5 vs #eta;#eta;R1X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
296  book2DHistoVector(p_r1x5VsEta_, "Profile","r1x5VsEta","Avg R1x5 vs #eta;#eta;R1X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
297 
298  //r2x5
299  book2DHistoVector( h_r2x5VsEt_ ,"2D","r2x5VsEt2D","R2x5 vs E_{T};E_{T} (GeV);R2X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
300  book2DHistoVector( p_r2x5VsEt_ ,"Profile","r2x5VsEt","Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
301  book2DHistoVector( h_r2x5VsEta_ ,"2D","r2x5VsEta2D","R2x5 vs #eta;#eta;R2X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
302  book2DHistoVector( p_r2x5VsEta_ ,"Profile","r2x5VsEta","Avg R2x5 vs #eta;#eta;R2X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
303 
304  //maxEXtalOver3x3
305  book2DHistoVector( h_maxEXtalOver3x3VsEt_ ,"2D","maxEXtalOver3x3VsEt2D","(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",reducedEtBin,etMin,etMax,r9Bin,r9Min,r9Max);
306  book2DHistoVector( p_maxEXtalOver3x3VsEt_ ,"Profile","maxEXtalOver3x3VsEt","Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
307  book2DHistoVector( h_maxEXtalOver3x3VsEta_ ,"2D","maxEXtalOver3x3VsEta2D","(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",reducedEtaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
308  book2DHistoVector( p_maxEXtalOver3x3VsEta_ ,"Profile","maxEXtalOver3x3VsEta","Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
309 
310 
311  //TRACK ISOLATION VARIABLES
312 
313  //nTrackIsolSolid
314  book2DHistoVector( h_nTrackIsolSolid_ ,"1D","nIsoTracksSolid","Number Of Tracks in the Solid Iso Cone;# tracks",numberBin,numberMin,numberMax);
315  book2DHistoVector( h_nTrackIsolSolidVsEt_ ,"2D","nIsoTracksSolidVsEt2D","Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
316  book2DHistoVector( p_nTrackIsolSolidVsEt_ ,"Profile","nIsoTracksSolidVsEt","Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
317  book2DHistoVector( h_nTrackIsolSolidVsEta_ ,"2D","nIsoTracksSolidVsEta2D","Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
318  book2DHistoVector( p_nTrackIsolSolidVsEta_ ,"Profile","nIsoTracksSolidVsEta","Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
319 
320  //nTrackIsolHollow
321  book2DHistoVector( h_nTrackIsolHollow_ ,"1D","nIsoTracksHollow","Number Of Tracks in the Hollow Iso Cone;# tracks",numberBin,numberMin,numberMax);
322  book2DHistoVector( h_nTrackIsolHollowVsEt_ ,"2D","nIsoTracksHollowVsEt2D","Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
323  book2DHistoVector( p_nTrackIsolHollowVsEt_ ,"Profile","nIsoTracksHollowVsEt","Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
324  book2DHistoVector( h_nTrackIsolHollowVsEta_ ,"2D","nIsoTracksHollowVsEta2D","Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
325  book2DHistoVector( p_nTrackIsolHollowVsEta_ ,"Profile","nIsoTracksHollowVsEta","Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
326 
327  //trackPtSumSolid
328  book2DHistoVector( h_trackPtSumSolid_ ,"1D","isoPtSumSolid","Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
329  book2DHistoVector( h_trackPtSumSolidVsEt_ ,"2D","isoPtSumSolidVsEt2D","Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
330  book2DHistoVector( p_trackPtSumSolidVsEt_ ,"Profile","isoPtSumSolidVsEt","Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
331  book2DHistoVector( h_trackPtSumSolidVsEta_ ,"2D","isoPtSumSolidVsEta2D","Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
332  book2DHistoVector( p_trackPtSumSolidVsEta_ ,"Profile","isoPtSumSolidVsEta","Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
333 
334  //trackPtSumHollow
335  book2DHistoVector( h_trackPtSumHollow_ ,"1D","isoPtSumHollow","Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
336  book2DHistoVector( h_trackPtSumHollowVsEt_ ,"2D","isoPtSumHollowVsEt2D","Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
337  book2DHistoVector( p_trackPtSumHollowVsEt_ ,"Profile","isoPtSumHollowVsEt","Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
338  book2DHistoVector( h_trackPtSumHollowVsEta_ ,"2D","isoPtSumHollowVsEta2D","Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
339  book2DHistoVector( p_trackPtSumHollowVsEta_ ,"Profile","isoPtSumHollowVsEta","Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
340 
341 
342  //CALORIMETER ISOLATION VARIABLES
343 
344  //ecal sum
345  book2DHistoVector( h_ecalSum_ ,"1D","ecalSum","Ecal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
346  book2DHistoVector( h_ecalSumEBarrel_,"1D","ecalSumEBarrel","Ecal Sum in the IsoCone for Barrel;E (GeV)",sumBin,sumMin,sumMax);
347  book2DHistoVector( h_ecalSumEEndcap_,"1D","ecalSumEEndcap","Ecal Sum in the IsoCone for Endcap;E (GeV)",sumBin,sumMin,sumMax);
348  book2DHistoVector( h_ecalSumVsEt_ ,"2D","ecalSumVsEt2D","Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
349  book3DHistoVector( p_ecalSumVsEt_ ,"Profile","ecalSumVsEt","Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
350  book2DHistoVector( h_ecalSumVsEta_ ,"2D","ecalSumVsEta2D","Ecal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
351  book2DHistoVector( p_ecalSumVsEta_ ,"Profile","ecalSumVsEta","Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
352 
353  //hcal sum
354  book2DHistoVector( h_hcalSum_ ,"1D","hcalSum","Hcal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
355  book2DHistoVector( h_hcalSumEBarrel_,"1D","hcalSumEBarrel","Hcal Sum in the IsoCone for Barrel;E (GeV)",sumBin,sumMin,sumMax);
356  book2DHistoVector( h_hcalSumEEndcap_,"1D","hcalSumEEndcap","Hcal Sum in the IsoCone for Endcap;E (GeV)",sumBin,sumMin,sumMax);
357  book2DHistoVector( h_hcalSumVsEt_ ,"2D","hcalSumVsEt2D","Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
358  book3DHistoVector( p_hcalSumVsEt_ ,"Profile","hcalSumVsEt","Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
359  book2DHistoVector( h_hcalSumVsEta_ ,"2D","hcalSumVsEta2D","Hcal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
360  book2DHistoVector( p_hcalSumVsEta_ ,"Profile","hcalSumVsEta","Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
361 
362  //h over e
363  book3DHistoVector( h_hOverE_ ,"1D","hOverE","H/E;H/E",hOverEBin,hOverEMin,hOverEMax);
364  book2DHistoVector( p_hOverEVsEt_ ,"Profile","hOverEVsEt","Avg H/E vs Et;E_{T} (GeV);H/E",etBin,etMin,etMax,hOverEBin,hOverEMin,hOverEMax);
365  book2DHistoVector( p_hOverEVsEta_ ,"Profile","hOverEVsEta","Avg H/E vs #eta;#eta;H/E",etaBin,etaMin,etaMax,hOverEBin,hOverEMin,hOverEMax);
366  book3DHistoVector( h_h1OverE_ ,"1D","h1OverE","H/E for Depth 1;H/E",hOverEBin,hOverEMin,hOverEMax);
367  book3DHistoVector( h_h2OverE_ ,"1D","h2OverE","H/E for Depth 2;H/E",hOverEBin,hOverEMin,hOverEMax);
368 
369 
370  //OTHER VARIABLES
371 
372  //bad channel histograms
373  book2DHistoVector( h_phoEt_BadChannels_ ,"1D","phoEtBadChannels", "Fraction Containing Bad Channels: E_{T};E_{T} (GeV)",etBin,etMin,etMax);
374  book2DHistoVector( h_phoEta_BadChannels_ ,"1D","phoEtaBadChannels","Fraction Containing Bad Channels: #eta;#eta",etaBin,etaMin,etaMax);
375  book2DHistoVector( h_phoPhi_BadChannels_ ,"1D","phoPhiBadChannels","Fraction Containing Bad Channels: #phi;#phi",phiBin,phiMin,phiMax);
376 
377 
379 
380  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/AllPhotons/Et Above 0 GeV/Conversions");
381 
382  //ENERGY VARIABLES
383 
384  book3DHistoVector( h_phoConvE_ ,"1D","phoConvE","E;E (GeV)",eBin,eMin,eMax);
385  book3DHistoVector( h_phoConvEt_ ,"1D","phoConvEt","E_{T};E_{T} (GeV)",etBin,etMin,etMax);
386 
387  //GEOMETRICAL VARIABLES
388 
389  book2DHistoVector( h_phoConvEta_ ,"1D","phoConvEta","#eta;#eta",etaBin,etaMin,etaMax);
390  book3DHistoVector( h_phoConvPhi_ ,"1D","phoConvPhi","#phi;#phi",phiBin,phiMin,phiMax);
391 
392  //NUMBER OF PHOTONS
393 
394  book3DHistoVector( h_nConv_ ,"1D","nConv","Number Of Conversions per Event ;# conversions",numberBin,numberMin,numberMax);
395 
396  //SHOWER SHAPE VARIABLES
397 
398  book3DHistoVector( h_phoConvR9_ ,"1D","phoConvR9","R9;R9",r9Bin,r9Min,r9Max);
399 
400  //TRACK RELATED VARIABLES
401 
402  book3DHistoVector( h_eOverPTracks_ ,"1D","eOverPTracks","E/P;E/P",eOverPBin,eOverPMin,eOverPMax);
403  book3DHistoVector( h_pOverETracks_ ,"1D","pOverETracks","P/E;P/E",eOverPBin,eOverPMin,eOverPMax);
404 
405  book3DHistoVector( h_dPhiTracksAtVtx_ ,"1D","dPhiTracksAtVtx", "#Delta#phi of Tracks at Vertex;#Delta#phi",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
406  book3DHistoVector( h_dPhiTracksAtEcal_ ,"1D","dPhiTracksAtEcal", "Abs(#Delta#phi) of Tracks at Ecal;#Delta#phi",dPhiTracksBin,0.,dPhiTracksMax);
407  book3DHistoVector( h_dEtaTracksAtEcal_ ,"1D","dEtaTracksAtEcal", "#Delta#eta of Tracks at Ecal;#Delta#eta",dEtaTracksBin,dEtaTracksMin,dEtaTracksMax);
408 
409  book3DHistoVector( h_dCotTracks_ ,"1D","dCotTracks","#Deltacot(#theta) of Tracks;#Deltacot(#theta)",dEtaTracksBin,dEtaTracksMin,dEtaTracksMax);
410  book2DHistoVector( p_dCotTracksVsEta_ ,"Profile","dCotTracksVsEta","Avg #Deltacot(#theta) of Tracks vs #eta;#eta;#Deltacot(#theta)",etaBin,etaMin,etaMax,dEtaTracksBin,dEtaTracksMin,dEtaTracksMax);
411 
412  book2DHistoVector( p_nHitsVsEta_ ,"Profile","nHitsVsEta","Avg Number of Hits per Track vs #eta;#eta;# hits",etaBin,etaMin,etaMax,etaBin,0,16);
413 
414  book2DHistoVector( h_tkChi2_ ,"1D","tkChi2","#chi^{2} of Track Fitting;#chi^{2}",chi2Bin,chi2Min,chi2Max);
415  book2DHistoVector( p_tkChi2VsEta_ ,"Profile","tkChi2VsEta","Avg #chi^{2} of Track Fitting vs #eta;#eta;#chi^{2}",etaBin,etaMin,etaMax,chi2Bin,chi2Min,chi2Max);
416 
417  //VERTEX RELATED VARIABLES
418 
419  book2DHistoVector( h_convVtxRvsZ_ ,"2D","convVtxRvsZ","Vertex Position;Z (cm);R (cm)",500,zMin,zMax,rBin,rMin,rMax);
420  book2DHistoVector( h_convVtxZEndcap_ ,"1D","convVtxZEndcap", "Vertex Position: #eta > 1.5;Z (cm)",zBin,zMin,zMax);
421  book2DHistoVector( h_convVtxZ_ ,"1D","convVtxZ", "Vertex Position;Z (cm)",zBin,zMin,zMax);
422  book2DHistoVector( h_convVtxR_ ,"1D","convVtxR", "Vertex Position: #eta < 1;R (cm)",rBin,rMin,rMax);
423  book2DHistoVector( h_convVtxYvsX_ ,"2D","convVtxYvsX","Vertex Position: #eta < 1;X (cm);Y (cm)",xBin,xMin,xMax,yBin,yMin,yMax);
424 
425 
426 
427  book2DHistoVector( h_vertexChi2Prob_ ,"1D","vertexChi2Prob","#chi^{2} Probability of Vertex Fitting;#chi^{2}",100,0.,1.0);
428 
429 
430  }//end if(dbe_)
431 
432 
433 }//end BeginJob
std::vector< std::vector< MonitorElement * > > h_sigmaIetaIetaVsEta_
type
Definition: HCALResponse.h:21
MonitorElement * h_invMassOneWithTracks_
T getParameter(std::string const &) const
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_
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 * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
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_
tuple yBin
Definition: cuy.py:891
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< MonitorElement * > > h_hcalSumEBarrel_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhiForEfficiency_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEt_
std::vector< std::vector< MonitorElement * > > h_nTrackIsolHollow_
MonitorElement * h_phoEta_preHLT_
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_
MonitorElement * h_convEt_Loose_
std::vector< std::vector< MonitorElement * > > h_trackPtSumSolidVsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_pOverETracks_
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_hcalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_vertexChi2Prob_
MonitorElement * h_phoEt_postHLT_
std::stringstream currentFolder_
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_
std::vector< std::vector< MonitorElement * > > h_convVtxR_
std::vector< std::vector< MonitorElement * > > h_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEta_
std::vector< std::vector< MonitorElement * > > h_phoConvEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_eOverPTracks_
std::vector< std::vector< MonitorElement * > > h_maxEXtalOver3x3VsEt_
MonitorElement * h_phoEt_Tight_
std::vector< std::vector< MonitorElement * > > h_hcalSum_
MonitorElement * h_invMassPhotonsEBarrel_
std::vector< std::vector< MonitorElement * > > p_hcalSumVsEta_
std::vector< std::vector< MonitorElement * > > h_r1x5VsEta_
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvEt_
std::vector< std::vector< MonitorElement * > > p_nHitsVsEta_
std::vector< std::string > types_
MonitorElement * totalNumberOfHistos_invMassFolder
std::vector< std::vector< std::vector< MonitorElement * > > > h_h1OverE_
DQMStore * dbe_
std::vector< std::vector< MonitorElement * > > p_r1x5VsEta_
std::vector< std::vector< MonitorElement * > > p_hOverEVsEt_
std::vector< std::vector< std::vector< MonitorElement * > > > h_dPhiTracksAtVtx_
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_
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_
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_
std::vector< std::vector< MonitorElement * > > p_e1x5VsEt_
part
Definition: HCALResponse.h:20
MonitorElement * h_invMassPhotonsEEndcap_
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::vector< std::vector< MonitorElement * > > h_tkChi2_
std::vector< std::vector< MonitorElement * > > h_trackPtSumHollowVsEta_
edm::ParameterSet parameters_
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_
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:779
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_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
std::vector< std::vector< std::vector< MonitorElement * > > > h_phoConvPhi_
std::vector< std::vector< MonitorElement * > > h_ecalSumVsEt_
std::vector< std::vector< MonitorElement * > > h_ecalSumEEndcap_
std::vector< std::vector< MonitorElement * > > h_ecalSumEBarrel_
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_
void PhotonAnalyzer::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 
)
private

Definition at line 1104 of file PhotonAnalyzer.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, dbe_, DQMStore::pwd(), DQMStore::setCurrentFolder(), indexGen::title, SiStripMonitorClusterAlca_cfi::xmax, SiStripMonitorClusterAlca_cfi::xmin, SiStripMonitorClusterAlca_cfi::ymax, and SiStripMonitorClusterAlca_cfi::ymin.

1108 {
1109  int histo_index = 0;
1110 
1111  vector<MonitorElement*> temp1DVector;
1112 // vector<vector<MonitorElement*> > temp2DVector;
1113 
1114  //determining which folder we're in
1115  bool conversionPlot = false;
1116  if(dbe_->pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
1117  bool TwoDPlot = false;
1118  if(histoName.find( "2D" ) != string::npos) TwoDPlot = true;
1119 
1120  if(conversionPlot){
1122  histo_index = histo_index_conversions_;
1123  }
1124  else{
1126  histo_index = histo_index_photons_;
1127  }
1128 
1129  stringstream histo_number_stream;
1130  histo_number_stream << "h_";
1131  if(histo_index<10) histo_number_stream << "0";
1132  histo_number_stream << histo_index << "_";
1133 
1134 
1135 
1136  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
1137 
1138  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
1139 
1140  currentFolder_.str("");
1141  currentFolder_ << "Egamma/PhotonAnalyzer/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
1142  if(conversionPlot) currentFolder_ << "/Conversions";
1143 
1145 
1146  string kind;
1147  if(conversionPlot) kind = " Conversions: ";
1148  else kind = " Photons: ";
1149 
1150  if(histoType=="1D") temp1DVector.push_back(dbe_->book1D( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax));
1151  else if(histoType=="2D"){
1152  if((TwoDPlot && type==0) || !TwoDPlot){//only book the 2D plots in the "AllPhotons" folder
1153  temp1DVector.push_back(dbe_->book2D( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax));
1154  }
1155  }
1156  else if(histoType=="Profile") temp1DVector.push_back(dbe_->bookProfile( histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
1157  else cout << "bad histoType\n";
1158  }
1159 
1160  temp2DVector.push_back(temp1DVector);
1161  temp1DVector.clear();
1162  }
1163 
1164 // return temp2DVector;
1165 
1166 }
type
Definition: HCALResponse.h:21
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
int histo_index_conversions_
std::stringstream currentFolder_
std::vector< std::string > types_
DQMStore * dbe_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1186
tuple cout
Definition: gather_cfg.py:121
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1000
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
const std::string & pwd(void) const
Definition: DQMStore.cc:556
void PhotonAnalyzer::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 
)
private

Definition at line 1169 of file PhotonAnalyzer.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), gather_cfg::cout, GOODCOLL_filter_cfg::cut, dbe_, DQMStore::pwd(), DQMStore::setCurrentFolder(), indexGen::title, SiStripMonitorClusterAlca_cfi::xmax, SiStripMonitorClusterAlca_cfi::xmin, SiStripMonitorClusterAlca_cfi::ymax, and SiStripMonitorClusterAlca_cfi::ymin.

1173 {
1174 
1175 
1176  int histo_index = 0;
1177 
1178  vector<MonitorElement*> temp1DVector;
1179  vector<vector<MonitorElement*> > temp2DVector;
1180 // vector<vector<vector<MonitorElement*> > > temp3DVector;
1181 
1182 
1183  //determining which folder we're in
1184  bool conversionPlot = false;
1185  if(dbe_->pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
1186 
1187 
1188  if(conversionPlot){
1190  histo_index = histo_index_conversions_;
1191  }
1192  else{
1194  histo_index = histo_index_photons_;
1195  }
1196 
1197 
1198 
1199  stringstream histo_number_stream;
1200  histo_number_stream << "h_";
1201  if(histo_index<10) histo_number_stream << "0";
1202  histo_number_stream << histo_index << "_";
1203 
1204  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
1205 
1206  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
1207 
1208  for(uint part=0;part!=parts_.size();++part){ //looping over different parts of the ecal
1209 
1210  currentFolder_.str("");
1211  currentFolder_ << "Egamma/PhotonAnalyzer/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
1212  if(conversionPlot) currentFolder_ << "/Conversions";
1213 
1215 
1216  string kind;
1217  if(conversionPlot) kind = " Conversions: ";
1218  else kind = " Photons: ";
1219 
1220  if(histoType=="1D") temp1DVector.push_back(dbe_->book1D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax));
1221  else if(histoType=="2D") temp1DVector.push_back(dbe_->book2D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax));
1222  else if(histoType=="Profile") temp1DVector.push_back(dbe_->bookProfile( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
1223  else cout << "bad histoType\n";
1224 
1225 
1226  }
1227 
1228  temp2DVector.push_back(temp1DVector);
1229  temp1DVector.clear();
1230  }
1231 
1232  temp3DVector.push_back(temp2DVector);
1233  temp2DVector.clear();
1234  }
1235 
1236  // return temp3DVector;
1237 }
type
Definition: HCALResponse.h:21
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
std::vector< std::string > parts_
int histo_index_conversions_
std::stringstream currentFolder_
std::vector< std::string > types_
DQMStore * dbe_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1186
part
Definition: HCALResponse.h:20
tuple cout
Definition: gather_cfg.py:121
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1000
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
const std::string & pwd(void) const
Definition: DQMStore.cc:556
MonitorElement * PhotonAnalyzer::bookHisto ( std::string  histoName,
std::string  title,
int  bin,
double  min,
double  max 
)
private

Definition at line 1079 of file PhotonAnalyzer.cc.

References newFWLiteAna::bin, DQMStore::book1D(), dbe_, max(), bookConverter::min, DQMStore::pwd(), and indexGen::title.

1080 {
1081 
1082  int histo_index = 0;
1083  stringstream histo_number_stream;
1084 
1085  //determining which folder we're in
1086  if(dbe_->pwd().find( "InvMass" ) != string::npos){
1088  histo_index = histo_index_invMass_;
1089  }
1090  if(dbe_->pwd().find( "Efficiencies" ) != string::npos){
1092  histo_index = histo_index_efficiency_;
1093  }
1094 
1095  histo_number_stream << "h_";
1096  if(histo_index<10) histo_number_stream << "0";
1097  histo_number_stream << histo_index;
1098 
1099  return dbe_->book1D(histo_number_stream.str()+"_"+histoName,title,bin,min,max);
1100 
1101 }
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
const T & max(const T &a, const T &b)
DQMStore * dbe_
const std::string & pwd(void) const
Definition: DQMStore.cc:556
void PhotonAnalyzer::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 1011 of file PhotonAnalyzer.cc.

References dbe_, DQMStore::save(), and DQMStore::setCurrentFolder().

1012 {
1013  //dbe_->showDirStructure();
1014  if(standAlone_){
1015  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer");
1016 
1017  //keep track of how many histos are in each folder
1022 
1023 
1025  }
1026 
1027 
1028 }
MonitorElement * totalNumberOfHistos_photonsFolder
MonitorElement * totalNumberOfHistos_efficiencyFolder
int histo_index_conversions_
MonitorElement * totalNumberOfHistos_conversionsFolder
void Fill(long long x)
MonitorElement * totalNumberOfHistos_invMassFolder
DQMStore * dbe_
std::string outputFileName_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2296
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void PhotonAnalyzer::endRun ( const edm::Run run,
const edm::EventSetup setup 
)
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 994 of file PhotonAnalyzer.cc.

References dbe_, and DQMStore::setCurrentFolder().

995 {
996  if(!standAlone_){
997 
998  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer");
999 
1000  //keep track of how many histos are in each folder
1005 
1006  }
1007 
1008 }
MonitorElement * totalNumberOfHistos_photonsFolder
MonitorElement * totalNumberOfHistos_efficiencyFolder
int histo_index_conversions_
MonitorElement * totalNumberOfHistos_conversionsFolder
void Fill(long long x)
MonitorElement * totalNumberOfHistos_invMassFolder
DQMStore * dbe_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void PhotonAnalyzer::fill2DHistoVector ( std::vector< std::vector< MonitorElement * > > &  histoVector,
double  x,
int  cut,
int  type 
)
private

Definition at line 1053 of file PhotonAnalyzer.cc.

References GOODCOLL_filter_cfg::cut.

1053  {
1054 
1055  histoVector[cut][0]->Fill(x);
1056  histoVector[cut][type]->Fill(x);
1057 
1058 }
type
Definition: HCALResponse.h:21
Definition: DDAxes.h:10
void PhotonAnalyzer::fill2DHistoVector ( std::vector< std::vector< MonitorElement * > > &  histoVector,
double  x,
double  y,
int  cut,
int  type 
)
private

Definition at line 1046 of file PhotonAnalyzer.cc.

References GOODCOLL_filter_cfg::cut, and findQualityFiles::size.

1046  {
1047 
1048  histoVector[cut][0]->Fill(x,y);
1049  if(histoVector[cut].size()>1) histoVector[cut][type]->Fill(x,y); //don't try to fill 2D histos that are only in the "AllPhotons" folder
1050 
1051 }
type
Definition: HCALResponse.h:21
Definition: DDAxes.h:10
tuple size
Write out results.
void PhotonAnalyzer::fill3DHistoVector ( std::vector< std::vector< std::vector< MonitorElement * > > > &  histoVector,
double  x,
int  cut,
int  type,
int  part 
)
private

Definition at line 1060 of file PhotonAnalyzer.cc.

References GOODCOLL_filter_cfg::cut.

1060  {
1061 
1062  histoVector[cut][0][0]->Fill(x);
1063  histoVector[cut][0][part]->Fill(x);
1064  histoVector[cut][type][0]->Fill(x);
1065  histoVector[cut][type][part]->Fill(x);
1066 
1067 }
type
Definition: HCALResponse.h:21
part
Definition: HCALResponse.h:20
Definition: DDAxes.h:10
void PhotonAnalyzer::fill3DHistoVector ( std::vector< std::vector< std::vector< MonitorElement * > > > &  histoVector,
double  x,
double  y,
int  cut,
int  type,
int  part 
)
private

Definition at line 1069 of file PhotonAnalyzer.cc.

References GOODCOLL_filter_cfg::cut.

1069  {
1070 
1071  histoVector[cut][0][0]->Fill(x,y);
1072  histoVector[cut][0][part]->Fill(x,y);
1073  histoVector[cut][type][0]->Fill(x,y);
1074  histoVector[cut][type][part]->Fill(x,y);
1075 
1076 }
type
Definition: HCALResponse.h:21
part
Definition: HCALResponse.h:20
Definition: DDAxes.h:10
float PhotonAnalyzer::phiNormalization ( float &  a)
private

Definition at line 1034 of file PhotonAnalyzer.cc.

References phi, PI, and TWOPI.

1035 {
1036  const float PI = 3.1415927;
1037  const float TWOPI = 2.0*PI;
1038 
1039  if(phi > PI) {phi = phi - TWOPI;}
1040  if(phi < -PI) {phi = phi + TWOPI;}
1041 
1042  return phi;
1043 }
#define PI
#define TWOPI
EgammaCoreTools.
Definition: DDAxes.h:10

Member Data Documentation

edm::EDGetTokenT<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > > PhotonAnalyzer::barrelRecHit_token_
private

Definition at line 160 of file PhotonAnalyzer.h.

std::stringstream PhotonAnalyzer::currentFolder_
private

Definition at line 189 of file PhotonAnalyzer.h.

double PhotonAnalyzer::cutStep_
private

Definition at line 169 of file PhotonAnalyzer.h.

DQMStore* PhotonAnalyzer::dbe_
private

Definition at line 188 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > > PhotonAnalyzer::endcapRecHit_token_
private

Definition at line 162 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::excludeBkgHistos_
private

Definition at line 178 of file PhotonAnalyzer.h.

std::string PhotonAnalyzer::fName_
private

Definition at line 149 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Loose_
private

Definition at line 223 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEt_Tight_
private

Definition at line 224 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Loose_
private

Definition at line 221 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_convEta_Tight_
private

Definition at line 222 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxR_
private

Definition at line 319 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxRvsZ_
private

Definition at line 315 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxYvsX_
private

Definition at line 318 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxZ_
private

Definition at line 317 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_convVtxZEndcap_
private

Definition at line 316 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dCotTracks_
private

Definition at line 383 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dEtaTracksAtEcal_
private

Definition at line 388 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtEcal_
private

Definition at line 386 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_dPhiTracksAtVtx_
private

Definition at line 385 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e1x5VsEt_
private

Definition at line 325 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e1x5VsEta_
private

Definition at line 326 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e2x5VsEt_
private

Definition at line 328 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_e2x5VsEta_
private

Definition at line 329 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSum_
private

Definition at line 259 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumEBarrel_
private

Definition at line 260 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumEEndcap_
private

Definition at line 261 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumVsEt_
private

Definition at line 251 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_ecalSumVsEta_
private

Definition at line 243 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_eOverPTracks_
private

Definition at line 380 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_h1OverE_
private

Definition at line 367 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_h2OverE_
private

Definition at line 368 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSum_
private

Definition at line 262 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumEBarrel_
private

Definition at line 263 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumEEndcap_
private

Definition at line 264 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumVsEt_
private

Definition at line 252 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_hcalSumVsEta_
private

Definition at line 244 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_hOverE_
private

Definition at line 366 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassAllPhotons_
private

Definition at line 232 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassOneWithTracks_
private

Definition at line 230 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEBarrel_
private

Definition at line 233 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassPhotonsEEndcap_
private

Definition at line 234 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassTwoWithTracks_
private

Definition at line 229 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_invMassZeroWithTracks_
private

Definition at line 231 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_maxEXtalOver3x3VsEt_
private

Definition at line 331 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_maxEXtalOver3x3VsEta_
private

Definition at line 332 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nConv_
private

Definition at line 378 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_nPho_
private

Definition at line 372 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollow_
private

Definition at line 257 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollowVsEt_
private

Definition at line 249 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolHollowVsEta_
private

Definition at line 241 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolid_
private

Definition at line 255 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolidVsEt_
private

Definition at line 247 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_nTrackIsolSolidVsEta_
private

Definition at line 239 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvE_
private

Definition at line 374 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvEt_
private

Definition at line 375 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvEta_
private

Definition at line 313 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoConvEtaForEfficiency_
private

Definition at line 307 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvPhi_
private

Definition at line 362 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvPhiForEfficiency_
private

Definition at line 361 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoConvR9_
private

Definition at line 376 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoE_
private

Definition at line 356 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoEt_
private

Definition at line 357 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEt_BadChannels_
private

Definition at line 310 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Loose_
private

Definition at line 213 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_postHLT_
private

Definition at line 219 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_preHLT_
private

Definition at line 218 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEt_Tight_
private

Definition at line 214 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEta_
private

Definition at line 303 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoEta_BadChannels_
private

Definition at line 309 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Loose_
private

Definition at line 211 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_postHLT_
private

Definition at line 217 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_preHLT_
private

Definition at line 216 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Tight_
private

Definition at line 212 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::h_phoEta_Vertex_
private

Definition at line 227 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoPhi_
private

Definition at line 359 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_phoPhi_BadChannels_
private

Definition at line 311 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_phoSigmaIetaIeta_
private

Definition at line 370 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_pOverETracks_
private

Definition at line 381 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r1x5VsEt_
private

Definition at line 334 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r1x5VsEta_
private

Definition at line 335 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r2x5VsEt_
private

Definition at line 337 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r2x5VsEta_
private

Definition at line 338 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_r9_
private

Definition at line 358 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9VsEt_
private

Definition at line 321 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_r9VsEta_
private

Definition at line 322 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_scEta_
private

Definition at line 304 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::h_scPhi_
private

Definition at line 360 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_sigmaIetaIetaVsEta_
private

Definition at line 340 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_tkChi2_
private

Definition at line 342 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollow_
private

Definition at line 258 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollowVsEt_
private

Definition at line 250 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumHollowVsEta_
private

Definition at line 242 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolid_
private

Definition at line 256 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolidVsEt_
private

Definition at line 248 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_trackPtSumSolidVsEta_
private

Definition at line 240 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::h_vertexChi2Prob_
private

Definition at line 344 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_conversions_
private

Definition at line 192 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_efficiency_
private

Definition at line 193 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_invMass_
private

Definition at line 194 of file PhotonAnalyzer.h.

int PhotonAnalyzer::histo_index_photons_
private

Definition at line 191 of file PhotonAnalyzer.h.

double PhotonAnalyzer::invMassEtCut_
private

Definition at line 167 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::isHeavyIon_
private

Definition at line 182 of file PhotonAnalyzer.h.

int PhotonAnalyzer::isolationStrength_
private

Definition at line 180 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::minimalSetOfHistos_
private

Definition at line 177 of file PhotonAnalyzer.h.

double PhotonAnalyzer::minPhoEtCut_
private

Definition at line 166 of file PhotonAnalyzer.h.

int PhotonAnalyzer::nEntry_
private

Definition at line 198 of file PhotonAnalyzer.h.

int PhotonAnalyzer::nEvt_
private

Definition at line 197 of file PhotonAnalyzer.h.

int PhotonAnalyzer::numberOfSteps_
private

Definition at line 170 of file PhotonAnalyzer.h.

std::string PhotonAnalyzer::outputFileName_
private

Definition at line 175 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_dCotTracksVsEta_
private

Definition at line 298 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e1x5VsEt_
private

Definition at line 281 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e1x5VsEta_
private

Definition at line 282 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e2x5VsEt_
private

Definition at line 284 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_e2x5VsEta_
private

Definition at line 285 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::p_ecalSumVsEt_
private

Definition at line 353 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_ecalSumVsEta_
private

Definition at line 270 of file PhotonAnalyzer.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonAnalyzer::p_hcalSumVsEt_
private

Definition at line 354 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hcalSumVsEta_
private

Definition at line 271 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hOverEVsEt_
private

Definition at line 301 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_hOverEVsEta_
private

Definition at line 300 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_maxEXtalOver3x3VsEt_
private

Definition at line 287 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_maxEXtalOver3x3VsEta_
private

Definition at line 288 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nHitsVsEta_
private

Definition at line 346 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolHollowVsEt_
private

Definition at line 275 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolHollowVsEta_
private

Definition at line 268 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolSolidVsEt_
private

Definition at line 273 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_nTrackIsolSolidVsEta_
private

Definition at line 266 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r1x5VsEt_
private

Definition at line 290 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r1x5VsEta_
private

Definition at line 291 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r2x5VsEt_
private

Definition at line 293 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r2x5VsEta_
private

Definition at line 294 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r9VsEt_
private

Definition at line 278 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_r9VsEta_
private

Definition at line 279 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_sigmaIetaIetaVsEta_
private

Definition at line 296 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_tkChi2VsEta_
private

Definition at line 348 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumHollowVsEt_
private

Definition at line 276 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumHollowVsEta_
private

Definition at line 269 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumSolidVsEt_
private

Definition at line 274 of file PhotonAnalyzer.h.

std::vector<std::vector<MonitorElement*> > PhotonAnalyzer::p_trackPtSumSolidVsEta_
private

Definition at line 267 of file PhotonAnalyzer.h.

edm::ParameterSet PhotonAnalyzer::parameters_
private
std::vector<std::string> PhotonAnalyzer::parts_
private

Definition at line 201 of file PhotonAnalyzer.h.

edm::EDGetTokenT<std::vector<reco::Photon> > PhotonAnalyzer::photon_token_
private

Definition at line 154 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::ValueMap<bool> > PhotonAnalyzer::PhotonIDLoose_token_
private

Definition at line 156 of file PhotonAnalyzer.h.

edm::EDGetTokenT<edm::ValueMap<bool> > PhotonAnalyzer::PhotonIDTight_token_
private

Definition at line 158 of file PhotonAnalyzer.h.

unsigned int PhotonAnalyzer::prescaleFactor_
private

Definition at line 152 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::standAlone_
private

Definition at line 174 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_conversionsFolder
private

Definition at line 208 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_efficiencyFolder
private

Definition at line 205 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_invMassFolder
private

Definition at line 206 of file PhotonAnalyzer.h.

MonitorElement* PhotonAnalyzer::totalNumberOfHistos_photonsFolder
private

Definition at line 207 of file PhotonAnalyzer.h.

edm::EDGetTokenT<trigger::TriggerEvent> PhotonAnalyzer::triggerEvent_token_
private

Definition at line 164 of file PhotonAnalyzer.h.

std::vector<std::string> PhotonAnalyzer::types_
private

Definition at line 200 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useBinning_
private

Definition at line 172 of file PhotonAnalyzer.h.

bool PhotonAnalyzer::useTriggerFiltering_
private

Definition at line 173 of file PhotonAnalyzer.h.

int PhotonAnalyzer::verbosity_
private

Definition at line 150 of file PhotonAnalyzer.h.