CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
L1TEGammaOffline Class Reference

#include <L1TEGammaOffline.h>

Inheritance diagram for L1TEGammaOffline:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 L1TEGammaOffline (const edm::ParameterSet &ps)
 
 ~L1TEGammaOffline () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void beginRun (edm::Run const &, edm::EventSetup const &) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &eSetup) override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &eSetup) override
 
void endRun (edm::Run const &run, edm::EventSetup const &eSetup) override
 
- 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)
 

Private Member Functions

void bookElectronHistos (DQMStore::IBooker &)
 
void bookPhotonHistos (DQMStore::IBooker &)
 
double calcDeltaPhi (double phi1, double phi2)
 
double Distance (const reco::Candidate &c1, const reco::Candidate &c2)
 
double DistancePhi (const reco::Candidate &c1, const reco::Candidate &c2)
 
void fillElectrons (edm::Event const &e, const unsigned int nVertex)
 
void fillPhotons (edm::Event const &e, const unsigned int nVertex)
 
bool findTagAndProbePair (edm::Handle< reco::GsfElectronCollection > const &electrons)
 
bool passesLooseEleId (reco::GsfElectron const &electron) const
 
bool passesMediumEleId (reco::GsfElectron const &electron) const
 

Private Attributes

std::vector< double > deepInspectionElectronThresholds_
 
std::string efficiencyFolder_
 
std::vector< double > electronEfficiencyBins_
 
std::vector< double > electronEfficiencyThresholds_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronEta_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronPhi_total_
 
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_pass_
 
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
 
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
 
MonitorElementh_L1EGammaEtavsElectronEta_
 
MonitorElementh_L1EGammaEtavsPhotonEta_
 
MonitorElementh_L1EGammaETvsElectronET_EB_
 
MonitorElementh_L1EGammaETvsElectronET_EB_EE_
 
MonitorElementh_L1EGammaETvsElectronET_EE_
 
MonitorElementh_L1EGammaETvsPhotonET_EB_
 
MonitorElementh_L1EGammaETvsPhotonET_EB_EE_
 
MonitorElementh_L1EGammaETvsPhotonET_EE_
 
MonitorElementh_L1EGammaPhivsElectronPhi_EB_
 
MonitorElementh_L1EGammaPhivsElectronPhi_EB_EE_
 
MonitorElementh_L1EGammaPhivsElectronPhi_EE_
 
MonitorElementh_L1EGammaPhivsPhotonPhi_EB_
 
MonitorElementh_L1EGammaPhivsPhotonPhi_EB_EE_
 
MonitorElementh_L1EGammaPhivsPhotonPhi_EE_
 
MonitorElementh_nVertex_
 
MonitorElementh_resolutionElectronET_EB_
 
MonitorElementh_resolutionElectronET_EB_EE_
 
MonitorElementh_resolutionElectronET_EE_
 
MonitorElementh_resolutionElectronEta_
 
MonitorElementh_resolutionElectronPhi_EB_
 
MonitorElementh_resolutionElectronPhi_EB_EE_
 
MonitorElementh_resolutionElectronPhi_EE_
 
MonitorElementh_resolutionPhotonET_EB_
 
MonitorElementh_resolutionPhotonET_EB_EE_
 
MonitorElementh_resolutionPhotonET_EE_
 
MonitorElementh_resolutionPhotonEta_
 
MonitorElementh_resolutionPhotonPhi_EB_
 
MonitorElementh_resolutionPhotonPhi_EB_EE_
 
MonitorElementh_resolutionPhotonPhi_EE_
 
MonitorElementh_tagAndProbeMass_
 
std::string histFolder_
 
std::vector< double > photonEfficiencyBins_
 
std::vector< double > photonEfficiencyThresholds_
 
reco::GsfElectron probeElectron_
 
double probeToL1Offset_
 
math::XYZPoint PVPoint_
 
edm::EDGetTokenT< l1t::EGammaBxCollectionstage2CaloLayer2EGammaToken_
 
double tagAndProbleInvariantMass_
 
reco::GsfElectron tagElectron_
 
edm::EDGetTokenT< reco::BeamSpottheBSCollection_
 
edm::EDGetTokenT< reco::GsfElectronCollectiontheGsfElectronCollection_
 
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
 
edm::EDGetTokenT< reco::VertexCollectionthePVCollection_
 
edm::EDGetTokenT< trigger::TriggerEventtriggerEvent_
 
edm::InputTag triggerFilter_
 
std::string triggerPath_
 
edm::EDGetTokenT< edm::TriggerResultstriggerResults_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Definition at line 37 of file L1TEGammaOffline.h.

Constructor & Destructor Documentation

L1TEGammaOffline::L1TEGammaOffline ( const edm::ParameterSet ps)

Definition at line 23 of file L1TEGammaOffline.cc.

23  :
25  consumes < reco::GsfElectronCollection > (ps.getParameter < edm::InputTag > ("electronCollection"))),
27  consumes < std::vector<reco::Photon> > (ps.getParameter < edm::InputTag > ("photonCollection"))),
28  thePVCollection_(consumes < reco::VertexCollection > (ps.getParameter < edm::InputTag > ("PVCollection"))),
29  theBSCollection_(consumes < reco::BeamSpot > (ps.getParameter < edm::InputTag > ("beamSpotCollection"))),
30  triggerEvent_(consumes < trigger::TriggerEvent > (ps.getParameter < edm::InputTag > ("TriggerEvent"))),
31  triggerResults_(consumes < edm::TriggerResults > (ps.getParameter < edm::InputTag > ("TriggerResults"))),
32  triggerFilter_(ps.getParameter < edm::InputTag > ("TriggerFilter")),
33  triggerPath_(ps.getParameter < std::string > ("TriggerPath")),
34  histFolder_(ps.getParameter < std::string > ("histFolder")),
35  efficiencyFolder_(histFolder_ + "/efficiency_raw"),
37  consumes < l1t::EGammaBxCollection > (ps.getParameter < edm::InputTag > ("stage2CaloLayer2EGammaSource"))),
38  electronEfficiencyThresholds_(ps.getParameter < std::vector<double> > ("electronEfficiencyThresholds")),
39  electronEfficiencyBins_(ps.getParameter < std::vector<double> > ("electronEfficiencyBins")),
40  probeToL1Offset_(ps.getParameter <double> ("probeToL1Offset")),
41  deepInspectionElectronThresholds_(ps.getParameter < std::vector<double> > ("deepInspectionElectronThresholds")),
42  photonEfficiencyThresholds_(ps.getParameter < std::vector<double> > ("photonEfficiencyThresholds")),
43  photonEfficiencyBins_(ps.getParameter < std::vector<double> > ("photonEfficiencyBins")),
44  tagElectron_(),
47 {
48  edm::LogInfo("L1TEGammaOffline") << "Constructor " << "L1TEGammaOffline::L1TEGammaOffline " << std::endl;
49 }
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
T getParameter(std::string const &) const
std::vector< double > electronEfficiencyBins_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
std::string triggerPath_
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
std::string histFolder_
edm::InputTag triggerFilter_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< double > electronEfficiencyThresholds_
double tagAndProbleInvariantMass_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
reco::GsfElectron tagElectron_
std::string efficiencyFolder_
std::vector< double > deepInspectionElectronThresholds_
reco::GsfElectron probeElectron_
std::vector< double > photonEfficiencyBins_
edm::EDGetTokenT< reco::BeamSpot > theBSCollection_
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
std::vector< double > photonEfficiencyThresholds_
edm::EDGetTokenT< trigger::TriggerEvent > triggerEvent_
L1TEGammaOffline::~L1TEGammaOffline ( )
override

Definition at line 54 of file L1TEGammaOffline.cc.

55 {
56  edm::LogInfo("L1TEGammaOffline") << "Destructor L1TEGammaOffline::~L1TEGammaOffline " << std::endl;
57 }

Member Function Documentation

void L1TEGammaOffline::analyze ( edm::Event const &  e,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 89 of file L1TEGammaOffline.cc.

References fillElectrons(), fillPhotons(), dqmoffline::l1t::fillWithinLimits(), edm::Event::getByToken(), h_nVertex_, edm::HandleBase::isValid(), and thePVCollection_.

90 {
91  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::analyze" << std::endl;
92 
94  e.getByToken(thePVCollection_, vertexHandle);
95  if (!vertexHandle.isValid()) {
96  edm::LogError("L1TEGammaOffline") << "invalid collection: vertex " << std::endl;
97  return;
98  }
99 
100  unsigned int nVertex = vertexHandle->size();
102 
103  // L1T
104  fillElectrons(e, nVertex);
105  fillPhotons(e, nVertex);
106 }
void fillPhotons(edm::Event const &e, const unsigned int nVertex)
void fillElectrons(edm::Event const &e, const unsigned int nVertex)
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * h_nVertex_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
void L1TEGammaOffline::beginLuminosityBlock ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 81 of file L1TEGammaOffline.cc.

82 {
83  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::beginLuminosityBlock" << std::endl;
84 }
void L1TEGammaOffline::bookElectronHistos ( DQMStore::IBooker ibooker)
private

Definition at line 509 of file L1TEGammaOffline.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::cd(), deepInspectionElectronThresholds_, efficiencyFolder_, electronEfficiencyBins_, electronEfficiencyThresholds_, h_efficiencyElectronET_EB_EE_pass_, h_efficiencyElectronET_EB_EE_total_, h_efficiencyElectronET_EB_pass_, h_efficiencyElectronET_EB_total_, h_efficiencyElectronET_EE_pass_, h_efficiencyElectronET_EE_total_, h_efficiencyElectronEta_pass_, h_efficiencyElectronEta_total_, h_efficiencyElectronNVertex_pass_, h_efficiencyElectronNVertex_total_, h_efficiencyElectronPhi_pass_, h_efficiencyElectronPhi_total_, h_efficiencyElectronPhi_vs_Eta_pass_, h_efficiencyElectronPhi_vs_Eta_total_, h_L1EGammaEtavsElectronEta_, h_L1EGammaETvsElectronET_EB_, h_L1EGammaETvsElectronET_EB_EE_, h_L1EGammaETvsElectronET_EE_, h_L1EGammaPhivsElectronPhi_EB_, h_L1EGammaPhivsElectronPhi_EB_EE_, h_L1EGammaPhivsElectronPhi_EE_, h_nVertex_, h_resolutionElectronET_EB_, h_resolutionElectronET_EB_EE_, h_resolutionElectronET_EE_, h_resolutionElectronEta_, h_resolutionElectronPhi_EB_, h_resolutionElectronPhi_EB_EE_, h_resolutionElectronPhi_EE_, h_tagAndProbeMass_, histFolder_, DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and electronIdCutBased_cfi::threshold.

Referenced by bookHistograms().

510 {
511  ibooker.cd();
512  ibooker.setCurrentFolder(histFolder_);
513  h_nVertex_ = ibooker.book1D("nVertex", "Number of event vertices in collection", 40, -0.5, 39.5);
514  h_tagAndProbeMass_ = ibooker.book1D("tagAndProbeMass", "Invariant mass of tag & probe pair", 100, 40, 140);
515  // electron reco vs L1
516  h_L1EGammaETvsElectronET_EB_ = ibooker.book2D("L1EGammaETvsElectronET_EB",
517  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300, 300,
518  0, 300);
519  h_L1EGammaETvsElectronET_EE_ = ibooker.book2D("L1EGammaETvsElectronET_EE",
520  "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300, 300,
521  0, 300);
522  h_L1EGammaETvsElectronET_EB_EE_ = ibooker.book2D("L1EGammaETvsElectronET_EB_EE",
523  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300,
524  300, 0, 300);
525 
526  h_L1EGammaPhivsElectronPhi_EB_ = ibooker.book2D("L1EGammaPhivsElectronPhi_EB",
527  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}", 100,
528  -4, 4, 100, -4, 4);
529  h_L1EGammaPhivsElectronPhi_EE_ = ibooker.book2D("L1EGammaPhivsElectronPhi_EE",
530  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}", 100,
531  -4, 4, 100, -4, 4);
532  h_L1EGammaPhivsElectronPhi_EB_EE_ = ibooker.book2D("L1EGammaPhivsElectronPhi_EB_EE",
533  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}", 100,
534  -4, 4, 100, -4, 4);
535 
536  h_L1EGammaEtavsElectronEta_ = ibooker.book2D("L1EGammaEtavsElectronEta",
537  "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
538 
539  // electron resolutions
540  h_resolutionElectronET_EB_ = ibooker.book1D("resolutionElectronET_EB",
541  "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
542  h_resolutionElectronET_EE_ = ibooker.book1D("resolutionElectronET_EE",
543  "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
544  h_resolutionElectronET_EB_EE_ = ibooker.book1D("resolutionElectronET_EB_EE",
545  "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events", 50, -1, 1.5);
546 
548  ibooker.book1D("resolutionElectronPhi_EB",
549  "#phi_{electron} resolution (EB); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
550  120, -0.3, 0.3);
552  ibooker.book1D("resolutionElectronPhi_EE",
553  "electron #phi resolution (EE); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
554  120, -0.3, 0.3);
556  ibooker.book1D("resolutionElectronPhi_EB_EE",
557  "electron #phi resolution (EB+EE); (#phi_{electron}^{L1} - #phi_{electron}^{offline})/#phi_{electron}^{offline}; events",
558  120, -0.3, 0.3);
559 
560  h_resolutionElectronEta_ = ibooker.book1D("resolutionElectronEta",
561  "electron #eta resolution (EB); (L1 EGamma #eta - GSF Electron #eta)/GSF Electron #eta; events", 120, -0.3, 0.3);
562 
563  // electron turn-ons
565  std::vector<float> electronBins(electronEfficiencyBins_.begin(), electronEfficiencyBins_.end());
566  int nBins = electronBins.size() - 1;
567  float* electronBinArray = &(electronBins[0]);
568 
570  std::string str_threshold = std::to_string(int(threshold));
572  "efficiencyElectronET_EB_threshold_" + str_threshold + "_Num",
573  "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
575  "efficiencyElectronET_EE_threshold_" + str_threshold + "_Num",
576  "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
578  "efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Num",
579  "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
581  "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Num",
582  "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
583  50, -2.5, 2.5, 32, -3.2, 3.2);
584 
586  "efficiencyElectronET_EB_threshold_" + str_threshold + "_Den",
587  "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
589  "efficiencyElectronET_EE_threshold_" + str_threshold + "_Den",
590  "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
592  "efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Den",
593  "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events", nBins, electronBinArray);
595  "efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Den",
596  "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
597  50, -2.5, 2.5, 32, -3.2, 3.2);
598  }
599 
601  std::string str_threshold = std::to_string(int(threshold));
603  "efficiencyElectronEta_threshold_" + str_threshold + "_Num",
604  "electron efficiency (numerator); GSF Electron #eta; events", 50, -2.5, 2.5);
606  "efficiencyElectronPhi_threshold_" + str_threshold + "_Num",
607  "electron efficiency (numerator); GSF Electron #phi; events", 32, -3.2, 3.2);
609  "efficiencyElectronNVertex_threshold_" + str_threshold + "_Num",
610  "electron efficiency (numerator); Nvtx; events", 30, 0, 60);
611 
613  "efficiencyElectronEta_threshold_" + str_threshold + "_Den",
614  "electron efficiency (denominator); GSF Electron #eta; events", 50, -2.5, 2.5);
616  "efficiencyElectronPhi_threshold_" + str_threshold + "_Den",
617  "electron efficiency (denominator); GSF Electron #phi; events", 32, -3.2, 3.2);
619  "efficiencyElectronNVertex_threshold_" + str_threshold + "_Den",
620  "electron efficiency (denominator); Nvtx; events", 30, 0, 60);
621  }
622 
623 
624  ibooker.cd();
625 }
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
std::vector< double > electronEfficiencyBins_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
MonitorElement * h_tagAndProbeMass_
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
void cd(void)
Definition: DQMStore.cc:269
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
std::string histFolder_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
MonitorElement * h_L1EGammaETvsElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_EE_
MonitorElement * h_resolutionElectronET_EE_
std::vector< double > electronEfficiencyThresholds_
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
MonitorElement * h_L1EGammaEtavsElectronEta_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * h_resolutionElectronEta_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
std::string efficiencyFolder_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::map< double, MonitorElement * > h_efficiencyElectronPhi_total_
MonitorElement * h_resolutionElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyElectronEta_total_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
MonitorElement * h_resolutionElectronPhi_EB_
MonitorElement * h_nVertex_
MonitorElement * h_L1EGammaETvsElectronET_EE_
MonitorElement * h_resolutionElectronPhi_EE_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
void L1TEGammaOffline::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 70 of file L1TEGammaOffline.cc.

References bookElectronHistos(), and bookPhotonHistos().

71 {
72  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::bookHistograms" << std::endl;
73 
74  //book at beginRun
75  bookElectronHistos(ibooker);
76  bookPhotonHistos(ibooker);
77 }
void bookElectronHistos(DQMStore::IBooker &)
void bookPhotonHistos(DQMStore::IBooker &)
void L1TEGammaOffline::bookPhotonHistos ( DQMStore::IBooker ibooker)
private

Definition at line 627 of file L1TEGammaOffline.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::cd(), DEFINE_FWK_MODULE, efficiencyFolder_, h_efficiencyPhotonET_EB_EE_pass_, h_efficiencyPhotonET_EB_EE_total_, h_efficiencyPhotonET_EB_pass_, h_efficiencyPhotonET_EB_total_, h_efficiencyPhotonET_EE_pass_, h_efficiencyPhotonET_EE_total_, h_L1EGammaEtavsPhotonEta_, h_L1EGammaETvsPhotonET_EB_, h_L1EGammaETvsPhotonET_EB_EE_, h_L1EGammaETvsPhotonET_EE_, h_L1EGammaPhivsPhotonPhi_EB_, h_L1EGammaPhivsPhotonPhi_EB_EE_, h_L1EGammaPhivsPhotonPhi_EE_, h_resolutionPhotonET_EB_, h_resolutionPhotonET_EB_EE_, h_resolutionPhotonET_EE_, h_resolutionPhotonEta_, h_resolutionPhotonPhi_EB_, h_resolutionPhotonPhi_EB_EE_, h_resolutionPhotonPhi_EE_, histFolder_, photonEfficiencyBins_, photonEfficiencyThresholds_, DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and electronIdCutBased_cfi::threshold.

Referenced by bookHistograms().

628 {
629  ibooker.cd();
630  ibooker.setCurrentFolder(histFolder_);
631  h_L1EGammaETvsPhotonET_EB_ = ibooker.book2D("L1EGammaETvsPhotonET_EB",
632  "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300, 300, 0, 300);
633  h_L1EGammaETvsPhotonET_EE_ = ibooker.book2D("L1EGammaETvsPhotonET_EE",
634  "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300, 300, 0, 300);
635  h_L1EGammaETvsPhotonET_EB_EE_ = ibooker.book2D("L1EGammaETvsPhotonET_EB_EE",
636  "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)", 300, 0, 300, 300, 0, 300);
637 
638  h_L1EGammaPhivsPhotonPhi_EB_ = ibooker.book2D("L1EGammaPhivsPhotonPhi_EB",
639  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}", 100, -4, 4,
640  100, -4, 4);
641  h_L1EGammaPhivsPhotonPhi_EE_ = ibooker.book2D("L1EGammaPhivsPhotonPhi_EE",
642  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}", 100, -4, 4,
643  100, -4, 4);
644  h_L1EGammaPhivsPhotonPhi_EB_EE_ = ibooker.book2D("L1EGammaPhivsPhotonPhi_EB_EE",
645  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}", 100, -4, 4,
646  100, -4, 4);
647 
648  h_L1EGammaEtavsPhotonEta_ = ibooker.book2D("L1EGammaEtavsPhotonEta",
649  "L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
650 
651  // photon resolutions
652  h_resolutionPhotonET_EB_ = ibooker.book1D("resolutionPhotonET_EB",
653  "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
654  h_resolutionPhotonET_EE_ = ibooker.book1D("resolutionPhotonET_EE",
655  "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
656  h_resolutionPhotonET_EB_EE_ = ibooker.book1D("resolutionPhotonET_EB_EE",
657  "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events", 50, -1, 1.5);
658 
659  h_resolutionPhotonPhi_EB_ = ibooker.book1D("resolutionPhotonPhi_EB",
660  "#phi_{photon} resolution (EB); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
661  120, -0.3, 0.3);
662  h_resolutionPhotonPhi_EE_ = ibooker.book1D("resolutionPhotonPhi_EE",
663  "photon #phi resolution (EE); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
664  120, -0.3, 0.3);
665  h_resolutionPhotonPhi_EB_EE_ = ibooker.book1D("resolutionPhotonPhi_EB_EE",
666  "photon #phi resolution (EB+EE); (#phi_{photon}^{L1} - #phi_{photon}^{offline})/#phi_{photon}^{offline}; events",
667  120, -0.3, 0.3);
668 
669  h_resolutionPhotonEta_ = ibooker.book1D("resolutionPhotonEta",
670  "photon #eta resolution (EB); (L1 EGamma #eta - Photon #eta)/ Photon #eta; events", 120, -0.3, 0.3);
671 
672  // photon turn-ons
674  std::vector<float> photonBins(photonEfficiencyBins_.begin(), photonEfficiencyBins_.end());
675  int nBins = photonBins.size() - 1;
676  float* photonBinArray = &(photonBins[0]);
677 
679  std::string str_threshold = std::to_string(int(threshold));
681  "efficiencyPhotonET_EB_threshold_" + str_threshold + "_Num",
682  "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
684  "efficiencyPhotonET_EE_threshold_" + str_threshold + "_Num",
685  "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
687  "efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Num",
688  "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events", nBins, photonBinArray);
689 
691  "efficiencyPhotonET_EB_threshold_" + str_threshold + "_Den",
692  "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
694  "efficiencyPhotonET_EE_threshold_" + str_threshold + "_Den",
695  "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
697  "efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Den",
698  "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events", nBins, photonBinArray);
699  }
700 
701  ibooker.cd();
702 }
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
void cd(void)
Definition: DQMStore.cc:269
std::string histFolder_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
MonitorElement * h_resolutionPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
MonitorElement * h_resolutionPhotonET_EB_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
std::string efficiencyFolder_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * h_resolutionPhotonPhi_EB_EE_
MonitorElement * h_resolutionPhotonPhi_EB_
std::vector< double > photonEfficiencyBins_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
std::vector< double > photonEfficiencyThresholds_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
MonitorElement * h_resolutionPhotonET_EB_EE_
double L1TEGammaOffline::calcDeltaPhi ( double  phi1,
double  phi2 
)
private
double L1TEGammaOffline::Distance ( const reco::Candidate c1,
const reco::Candidate c2 
)
private
double L1TEGammaOffline::DistancePhi ( const reco::Candidate c1,
const reco::Candidate c2 
)
private
void L1TEGammaOffline::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 62 of file L1TEGammaOffline.cc.

63 {
64  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::beginRun" << std::endl;
65 }
void L1TEGammaOffline::endLuminosityBlock ( edm::LuminosityBlock const &  lumi,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 493 of file L1TEGammaOffline.cc.

494 {
495  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::endLuminosityBlock" << std::endl;
496 }
void L1TEGammaOffline::endRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 501 of file L1TEGammaOffline.cc.

502 {
503  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::endRun" << std::endl;
504 }
void L1TEGammaOffline::fillElectrons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 108 of file L1TEGammaOffline.cc.

References funct::abs(), BXVector< T >::begin(), deepInspectionElectronThresholds_, deltaR(), electronEfficiencyThresholds_, BXVector< T >::end(), reco::LeafCandidate::et(), reco::LeafCandidate::eta(), dqmoffline::l1t::fill2DWithinLimits(), dqmoffline::l1t::fillWithinLimits(), findTagAndProbePair(), edm::Event::getByToken(), gsfElectrons_cfi::gsfElectrons, h_efficiencyElectronET_EB_EE_pass_, h_efficiencyElectronET_EB_EE_total_, h_efficiencyElectronET_EB_pass_, h_efficiencyElectronET_EB_total_, h_efficiencyElectronET_EE_pass_, h_efficiencyElectronET_EE_total_, h_efficiencyElectronEta_pass_, h_efficiencyElectronEta_total_, h_efficiencyElectronNVertex_pass_, h_efficiencyElectronNVertex_total_, h_efficiencyElectronPhi_pass_, h_efficiencyElectronPhi_total_, h_efficiencyElectronPhi_vs_Eta_pass_, h_efficiencyElectronPhi_vs_Eta_total_, h_L1EGammaEtavsElectronEta_, h_L1EGammaETvsElectronET_EB_, h_L1EGammaETvsElectronET_EB_EE_, h_L1EGammaETvsElectronET_EE_, h_L1EGammaPhivsElectronPhi_EB_, h_L1EGammaPhivsElectronPhi_EB_EE_, h_L1EGammaPhivsElectronPhi_EE_, h_resolutionElectronET_EB_, h_resolutionElectronET_EB_EE_, h_resolutionElectronET_EE_, h_resolutionElectronEta_, h_resolutionElectronPhi_EB_, h_resolutionElectronPhi_EB_EE_, h_resolutionElectronPhi_EE_, edm::HandleBase::isValid(), LogDebug, reco::LeafCandidate::phi(), probeElectron_, probeToL1Offset_, stage2CaloLayer2EGammaToken_, theGsfElectronCollection_, and electronIdCutBased_cfi::threshold.

Referenced by analyze().

109 {
111  e.getByToken(stage2CaloLayer2EGammaToken_, l1EGamma);
112 
114  e.getByToken(theGsfElectronCollection_, gsfElectrons);
115 
116  if (!gsfElectrons.isValid()) {
117  edm::LogError("L1TEGammaOffline") << "invalid collection: GSF electrons " << std::endl;
118  return;
119  }
120  if (gsfElectrons->empty()) {
121  LogDebug("L1TEGammaOffline") << "empty collection: GSF electrons " << std::endl;
122  return;
123  }
124  if (!l1EGamma.isValid()) {
125  edm::LogError("L1TEGammaOffline") << "invalid collection: L1 EGamma " << std::endl;
126  return;
127  }
128  if (!findTagAndProbePair(gsfElectrons)) {
129  LogDebug("L1TEGammaOffline") << "Could not find a tag & probe pair" << std::endl;
130  return; //continue to next event
131  }
132 
133  auto probeElectron = probeElectron_;
134 
135  // find corresponding L1 EG
136  double minDeltaR = 0.3;
137  l1t::EGamma closestL1EGamma;
138  bool foundMatch = false;
139 
140  int bunchCrossing = 0;
141  for (auto egamma = l1EGamma->begin(bunchCrossing); egamma != l1EGamma->end(bunchCrossing); ++egamma) {
142  double currentDeltaR = deltaR(egamma->eta(), egamma->phi(), probeElectron.eta(), probeElectron.phi());
143  if (currentDeltaR > minDeltaR) {
144  continue;
145  } else {
146  minDeltaR = currentDeltaR;
147  closestL1EGamma = *egamma;
148  foundMatch = true;
149  }
150 
151  }
152 
153  if (!foundMatch) {
154  LogDebug("L1TEGammaOffline") << "Could not find a matching L1 EGamma " << std::endl;
155  return;
156  }
157 
158  double recoEt = probeElectron.et();
159  double recoEta = probeElectron.eta();
160  double recoPhi = probeElectron.phi();
161 
162  double l1Et = closestL1EGamma.et();
163  double l1Eta = closestL1EGamma.eta();
164  double l1Phi = closestL1EGamma.phi();
165 
166  // if no reco value, relative resolution does not make sense -> sort to overflow
167  double outOfBounds = 9999;
168  double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
169  double resolutionEta = std::abs(recoEta) > 0 ? (l1Eta - recoEta) / recoEta : outOfBounds;
170  double resolutionPhi = std::abs(recoPhi) > 0 ? (l1Phi - recoPhi) / recoPhi : outOfBounds;
171 
172  using namespace dqmoffline::l1t;
173  // eta
176 
177  // plots for deeper inspection
182  if(recoEt > threshold){
186  }
187  }
188 
191  recoEta, recoPhi);
192  if(l1Et > threshold + probeToL1Offset_){
194  recoEta, recoPhi);
195  }
196  }
197 
198  if (std::abs(recoEta) <= 1.479) { // barrel
199  // et
202  //resolution
205  // phi
208  // resolution
211 
212  // turn-ons
213  for (auto threshold : electronEfficiencyThresholds_) {
216  if (l1Et > threshold) {
219  }
220  }
221  } else { // end-cap
222  // et
225  //resolution
228  // phi
231  // resolution
234 
235  // turn-ons
236  for (auto threshold : electronEfficiencyThresholds_) {
239  if (l1Et > threshold) {
242  }
243  }
244  }
245 }
#define LogDebug(id)
const_iterator end(int bx) const
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
double eta() const final
momentum pseudorapidity
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
MonitorElement * h_L1EGammaETvsElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_EE_
MonitorElement * h_resolutionElectronET_EE_
std::vector< double > electronEfficiencyThresholds_
double et() const final
transverse energy
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
MonitorElement * h_L1EGammaEtavsElectronEta_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
MonitorElement * h_resolutionElectronEta_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:74
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
bool findTagAndProbePair(edm::Handle< reco::GsfElectronCollection > const &electrons)
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
reco::GsfElectron probeElectron_
void fill2DWithinLimits(MonitorElement *mon, double valueX, double valueY, double weight=1.)
std::map< double, MonitorElement * > h_efficiencyElectronPhi_total_
MonitorElement * h_resolutionElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyElectronEta_total_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
MonitorElement * h_resolutionElectronPhi_EB_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
MonitorElement * h_L1EGammaETvsElectronET_EE_
MonitorElement * h_resolutionElectronPhi_EE_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
const_iterator begin(int bx) const
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
double phi() const final
momentum azimuthal angle
void L1TEGammaOffline::fillPhotons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 375 of file L1TEGammaOffline.cc.

References funct::abs(), BXVector< T >::begin(), deltaR(), BXVector< T >::end(), reco::LeafCandidate::et(), reco::LeafCandidate::eta(), dqmoffline::l1t::fill2DWithinLimits(), dqmoffline::l1t::fillWithinLimits(), edm::Event::getByToken(), h_efficiencyPhotonET_EB_EE_pass_, h_efficiencyPhotonET_EB_EE_total_, h_efficiencyPhotonET_EB_pass_, h_efficiencyPhotonET_EB_total_, h_efficiencyPhotonET_EE_pass_, h_efficiencyPhotonET_EE_total_, h_L1EGammaEtavsPhotonEta_, h_L1EGammaETvsPhotonET_EB_, h_L1EGammaETvsPhotonET_EB_EE_, h_L1EGammaETvsPhotonET_EE_, h_L1EGammaPhivsPhotonPhi_EB_, h_L1EGammaPhivsPhotonPhi_EB_EE_, h_L1EGammaPhivsPhotonPhi_EE_, h_resolutionPhotonET_EB_, h_resolutionPhotonET_EB_EE_, h_resolutionPhotonET_EE_, h_resolutionPhotonEta_, h_resolutionPhotonPhi_EB_, h_resolutionPhotonPhi_EB_EE_, h_resolutionPhotonPhi_EE_, edm::HandleBase::isValid(), LogDebug, reco::LeafCandidate::phi(), photonEfficiencyThresholds_, nano_cff::photons, stage2CaloLayer2EGammaToken_, thePhotonCollection_, and electronIdCutBased_cfi::threshold.

Referenced by analyze().

376 {
377  // TODO - just an example here
379  e.getByToken(stage2CaloLayer2EGammaToken_, l1EGamma);
380 
382  e.getByToken(thePhotonCollection_, photons);
383 
384  if (!photons.isValid()) {
385  edm::LogError("L1TEGammaOffline") << "invalid collection: reco::Photons " << std::endl;
386  return;
387  }
388  if (!l1EGamma.isValid()) {
389  // edm::LogError("L1TEGammaOffline") << "invalid collection: L1 EGamma " << std::endl;
390  return;
391  }
392 
393  if(photons->empty()){
394  LogDebug("L1TEGammaOffline") << "No photons found in event." << std::endl;
395  return;
396  }
397 
398  auto probePhoton = photons->at(0);
399 
400  double minDeltaR = 0.3;
401  l1t::EGamma closestL1EGamma;
402  bool foundMatch = false;
403 
404  int bunchCrossing = 0;
405  for (auto egamma = l1EGamma->begin(bunchCrossing); egamma != l1EGamma->end(bunchCrossing); ++egamma) {
406  double currentDeltaR = deltaR(egamma->eta(), egamma->phi(), probePhoton.eta(), probePhoton.phi());
407  if (currentDeltaR > minDeltaR) {
408  continue;
409  } else {
410  minDeltaR = currentDeltaR;
411  closestL1EGamma = *egamma;
412  foundMatch = true;
413  }
414 
415  }
416 
417  if (!foundMatch) {
418  LogDebug("L1TEGammaOffline") << "Could not find a matching L1 EGamma " << std::endl;
419  return;
420  }
421 
422  double recoEt = probePhoton.et();
423  double recoEta = probePhoton.eta();
424  double recoPhi = probePhoton.phi();
425 
426  double l1Et = closestL1EGamma.et();
427  double l1Eta = closestL1EGamma.eta();
428  double l1Phi = closestL1EGamma.phi();
429 
430  // if no reco value, relative resolution does not make sense -> sort to overflow
431  double outOfBounds = 9999;
432  double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
433  double resolutionEta = std::abs(recoEta) > 0 ? (l1Eta - recoEta) / recoEta : outOfBounds;
434  double resolutionPhi = std::abs(recoPhi) > 0 ? (l1Phi - recoPhi) / recoPhi : outOfBounds;
435 
436  using namespace dqmoffline::l1t;
437  // eta
440 
441  if (std::abs(recoEta) <= 1.479) { // barrel
442  // et
445  //resolution
448  // phi
451  // resolution
454 
455  // turn-ons
459  if (l1Et > threshold) {
462  }
463  }
464  } else { // end-cap
465  // et
468  //resolution
471  // phi
474  // resolution
477 
478  // turn-ons
479  for (auto threshold : photonEfficiencyThresholds_) {
482  if (l1Et > threshold) {
485  }
486  }
487  }
488 }
#define LogDebug(id)
const_iterator end(int bx) const
double eta() const final
momentum pseudorapidity
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
MonitorElement * h_resolutionPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
double et() const final
transverse energy
MonitorElement * h_resolutionPhotonET_EB_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
MonitorElement * h_resolutionPhotonPhi_EB_EE_
void fill2DWithinLimits(MonitorElement *mon, double valueX, double valueY, double weight=1.)
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
MonitorElement * h_resolutionPhotonPhi_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
std::vector< double > photonEfficiencyThresholds_
const_iterator begin(int bx) const
double phi() const final
momentum azimuthal angle
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
MonitorElement * h_resolutionPhotonET_EB_EE_
bool L1TEGammaOffline::findTagAndProbePair ( edm::Handle< reco::GsfElectronCollection > const &  electrons)
private

From https://cds.cern.ch/record/2202966/files/DP2016_044.pdf slide 8 Filter on HLT_Ele30WP60_Ele8_Mass55 (TODO) HLT_Ele30WP60_SC4_Mass55 (TODO) Seeded by L1SingleEG, unprescaled required

Tag & probe selection Electron required to be within ECAL fiducial volume (|η|<1.4442 || 1.566<|η|<2.5). 60 < m(ee) < 120 GeV. Opposite charge requirement. Tag required to pass medium electron ID and ET > 30 GeV. Probe required to pass loose electron ID.

Parameters
electrons
Returns

Definition at line 265 of file L1TEGammaOffline.cc.

References funct::abs(), dqmoffline::l1t::fillWithinLimits(), h_tagAndProbeMass_, jets_cff::nElectrons, passesLooseEleId(), passesMediumEleId(), probeElectron_, and tagElectron_.

Referenced by fillElectrons().

266 {
267  bool foundBoth(false);
268  auto nElectrons = electrons->size();
269  if (nElectrons < 2)
270  return false;
271 
272  for (auto tagElectron : *electrons) {
273  for (auto probeElectron : *electrons) {
274  if (tagElectron.p4() == probeElectron.p4())
275  continue;
276 
277  auto combined(tagElectron.p4() + probeElectron.p4());
278  auto tagAbsEta = std::abs(tagElectron.eta());
279  auto probeAbsEta = std::abs(probeElectron.eta());
280 
281  // EB-EE transition region
282  bool isEBEEGap = tagElectron.isEBEEGap() || probeElectron.isEBEEGap();
283  bool passesEta = !isEBEEGap && tagAbsEta < 2.5 && probeAbsEta < 2.5;
284  bool passesCharge = tagElectron.charge() == -probeElectron.charge();
285 
286  // https://github.com/ikrav/cmssw/blob/egm_id_80X_v1/RecoEgamma/ElectronIdentification/plugins/cuts/GsfEleFull5x5SigmaIEtaIEtaCut.cc#L45
287  bool tagPassesMediumID = passesMediumEleId(tagElectron) && tagElectron.et() > 30.;
288  bool probePassesLooseID = passesLooseEleId(probeElectron);
289  bool passesInvariantMass = combined.M() > 60 && combined.M() < 120;
290 
291  if (passesEta && passesInvariantMass && passesCharge && tagPassesMediumID && probePassesLooseID) {
292  foundBoth = true;
293  tagElectron_ = tagElectron;
294  probeElectron_ = probeElectron;
295  // plot tag & probe invariant mass
297  break;
298  }
299  }
300 
301  }
302  return foundBoth;
303 }
MonitorElement * h_tagAndProbeMass_
bool passesMediumEleId(reco::GsfElectron const &electron) const
bool passesLooseEleId(reco::GsfElectron const &electron) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
reco::GsfElectron tagElectron_
reco::GsfElectron probeElectron_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
bool L1TEGammaOffline::passesLooseEleId ( reco::GsfElectron const &  electron) const
private

Structure from https://github.com/cms-sw/cmssw/blob/CMSSW_9_0_X/DQMOffline/EGamma/plugins/ElectronAnalyzer.cc Values from https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedElectronIdentificationRun2

Definition at line 311 of file L1TEGammaOffline.cc.

References funct::abs(), reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::GsfElectron::ecalEnergy(), reco::GsfElectron::eSuperClusterOverP(), reco::GsfElectron::hadronicOverEm(), reco::GsfElectron::isEB(), reco::GsfElectron::isEE(), and reco::GsfElectron::scSigmaIEtaIEta().

Referenced by findTagAndProbePair().

312 {
313  const float ecal_energy_inverse = 1.0 / electron.ecalEnergy();
314  const float eSCoverP = electron.eSuperClusterOverP();
315  const float eOverP = std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
316 
317  if (electron.isEB() && eOverP > 0.241)
318  return false;
319  if (electron.isEE() && eOverP > 0.14)
320  return false;
321  if (electron.isEB() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00477)
322  return false;
323  if (electron.isEE() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00868)
324  return false;
325  if (electron.isEB() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.222)
326  return false;
327  if (electron.isEE() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.213)
328  return false;
329  if (electron.isEB() && electron.scSigmaIEtaIEta() > 0.011)
330  return false;
331  if (electron.isEE() && electron.scSigmaIEtaIEta() > 0.0314)
332  return false;
333  if (electron.isEB() && electron.hadronicOverEm() > 0.298)
334  return false;
335  if (electron.isEE() && electron.hadronicOverEm() > 0.101)
336  return false;
337  return true;
338 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool L1TEGammaOffline::passesMediumEleId ( reco::GsfElectron const &  electron) const
private

Definition at line 346 of file L1TEGammaOffline.cc.

References funct::abs(), reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::GsfElectron::ecalEnergy(), reco::GsfElectron::eSuperClusterOverP(), reco::GsfElectron::hadronicOverEm(), reco::GsfElectron::isEB(), reco::GsfElectron::isEE(), and reco::GsfElectron::scSigmaIEtaIEta().

Referenced by findTagAndProbePair().

347 {
348  const float ecal_energy_inverse = 1.0 / electron.ecalEnergy();
349  const float eSCoverP = electron.eSuperClusterOverP();
350  const float eOverP = std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
351 
352  if (electron.isEB() && eOverP < 0.134)
353  return false;
354  if (electron.isEE() && eOverP > 0.13)
355  return false;
356  if (electron.isEB() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00311)
357  return false;
358  if (electron.isEE() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00609)
359  return false;
360  if (electron.isEB() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.103)
361  return false;
362  if (electron.isEE() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.045)
363  return false;
364  if (electron.isEB() && electron.scSigmaIEtaIEta() > 0.00998)
365  return false;
366  if (electron.isEE() && electron.scSigmaIEtaIEta() > 0.0298)
367  return false;
368  if (electron.isEB() && electron.hadronicOverEm() > 0.253)
369  return false;
370  if (electron.isEE() && electron.hadronicOverEm() > 0.0878)
371  return false;
372  return true;
373 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

std::vector<double> L1TEGammaOffline::deepInspectionElectronThresholds_
private

Definition at line 87 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::string L1TEGammaOffline::efficiencyFolder_
private

Definition at line 80 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

std::vector<double> L1TEGammaOffline::electronEfficiencyBins_
private

Definition at line 85 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos().

std::vector<double> L1TEGammaOffline::electronEfficiencyThresholds_
private

Definition at line 84 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EB_EE_pass_
private

Definition at line 126 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EB_EE_total_
private

Definition at line 137 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EB_pass_
private

Definition at line 124 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EB_total_
private

Definition at line 135 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EE_pass_
private

Definition at line 125 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronET_EE_total_
private

Definition at line 136 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronEta_pass_
private

Definition at line 129 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronEta_total_
private

Definition at line 140 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronNVertex_pass_
private

Definition at line 131 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronNVertex_total_
private

Definition at line 142 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronPhi_pass_
private

Definition at line 130 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronPhi_total_
private

Definition at line 141 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronPhi_vs_Eta_pass_
private

Definition at line 127 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyElectronPhi_vs_Eta_total_
private

Definition at line 138 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EB_EE_pass_
private

Definition at line 169 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EB_EE_total_
private

Definition at line 175 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EB_pass_
private

Definition at line 167 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EB_total_
private

Definition at line 173 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EE_pass_
private

Definition at line 168 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

std::map<double, MonitorElement*> L1TEGammaOffline::h_efficiencyPhotonET_EE_total_
private

Definition at line 174 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaEtavsElectronEta_
private

Definition at line 110 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaEtavsPhotonEta_
private

Definition at line 153 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EB_
private

Definition at line 102 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EB_EE_
private

Definition at line 104 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EE_
private

Definition at line 103 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EB_
private

Definition at line 145 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EB_EE_
private

Definition at line 147 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EE_
private

Definition at line 146 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EB_
private

Definition at line 106 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EB_EE_
private

Definition at line 108 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EE_
private

Definition at line 107 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EB_
private

Definition at line 149 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EB_EE_
private

Definition at line 151 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EE_
private

Definition at line 150 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_nVertex_
private

Definition at line 98 of file L1TEGammaOffline.h.

Referenced by analyze(), and bookElectronHistos().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_
private

Definition at line 113 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_EE_
private

Definition at line 115 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EE_
private

Definition at line 114 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronEta_
private

Definition at line 121 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_
private

Definition at line 117 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_EE_
private

Definition at line 119 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EE_
private

Definition at line 118 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_
private

Definition at line 156 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_EE_
private

Definition at line 158 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EE_
private

Definition at line 157 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonEta_
private

Definition at line 164 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_
private

Definition at line 160 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_EE_
private

Definition at line 162 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EE_
private

Definition at line 161 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_tagAndProbeMass_
private

Definition at line 99 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and findTagAndProbePair().

std::string L1TEGammaOffline::histFolder_
private

Definition at line 79 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

std::vector<double> L1TEGammaOffline::photonEfficiencyBins_
private

Definition at line 90 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos().

std::vector<double> L1TEGammaOffline::photonEfficiencyThresholds_
private

Definition at line 89 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

reco::GsfElectron L1TEGammaOffline::probeElectron_
private

Definition at line 93 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and findTagAndProbePair().

double L1TEGammaOffline::probeToL1Offset_
private

Definition at line 86 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

math::XYZPoint L1TEGammaOffline::PVPoint_
private

Definition at line 68 of file L1TEGammaOffline.h.

edm::EDGetTokenT<l1t::EGammaBxCollection> L1TEGammaOffline::stage2CaloLayer2EGammaToken_
private

Definition at line 82 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and fillPhotons().

double L1TEGammaOffline::tagAndProbleInvariantMass_
private

Definition at line 94 of file L1TEGammaOffline.h.

reco::GsfElectron L1TEGammaOffline::tagElectron_
private

Definition at line 92 of file L1TEGammaOffline.h.

Referenced by findTagAndProbePair().

edm::EDGetTokenT<reco::BeamSpot> L1TEGammaOffline::theBSCollection_
private

Definition at line 74 of file L1TEGammaOffline.h.

edm::EDGetTokenT<reco::GsfElectronCollection> L1TEGammaOffline::theGsfElectronCollection_
private

Definition at line 71 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

edm::EDGetTokenT<std::vector<reco::Photon> > L1TEGammaOffline::thePhotonCollection_
private

Definition at line 72 of file L1TEGammaOffline.h.

Referenced by fillPhotons().

edm::EDGetTokenT<reco::VertexCollection> L1TEGammaOffline::thePVCollection_
private

Definition at line 73 of file L1TEGammaOffline.h.

Referenced by analyze().

edm::EDGetTokenT<trigger::TriggerEvent> L1TEGammaOffline::triggerEvent_
private

Definition at line 75 of file L1TEGammaOffline.h.

edm::InputTag L1TEGammaOffline::triggerFilter_
private

Definition at line 77 of file L1TEGammaOffline.h.

std::string L1TEGammaOffline::triggerPath_
private

Definition at line 78 of file L1TEGammaOffline.h.

edm::EDGetTokenT<edm::TriggerResults> L1TEGammaOffline::triggerResults_
private

Definition at line 76 of file L1TEGammaOffline.h.