CMS 3D CMS Logo

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

#include <L1TEGammaOffline.h>

Inheritance diagram for L1TEGammaOffline:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

enum  PlotConfig { nVertex, ETvsET, PHIvsPHI }
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 L1TEGammaOffline (const edm::ParameterSet &ps)
 
 ~L1TEGammaOffline () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Attributes

static const std::map< std::string, unsigned int > PlotConfigNames
 

Protected Member Functions

void analyze (edm::Event const &e, 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 dqmEndRun (edm::Run const &run, edm::EventSetup const &eSetup) override
 
void endJob () override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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 matchesAnHLTObject (double eta, double phi) const
 
void normalise2DHistogramsToBinArea ()
 
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_
 
dqmoffline::l1t::HistDefinitions histDefinitions_
 
std::string histFolder_
 
HLTConfigProvider hltConfig_
 
double maxDeltaRForHLTMatching_
 
double maxDeltaRForL1Matching_
 
std::vector< double > photonEfficiencyBins_
 
std::vector< double > photonEfficiencyThresholds_
 
reco::GsfElectron probeElectron_
 
double probeToL1Offset_
 
math::XYZPoint PVPoint_
 
double recoToL1TThresholdFactor_
 
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_
 
trigger::TriggerEvent triggerEvent_
 
std::vector< unsigned int > triggerIndices_
 
edm::EDGetTokenT< trigger::TriggerEventtriggerInputTag_
 
std::vector< std::string > triggerNames_
 
std::string triggerProcess_
 
edm::TriggerResults triggerResults_
 
edm::EDGetTokenT< edm::TriggerResultstriggerResultsInputTag_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 38 of file L1TEGammaOffline.h.

Member Enumeration Documentation

Enumerator
nVertex 
ETvsET 
PHIvsPHI 

Definition at line 43 of file L1TEGammaOffline.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file L1TEGammaOffline.cc.

30  consumes<reco::GsfElectronCollection>(ps.getParameter<edm::InputTag>("electronCollection"))),
31  thePhotonCollection_(consumes<std::vector<reco::Photon> >(ps.getParameter<edm::InputTag>("photonCollection"))),
32  thePVCollection_(consumes<reco::VertexCollection>(ps.getParameter<edm::InputTag>("PVCollection"))),
33  theBSCollection_(consumes<reco::BeamSpot>(ps.getParameter<edm::InputTag>("beamSpotCollection"))),
34  triggerInputTag_(consumes<trigger::TriggerEvent>(ps.getParameter<edm::InputTag>("triggerInputTag"))),
35  triggerResultsInputTag_(consumes<edm::TriggerResults>(ps.getParameter<edm::InputTag>("triggerResults"))),
36  triggerProcess_(ps.getParameter<std::string>("triggerProcess")),
37  triggerNames_(ps.getParameter<std::vector<std::string> >("triggerNames")),
38  histFolder_(ps.getParameter<std::string>("histFolder")),
39  efficiencyFolder_(histFolder_ + "/efficiency_raw"),
41  consumes<l1t::EGammaBxCollection>(ps.getParameter<edm::InputTag>("stage2CaloLayer2EGammaSource"))),
42  electronEfficiencyThresholds_(ps.getParameter<std::vector<double> >("electronEfficiencyThresholds")),
43  electronEfficiencyBins_(ps.getParameter<std::vector<double> >("electronEfficiencyBins")),
44  probeToL1Offset_(ps.getParameter<double>("probeToL1Offset")),
45  deepInspectionElectronThresholds_(ps.getParameter<std::vector<double> >("deepInspectionElectronThresholds")),
46  photonEfficiencyThresholds_(ps.getParameter<std::vector<double> >("photonEfficiencyThresholds")),
47  photonEfficiencyBins_(ps.getParameter<std::vector<double> >("photonEfficiencyBins")),
48  maxDeltaRForL1Matching_(ps.getParameter<double>("maxDeltaRForL1Matching")),
49  maxDeltaRForHLTMatching_(ps.getParameter<double>("maxDeltaRForHLTMatching")),
50  recoToL1TThresholdFactor_(ps.getParameter<double>("recoToL1TThresholdFactor")),
51  tagElectron_(),
54  hltConfig_(),
57  triggerEvent_(),
59  h_nVertex_(),
103  edm::LogInfo("L1TEGammaOffline") << "Constructor "
104  << "L1TEGammaOffline::L1TEGammaOffline " << std::endl;
105 }
T getParameter(std::string const &) const
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
std::vector< double > electronEfficiencyBins_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
MonitorElement * h_tagAndProbeMass_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
double maxDeltaRForL1Matching_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
std::string histFolder_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
dqmoffline::l1t::HistDefinitions histDefinitions_
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_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
MonitorElement * h_resolutionElectronET_EE_
edm::EDGetTokenT< trigger::TriggerEvent > triggerInputTag_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
double maxDeltaRForHLTMatching_
std::vector< double > electronEfficiencyThresholds_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
double tagAndProbleInvariantMass_
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
MonitorElement * h_L1EGammaEtavsElectronEta_
std::string triggerProcess_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
MonitorElement * h_resolutionElectronEta_
reco::GsfElectron tagElectron_
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsInputTag_
static const std::map< std::string, unsigned int > PlotConfigNames
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
HLTConfigProvider hltConfig_
HistDefinitions readHistDefinitions(const edm::ParameterSet &ps, const std::map< std::string, unsigned int > &mapping)
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
std::string efficiencyFolder_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
reco::GsfElectron probeElectron_
ParameterSet const & getParameterSet(std::string const &) const
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_
std::vector< std::string > triggerNames_
MonitorElement * h_resolutionElectronPhi_EB_
edm::TriggerResults triggerResults_
MonitorElement * h_nVertex_
std::vector< double > photonEfficiencyBins_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaETvsElectronET_EE_
edm::EDGetTokenT< reco::BeamSpot > theBSCollection_
MonitorElement * h_resolutionElectronPhi_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
std::vector< unsigned int > triggerIndices_
std::vector< double > photonEfficiencyThresholds_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
double recoToL1TThresholdFactor_
trigger::TriggerEvent triggerEvent_
L1TEGammaOffline::~L1TEGammaOffline ( )
override

Definition at line 110 of file L1TEGammaOffline.cc.

110  {
111  edm::LogInfo("L1TEGammaOffline") << "Destructor L1TEGammaOffline::~L1TEGammaOffline " << std::endl;
112 }

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 143 of file L1TEGammaOffline.cc.

References fillElectrons(), dqmoffline::l1t::fillWithinLimits(), edm::Event::getByToken(), h_nVertex_, edm::HandleBase::isValid(), nVertex, dqmoffline::l1t::passesAnyTriggerFromList(), thePVCollection_, triggerEvent_, triggerIndices_, triggerInputTag_, triggerResults_, and triggerResultsInputTag_.

143  {
144  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::analyze" << std::endl;
145 
146  edm::Handle<edm::TriggerResults> triggerResultHandle;
147  e.getByToken(triggerResultsInputTag_, triggerResultHandle);
148  if (!triggerResultHandle.isValid()) {
149  edm::LogWarning("L1TEGammaOffline") << "invalid edm::TriggerResults handle" << std::endl;
150  return;
151  }
152  triggerResults_ = *triggerResultHandle;
153 
154  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
155  e.getByToken(triggerInputTag_, triggerEventHandle);
156  if (!triggerEventHandle.isValid()) {
157  edm::LogWarning("L1TEGammaOffline") << "invalid trigger::TriggerEvent handle" << std::endl;
158  return;
159  }
160  triggerEvent_ = *triggerEventHandle;
161 
163  e.getByToken(thePVCollection_, vertexHandle);
164  if (!vertexHandle.isValid()) {
165  edm::LogWarning("L1TEGammaOffline") << "invalid collection: vertex " << std::endl;
166  return;
167  }
168 
169  unsigned int nVertex = vertexHandle->size();
171 
173  return;
174  }
175  // L1T
176  fillElectrons(e, nVertex);
177  // fillPhotons(e, nVertex);
178 }
void fillElectrons(edm::Event const &e, const unsigned int nVertex)
edm::EDGetTokenT< trigger::TriggerEvent > triggerInputTag_
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::TriggerResults > triggerResultsInputTag_
edm::TriggerResults triggerResults_
MonitorElement * h_nVertex_
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
std::vector< unsigned int > triggerIndices_
trigger::TriggerEvent triggerEvent_
bool passesAnyTriggerFromList(const std::vector< unsigned int > &triggers, const edm::TriggerResults &triggerResults)
Definition: L1TCommon.cc:66
void L1TEGammaOffline::bookElectronHistos ( DQMStore::IBooker ibooker)
private

Definition at line 581 of file L1TEGammaOffline.cc.

References dqmoffline::l1t::HistDefinition::binsX, dqmoffline::l1t::HistDefinition::binsY, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), deepInspectionElectronThresholds_, efficiencyFolder_, electronEfficiencyBins_, electronEfficiencyThresholds_, L1TEGammaOffline_cfi::ETvsET, 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_, histDefinitions_, histFolder_, dqmoffline::l1t::HistDefinition::name, seedmultiplicitymonitor_newtracking_cfi::nBins, dqmoffline::l1t::HistDefinition::nbinsX, dqmoffline::l1t::HistDefinition::nbinsY, L1TEGammaOffline_cfi::nVertex, L1TEGammaOffline_cfi::PHIvsPHI, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, MessageLogger_cff::threshold, dqmoffline::l1t::HistDefinition::title, dqmoffline::l1t::HistDefinition::xmax, dqmoffline::l1t::HistDefinition::xmin, dqmoffline::l1t::HistDefinition::ymax, and dqmoffline::l1t::HistDefinition::ymin.

Referenced by bookHistograms().

581  {
582  ibooker.cd();
583  ibooker.setCurrentFolder(histFolder_);
584 
586  h_nVertex_ = ibooker.book1D(nVertexDef.name, nVertexDef.title, nVertexDef.nbinsX, nVertexDef.xmin, nVertexDef.xmax);
587  h_tagAndProbeMass_ = ibooker.book1D("tagAndProbeMass", "Invariant mass of tag & probe pair", 100, 40, 140);
588  // electron reco vs L1
591  ibooker.book2D("L1EGammaETvsElectronET_EB",
592  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
593  templateETvsET.nbinsX,
594  &templateETvsET.binsX[0],
595  templateETvsET.nbinsY,
596  &templateETvsET.binsY[0]);
598  ibooker.book2D("L1EGammaETvsElectronET_EE",
599  "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
600  templateETvsET.nbinsX,
601  &templateETvsET.binsX[0],
602  templateETvsET.nbinsY,
603  &templateETvsET.binsY[0]);
605  ibooker.book2D("L1EGammaETvsElectronET_EB_EE",
606  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
607  templateETvsET.nbinsX,
608  &templateETvsET.binsX[0],
609  templateETvsET.nbinsY,
610  &templateETvsET.binsY[0]);
611 
613  h_L1EGammaPhivsElectronPhi_EB_ = ibooker.book2D(
614  "L1EGammaPhivsElectronPhi_EB",
615  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
616  templatePHIvsPHI.nbinsX,
617  templatePHIvsPHI.xmin,
618  templatePHIvsPHI.xmax,
619  templatePHIvsPHI.nbinsY,
620  templatePHIvsPHI.ymin,
621  templatePHIvsPHI.ymax);
622  h_L1EGammaPhivsElectronPhi_EE_ = ibooker.book2D(
623  "L1EGammaPhivsElectronPhi_EE",
624  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
625  templatePHIvsPHI.nbinsX,
626  templatePHIvsPHI.xmin,
627  templatePHIvsPHI.xmax,
628  templatePHIvsPHI.nbinsY,
629  templatePHIvsPHI.ymin,
630  templatePHIvsPHI.ymax);
631  h_L1EGammaPhivsElectronPhi_EB_EE_ = ibooker.book2D(
632  "L1EGammaPhivsElectronPhi_EB_EE",
633  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
634  templatePHIvsPHI.nbinsX,
635  templatePHIvsPHI.xmin,
636  templatePHIvsPHI.xmax,
637  templatePHIvsPHI.nbinsY,
638  templatePHIvsPHI.ymin,
639  templatePHIvsPHI.ymax);
640 
641  h_L1EGammaEtavsElectronEta_ = ibooker.book2D("L1EGammaEtavsElectronEta",
642  "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta",
643  100,
644  -3,
645  3,
646  100,
647  -3,
648  3);
649 
650  // electron resolutions
652  ibooker.book1D("resolutionElectronET_EB",
653  "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
654  50,
655  -1,
656  1.5);
658  ibooker.book1D("resolutionElectronET_EE",
659  "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
660  50,
661  -1,
662  1.5);
663  h_resolutionElectronET_EB_EE_ = ibooker.book1D(
664  "resolutionElectronET_EB_EE",
665  "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
666  50,
667  -1,
668  1.5);
669 
671  ibooker.book1D("resolutionElectronPhi_EB",
672  "#phi_{electron} resolution (EB); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
673  120,
674  -0.3,
675  0.3);
677  ibooker.book1D("resolutionElectronPhi_EE",
678  "electron #phi resolution (EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
679  120,
680  -0.3,
681  0.3);
683  ibooker.book1D("resolutionElectronPhi_EB_EE",
684  "electron #phi resolution (EB+EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
685  120,
686  -0.3,
687  0.3);
688 
690  ibooker.book1D("resolutionElectronEta",
691  "electron #eta resolution (EB); L1 EGamma #eta - GSF Electron #eta; events",
692  120,
693  -0.3,
694  0.3);
695 
696  // electron turn-ons
697  ibooker.setCurrentFolder(efficiencyFolder_);
698  std::vector<float> electronBins(electronEfficiencyBins_.begin(), electronEfficiencyBins_.end());
699  int nBins = electronBins.size() - 1;
700  float* electronBinArray = &(electronBins[0]);
701 
703  std::string str_threshold = std::to_string(int(threshold));
705  ibooker.book1D("efficiencyElectronET_EB_threshold_" + str_threshold + "_Num",
706  "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events",
707  nBins,
708  electronBinArray);
710  ibooker.book1D("efficiencyElectronET_EE_threshold_" + str_threshold + "_Num",
711  "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events",
712  nBins,
713  electronBinArray);
715  ibooker.book1D("efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Num",
716  "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events",
717  nBins,
718  electronBinArray);
720  ibooker.book2D("efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Num",
721  "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
722  50,
723  -2.5,
724  2.5,
725  32,
726  -3.2,
727  3.2);
728 
730  ibooker.book1D("efficiencyElectronET_EB_threshold_" + str_threshold + "_Den",
731  "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events",
732  nBins,
733  electronBinArray);
735  ibooker.book1D("efficiencyElectronET_EE_threshold_" + str_threshold + "_Den",
736  "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events",
737  nBins,
738  electronBinArray);
740  ibooker.book1D("efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Den",
741  "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events",
742  nBins,
743  electronBinArray);
745  ibooker.book2D("efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Den",
746  "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
747  50,
748  -2.5,
749  2.5,
750  32,
751  -3.2,
752  3.2);
753  }
754 
756  std::string str_threshold = std::to_string(int(threshold));
758  ibooker.book1D("efficiencyElectronEta_threshold_" + str_threshold + "_Num",
759  "electron efficiency (numerator); GSF Electron #eta; events",
760  50,
761  -2.5,
762  2.5);
764  ibooker.book1D("efficiencyElectronPhi_threshold_" + str_threshold + "_Num",
765  "electron efficiency (numerator); GSF Electron #phi; events",
766  32,
767  -3.2,
768  3.2);
770  ibooker.book1D("efficiencyElectronNVertex_threshold_" + str_threshold + "_Num",
771  "electron efficiency (numerator); Nvtx; events",
772  30,
773  0,
774  60);
775 
777  ibooker.book1D("efficiencyElectronEta_threshold_" + str_threshold + "_Den",
778  "electron efficiency (denominator); GSF Electron #eta; events",
779  50,
780  -2.5,
781  2.5);
783  ibooker.book1D("efficiencyElectronPhi_threshold_" + str_threshold + "_Den",
784  "electron efficiency (denominator); GSF Electron #phi; events",
785  32,
786  -3.2,
787  3.2);
789  ibooker.book1D("efficiencyElectronNVertex_threshold_" + str_threshold + "_Den",
790  "electron efficiency (denominator); Nvtx; events",
791  30,
792  0,
793  60);
794  }
795 
796  ibooker.cd();
797 }
std::vector< float > binsX
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_
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_
dqmoffline::l1t::HistDefinitions histDefinitions_
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 * h_resolutionElectronEta_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
std::string efficiencyFolder_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
std::vector< float > binsY
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 132 of file L1TEGammaOffline.cc.

References bookElectronHistos().

132  {
133  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::bookHistograms" << std::endl;
134 
135  //book at beginRun
136  bookElectronHistos(ibooker);
137  // bookPhotonHistos(ibooker);
138 }
void bookElectronHistos(DQMStore::IBooker &)
void L1TEGammaOffline::bookPhotonHistos ( DQMStore::IBooker ibooker)
private

Definition at line 799 of file L1TEGammaOffline.cc.

References dqmoffline::l1t::HistDefinition::binsX, dqmoffline::l1t::HistDefinition::binsY, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), efficiencyFolder_, L1TEGammaOffline_cfi::ETvsET, 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_, histDefinitions_, histFolder_, seedmultiplicitymonitor_newtracking_cfi::nBins, dqmoffline::l1t::HistDefinition::nbinsX, dqmoffline::l1t::HistDefinition::nbinsY, L1TEGammaOffline_cfi::PHIvsPHI, photonEfficiencyBins_, photonEfficiencyThresholds_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, MessageLogger_cff::threshold, dqmoffline::l1t::HistDefinition::xmax, dqmoffline::l1t::HistDefinition::xmin, dqmoffline::l1t::HistDefinition::ymax, and dqmoffline::l1t::HistDefinition::ymin.

799  {
800  ibooker.cd();
801  ibooker.setCurrentFolder(histFolder_);
802 
805  ibooker.book2D("L1EGammaETvsPhotonET_EB",
806  "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
807  templateETvsET.nbinsX,
808  &templateETvsET.binsX[0],
809  templateETvsET.nbinsY,
810  &templateETvsET.binsY[0]);
812  ibooker.book2D("L1EGammaETvsPhotonET_EE",
813  "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
814  templateETvsET.nbinsX,
815  &templateETvsET.binsX[0],
816  templateETvsET.nbinsY,
817  &templateETvsET.binsY[0]);
819  ibooker.book2D("L1EGammaETvsPhotonET_EB_EE",
820  "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
821  templateETvsET.nbinsX,
822  &templateETvsET.binsX[0],
823  templateETvsET.nbinsY,
824  &templateETvsET.binsY[0]);
825 
828  ibooker.book2D("L1EGammaPhivsPhotonPhi_EB",
829  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
830  templatePHIvsPHI.nbinsX,
831  templatePHIvsPHI.xmin,
832  templatePHIvsPHI.xmax,
833  templatePHIvsPHI.nbinsY,
834  templatePHIvsPHI.ymin,
835  templatePHIvsPHI.ymax);
837  ibooker.book2D("L1EGammaPhivsPhotonPhi_EE",
838  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
839  templatePHIvsPHI.nbinsX,
840  templatePHIvsPHI.xmin,
841  templatePHIvsPHI.xmax,
842  templatePHIvsPHI.nbinsY,
843  templatePHIvsPHI.ymin,
844  templatePHIvsPHI.ymax);
845  h_L1EGammaPhivsPhotonPhi_EB_EE_ = ibooker.book2D(
846  "L1EGammaPhivsPhotonPhi_EB_EE",
847  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
848  templatePHIvsPHI.nbinsX,
849  templatePHIvsPHI.xmin,
850  templatePHIvsPHI.xmax,
851  templatePHIvsPHI.nbinsY,
852  templatePHIvsPHI.ymin,
853  templatePHIvsPHI.ymax);
854 
855  h_L1EGammaEtavsPhotonEta_ = ibooker.book2D(
856  "L1EGammaEtavsPhotonEta", "L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
857 
858  // photon resolutions
860  ibooker.book1D("resolutionPhotonET_EB",
861  "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
862  50,
863  -1,
864  1.5);
866  ibooker.book1D("resolutionPhotonET_EE",
867  "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
868  50,
869  -1,
870  1.5);
872  ibooker.book1D("resolutionPhotonET_EB_EE",
873  "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
874  50,
875  -1,
876  1.5);
877 
879  ibooker.book1D("resolutionPhotonPhi_EB",
880  "#phi_{photon} resolution (EB); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
881  120,
882  -0.3,
883  0.3);
885  ibooker.book1D("resolutionPhotonPhi_EE",
886  "photon #phi resolution (EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
887  120,
888  -0.3,
889  0.3);
891  ibooker.book1D("resolutionPhotonPhi_EB_EE",
892  "photon #phi resolution (EB+EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
893  120,
894  -0.3,
895  0.3);
896 
897  h_resolutionPhotonEta_ = ibooker.book1D(
898  "resolutionPhotonEta", "photon #eta resolution (EB); L1 EGamma #eta - Photon #eta; events", 120, -0.3, 0.3);
899 
900  // photon turn-ons
901  ibooker.setCurrentFolder(efficiencyFolder_);
902  std::vector<float> photonBins(photonEfficiencyBins_.begin(), photonEfficiencyBins_.end());
903  int nBins = photonBins.size() - 1;
904  float* photonBinArray = &(photonBins[0]);
905 
907  std::string str_threshold = std::to_string(int(threshold));
909  ibooker.book1D("efficiencyPhotonET_EB_threshold_" + str_threshold + "_Num",
910  "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events",
911  nBins,
912  photonBinArray);
914  ibooker.book1D("efficiencyPhotonET_EE_threshold_" + str_threshold + "_Num",
915  "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events",
916  nBins,
917  photonBinArray);
919  ibooker.book1D("efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Num",
920  "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events",
921  nBins,
922  photonBinArray);
923 
925  ibooker.book1D("efficiencyPhotonET_EB_threshold_" + str_threshold + "_Den",
926  "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events",
927  nBins,
928  photonBinArray);
930  ibooker.book1D("efficiencyPhotonET_EE_threshold_" + str_threshold + "_Den",
931  "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events",
932  nBins,
933  photonBinArray);
935  ibooker.book1D("efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Den",
936  "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events",
937  nBins,
938  photonBinArray);
939  }
940 
941  ibooker.cd();
942 }
std::vector< float > binsX
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
std::string histFolder_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
MonitorElement * h_resolutionPhotonET_EE_
dqmoffline::l1t::HistDefinitions histDefinitions_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
MonitorElement * h_resolutionPhotonET_EB_
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
std::string efficiencyFolder_
std::vector< float > binsY
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 &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 117 of file L1TEGammaOffline.cc.

References dqmoffline::l1t::getTriggerIndices(), hltConfig_, HLTConfigProvider::init(), triggerIndices_, HLTConfigProvider::triggerNames(), triggerNames_, and triggerProcess_.

117  {
118  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::beginRun" << std::endl;
119  bool changed(true);
120  if (!hltConfig_.init(iRun, iSetup, triggerProcess_, changed)) {
121  edm::LogError("L1TEGammaOffline") << " HLT config extraction failure with process name " << triggerProcess_
122  << std::endl;
123  triggerNames_.clear();
124  } else {
126  }
127 }
const std::vector< std::string > & triggerNames() const
names of trigger paths
std::vector< unsigned int > getTriggerIndices(const std::vector< std::string > &requestedTriggers, const std::vector< std::string > &triggersInEvent)
Definition: L1TCommon.cc:10
std::string triggerProcess_
HLTConfigProvider hltConfig_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
std::vector< std::string > triggerNames_
std::vector< unsigned int > triggerIndices_
void L1TEGammaOffline::dqmEndRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 574 of file L1TEGammaOffline.cc.

574  {
575  edm::LogInfo("L1TEGammaOffline") << "L1TEGammaOffline::endRun" << std::endl;
576 }
void L1TEGammaOffline::endJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 944 of file L1TEGammaOffline.cc.

References normalise2DHistogramsToBinArea().

void L1TEGammaOffline::fillElectrons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 180 of file L1TEGammaOffline.cc.

References funct::abs(), BXVector< T >::begin(), deepInspectionElectronThresholds_, reco::deltaPhi(), PbPb_ZMuSkimMuonDPG_cff::deltaR, electronEfficiencyThresholds_, BXVector< T >::end(), reco::LeafCandidate::et(), reco::LeafCandidate::eta(), dqmoffline::l1t::fill2DWithinLimits(), dqmoffline::l1t::fillWithinLimits(), findTagAndProbePair(), edm::Event::getByToken(), electronIsolatorFromEffectiveArea_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, maxDeltaRForL1Matching_, HLT_2018_cff::minDeltaR, reco::LeafCandidate::phi(), probeElectron_, probeToL1Offset_, recoToL1TThresholdFactor_, HLTMuonOfflineAnalyzer_cfi::resolutionEta, HLTMuonOfflineAnalyzer_cfi::resolutionPhi, stage2CaloLayer2EGammaToken_, theGsfElectronCollection_, and MessageLogger_cff::threshold.

Referenced by analyze().

180  {
182  e.getByToken(stage2CaloLayer2EGammaToken_, l1EGamma);
183 
185  e.getByToken(theGsfElectronCollection_, gsfElectrons);
186 
187  if (!gsfElectrons.isValid()) {
188  edm::LogWarning("L1TEGammaOffline") << "invalid collection: GSF electrons " << std::endl;
189  return;
190  }
191  if (gsfElectrons->empty()) {
192  LogDebug("L1TEGammaOffline") << "empty collection: GSF electrons " << std::endl;
193  return;
194  }
195  if (!l1EGamma.isValid()) {
196  edm::LogWarning("L1TEGammaOffline") << "invalid collection: L1 EGamma " << std::endl;
197  return;
198  }
199  if (!findTagAndProbePair(gsfElectrons)) {
200  LogDebug("L1TEGammaOffline") << "Could not find a tag & probe pair" << std::endl;
201  return; //continue to next event
202  }
203 
204  auto probeElectron = probeElectron_;
205 
206  // find corresponding L1 EG
208  l1t::EGamma closestL1EGamma;
209  bool foundMatch = false;
210 
211  int bunchCrossing = 0;
212  for (auto egamma = l1EGamma->begin(bunchCrossing); egamma != l1EGamma->end(bunchCrossing); ++egamma) {
213  double currentDeltaR = deltaR(egamma->eta(), egamma->phi(), probeElectron.eta(), probeElectron.phi());
214  if (currentDeltaR > minDeltaR) {
215  continue;
216  } else {
217  minDeltaR = currentDeltaR;
218  closestL1EGamma = *egamma;
219  foundMatch = true;
220  }
221  }
222 
223  if (!foundMatch) {
224  LogDebug("L1TEGammaOffline") << "Could not find a matching L1 EGamma " << std::endl;
225  return;
226  }
227 
228  double recoEt = probeElectron.et();
229  double recoEta = probeElectron.eta();
230  double recoPhi = probeElectron.phi();
231 
232  double l1Et = closestL1EGamma.et();
233  double l1Eta = closestL1EGamma.eta();
234  double l1Phi = closestL1EGamma.phi();
235 
236  // if no reco value, relative resolution does not make sense -> sort to overflow
237  double outOfBounds = 9999;
238  double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
239  double resolutionEta = l1Eta - recoEta;
240  double resolutionPhi = reco::deltaPhi(l1Phi, recoPhi);
241 
242  using namespace dqmoffline::l1t;
243  // eta
246 
247  // plots for deeper inspection
249  if (recoEt > threshold * recoToL1TThresholdFactor_) {
253  if (l1Et > threshold + probeToL1Offset_) {
257  }
258  }
259  }
260 
262  if (recoEt > threshold * recoToL1TThresholdFactor_) {
264  if (l1Et > threshold + probeToL1Offset_) {
266  }
267  }
268  }
269 
270  if (std::abs(recoEta) <= 1.479) { // barrel
271  // et
274  //resolution
277  // phi
280  // resolution
283 
284  // turn-ons
285  for (auto threshold : electronEfficiencyThresholds_) {
288  if (l1Et > threshold) {
291  }
292  }
293  } else { // end-cap
294  // et
297  //resolution
300  // phi
303  // resolution
306 
307  // turn-ons
308  for (auto threshold : electronEfficiencyThresholds_) {
311  if (l1Et > threshold) {
314  }
315  }
316  }
317 }
#define LogDebug(id)
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
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_
double maxDeltaRForL1Matching_
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:70
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
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
double recoToL1TThresholdFactor_
void L1TEGammaOffline::fillPhotons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 458 of file L1TEGammaOffline.cc.

References funct::abs(), BXVector< T >::begin(), reco::deltaPhi(), PbPb_ZMuSkimMuonDPG_cff::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, HLT_2018_cff::minDeltaR, reco::LeafCandidate::phi(), photonEfficiencyThresholds_, BPHMonitor_cfi::photons, HLTMuonOfflineAnalyzer_cfi::resolutionEta, HLTMuonOfflineAnalyzer_cfi::resolutionPhi, stage2CaloLayer2EGammaToken_, thePhotonCollection_, and MessageLogger_cff::threshold.

458  {
459  // TODO - just an example here
461  e.getByToken(stage2CaloLayer2EGammaToken_, l1EGamma);
462 
464  e.getByToken(thePhotonCollection_, photons);
465 
466  if (!photons.isValid()) {
467  edm::LogWarning("L1TEGammaOffline") << "invalid collection: reco::Photons " << std::endl;
468  return;
469  }
470  if (!l1EGamma.isValid()) {
471  edm::LogWarning("L1TEGammaOffline") << "invalid collection: L1 EGamma " << std::endl;
472  return;
473  }
474 
475  if (photons->empty()) {
476  LogDebug("L1TEGammaOffline") << "No photons found in event." << std::endl;
477  return;
478  }
479 
480  auto probePhoton = photons->at(0);
481 
482  double minDeltaR = 0.3;
483  l1t::EGamma closestL1EGamma;
484  bool foundMatch = false;
485 
486  int bunchCrossing = 0;
487  for (auto egamma = l1EGamma->begin(bunchCrossing); egamma != l1EGamma->end(bunchCrossing); ++egamma) {
488  double currentDeltaR = deltaR(egamma->eta(), egamma->phi(), probePhoton.eta(), probePhoton.phi());
489  if (currentDeltaR > minDeltaR) {
490  continue;
491  } else {
492  minDeltaR = currentDeltaR;
493  closestL1EGamma = *egamma;
494  foundMatch = true;
495  }
496  }
497 
498  if (!foundMatch) {
499  LogDebug("L1TEGammaOffline") << "Could not find a matching L1 EGamma " << std::endl;
500  return;
501  }
502 
503  double recoEt = probePhoton.et();
504  double recoEta = probePhoton.eta();
505  double recoPhi = probePhoton.phi();
506 
507  double l1Et = closestL1EGamma.et();
508  double l1Eta = closestL1EGamma.eta();
509  double l1Phi = closestL1EGamma.phi();
510 
511  // if no reco value, relative resolution does not make sense -> sort to overflow
512  double outOfBounds = 9999;
513  double resolutionEt = recoEt > 0 ? (l1Et - recoEt) / recoEt : outOfBounds;
514  double resolutionEta = l1Eta - recoEta;
515  double resolutionPhi = reco::deltaPhi(l1Phi, recoPhi);
516 
517  using namespace dqmoffline::l1t;
518  // eta
521 
522  if (std::abs(recoEta) <= 1.479) { // barrel
523  // et
526  //resolution
529  // phi
532  // resolution
535 
536  // turn-ons
540  if (l1Et > threshold) {
543  }
544  }
545  } else { // end-cap
546  // et
549  //resolution
552  // phi
555  // resolution
558 
559  // turn-ons
560  for (auto threshold : photonEfficiencyThresholds_) {
563  if (l1Et > threshold) {
566  }
567  }
568  }
569 }
#define LogDebug(id)
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
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:70
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
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 337 of file L1TEGammaOffline.cc.

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

Referenced by fillElectrons().

337  {
338  bool foundBoth(false);
339  auto nElectrons = electrons->size();
340  if (nElectrons < 2)
341  return false;
342 
343  for (auto tagElectron : *electrons) {
344  for (auto probeElectron : *electrons) {
345  if (tagElectron.p4() == probeElectron.p4())
346  continue;
347 
348  auto combined(tagElectron.p4() + probeElectron.p4());
349  auto tagAbsEta = std::abs(tagElectron.eta());
350  auto probeAbsEta = std::abs(probeElectron.eta());
351 
352  // EB-EE transition region
353  bool isEBEEGap = tagElectron.isEBEEGap() || probeElectron.isEBEEGap();
354  bool passesEta = !isEBEEGap && tagAbsEta < 2.5 && probeAbsEta < 2.5;
355  bool passesCharge = tagElectron.charge() == -probeElectron.charge();
356 
357  // https://github.com/ikrav/cmssw/blob/egm_id_80X_v1/RecoEgamma/ElectronIdentification/plugins/cuts/GsfEleFull5x5SigmaIEtaIEtaCut.cc#L45
358  bool tagPassesMediumID = passesMediumEleId(tagElectron) && tagElectron.et() > 30.;
359  bool probePassesLooseID = passesLooseEleId(probeElectron);
360  bool passesInvariantMass = combined.M() > 60 && combined.M() < 120;
361  bool tagMatchesHLTObject = matchesAnHLTObject(tagElectron.eta(), tagElectron.phi());
362 
363  if (passesEta && passesInvariantMass && passesCharge && tagPassesMediumID && probePassesLooseID &&
364  tagMatchesHLTObject) {
365  foundBoth = true;
366  tagElectron_ = tagElectron;
367  probeElectron_ = probeElectron;
368  // plot tag & probe invariant mass
370  return foundBoth;
371  }
372  }
373  }
374  return foundBoth;
375 }
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_
bool matchesAnHLTObject(double eta, double phi) const
void fillWithinLimits(MonitorElement *mon, double value, double weight=1.)
bool L1TEGammaOffline::matchesAnHLTObject ( double  eta,
double  phi 
) const
private

Definition at line 445 of file L1TEGammaOffline.cc.

References dqmoffline::l1t::getFiredTriggerIndices(), dqmoffline::l1t::getHLTFilters(), dqmoffline::l1t::getMatchedTriggerObjects(), dqmoffline::l1t::getTriggerObjects(), dqmoffline::l1t::getTriggerResults(), hltConfig_, maxDeltaRForHLTMatching_, bookConverter::results, triggerEvent_, triggerIndices_, triggerProcess_, and triggerResults_.

Referenced by findTagAndProbePair().

445  {
446  // get HLT objects of fired triggers
447  using namespace dqmoffline::l1t;
449  std::vector<unsigned int> firedTriggers = getFiredTriggerIndices(triggerIndices_, results);
450  std::vector<edm::InputTag> hltFilters = getHLTFilters(firedTriggers, hltConfig_, triggerProcess_);
451  const trigger::TriggerObjectCollection hltObjects = getTriggerObjects(hltFilters, triggerEvent_);
452  const trigger::TriggerObjectCollection matchedObjects =
454 
455  return !matchedObjects.empty();
456 }
trigger::TriggerObjectCollection getMatchedTriggerObjects(double eta, double phi, double maxDeltaR, const trigger::TriggerObjectCollection triggerObjects)
Definition: L1TCommon.cc:114
trigger::TriggerObjectCollection getTriggerObjects(const std::vector< edm::InputTag > &hltFilters, const trigger::TriggerEvent &triggerEvent)
Definition: L1TCommon.cc:75
double maxDeltaRForHLTMatching_
std::string triggerProcess_
std::vector< edm::InputTag > getHLTFilters(const std::vector< unsigned int > &triggers, const HLTConfigProvider &hltConfig, const std::string triggerProcess)
Definition: L1TCommon.cc:99
HLTConfigProvider hltConfig_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
std::vector< bool > getTriggerResults(const std::vector< unsigned int > &triggers, const edm::TriggerResults &triggerResults)
Definition: L1TCommon.cc:34
edm::TriggerResults triggerResults_
std::vector< unsigned int > triggerIndices_
trigger::TriggerEvent triggerEvent_
std::vector< unsigned int > getFiredTriggerIndices(const std::vector< unsigned int > &triggers, const std::vector< bool > &triggerResults)
Definition: L1TCommon.cc:54
void L1TEGammaOffline::normalise2DHistogramsToBinArea ( )
private

Definition at line 946 of file L1TEGammaOffline.cc.

References DEFINE_FWK_MODULE, h, h_L1EGammaEtavsElectronEta_, h_L1EGammaEtavsPhotonEta_, h_L1EGammaETvsElectronET_EB_, h_L1EGammaETvsElectronET_EB_EE_, h_L1EGammaETvsElectronET_EE_, h_L1EGammaETvsPhotonET_EB_, h_L1EGammaETvsPhotonET_EB_EE_, h_L1EGammaETvsPhotonET_EE_, h_L1EGammaPhivsElectronPhi_EB_, h_L1EGammaPhivsElectronPhi_EB_EE_, h_L1EGammaPhivsElectronPhi_EE_, h_L1EGammaPhivsPhotonPhi_EB_, h_L1EGammaPhivsPhotonPhi_EB_EE_, h_L1EGammaPhivsPhotonPhi_EE_, and LaserDQM_cfi::mon.

Referenced by endJob().

946  {
947  std::vector<MonitorElement*> monElementstoNormalize = {h_L1EGammaETvsElectronET_EB_,
961 
962  for (auto mon : monElementstoNormalize) {
963  if (mon != nullptr) {
964  auto h = mon->getTH2F();
965  if (h != nullptr) {
966  h->Scale(1, "width");
967  }
968  }
969  }
970 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EB_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
MonitorElement * h_L1EGammaETvsElectronET_EB_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
MonitorElement * h_L1EGammaEtavsElectronEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaETvsElectronET_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
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 383 of file L1TEGammaOffline.cc.

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

Referenced by findTagAndProbePair().

383  {
384  const float ecal_energy_inverse = 1.0 / electron.ecalEnergy();
385  const float eSCoverP = electron.eSuperClusterOverP();
386  const float eOverP = std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
387 
388  if (electron.isEB() && eOverP > 0.241)
389  return false;
390  if (electron.isEE() && eOverP > 0.14)
391  return false;
392  if (electron.isEB() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00477)
393  return false;
394  if (electron.isEE() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00868)
395  return false;
396  if (electron.isEB() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.222)
397  return false;
398  if (electron.isEE() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.213)
399  return false;
400  if (electron.isEB() && electron.scSigmaIEtaIEta() > 0.011)
401  return false;
402  if (electron.isEE() && electron.scSigmaIEtaIEta() > 0.0314)
403  return false;
404  if (electron.isEB() && electron.hadronicOverEm() > 0.298)
405  return false;
406  if (electron.isEE() && electron.hadronicOverEm() > 0.101)
407  return false;
408  return true;
409 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool L1TEGammaOffline::passesMediumEleId ( reco::GsfElectron const &  electron) const
private

Definition at line 417 of file L1TEGammaOffline.cc.

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

Referenced by findTagAndProbePair().

417  {
418  const float ecal_energy_inverse = 1.0 / electron.ecalEnergy();
419  const float eSCoverP = electron.eSuperClusterOverP();
420  const float eOverP = std::abs(1.0 - eSCoverP) * ecal_energy_inverse;
421 
422  if (electron.isEB() && eOverP < 0.134)
423  return false;
424  if (electron.isEE() && eOverP > 0.13)
425  return false;
426  if (electron.isEB() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00311)
427  return false;
428  if (electron.isEE() && std::abs(electron.deltaEtaSuperClusterTrackAtVtx()) > 0.00609)
429  return false;
430  if (electron.isEB() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.103)
431  return false;
432  if (electron.isEE() && std::abs(electron.deltaPhiSuperClusterTrackAtVtx()) > 0.045)
433  return false;
434  if (electron.isEB() && electron.scSigmaIEtaIEta() > 0.00998)
435  return false;
436  if (electron.isEE() && electron.scSigmaIEtaIEta() > 0.0298)
437  return false;
438  if (electron.isEB() && electron.hadronicOverEm() > 0.253)
439  return false;
440  if (electron.isEE() && electron.hadronicOverEm() > 0.0878)
441  return false;
442  return true;
443 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

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

Definition at line 91 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::string L1TEGammaOffline::efficiencyFolder_
private

Definition at line 84 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

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

Definition at line 89 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos().

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

Definition at line 88 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 140 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 151 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 138 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 149 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 139 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 150 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 143 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 154 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 145 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 156 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 144 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 155 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 141 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 152 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 183 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 189 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 181 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 187 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 182 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 188 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_L1EGammaEtavsElectronEta_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaEtavsPhotonEta_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EB_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EB_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsElectronET_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EB_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EB_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaETvsPhotonET_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EB_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EB_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsElectronPhi_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EB_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EB_EE_
private
MonitorElement* L1TEGammaOffline::h_L1EGammaPhivsPhotonPhi_EE_
private
MonitorElement* L1TEGammaOffline::h_nVertex_
private

Definition at line 112 of file L1TEGammaOffline.h.

Referenced by analyze(), and bookElectronHistos().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_
private

Definition at line 127 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_EE_
private

Definition at line 129 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EE_
private

Definition at line 128 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronEta_
private

Definition at line 135 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_
private

Definition at line 131 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_EE_
private

Definition at line 133 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EE_
private

Definition at line 132 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_
private

Definition at line 170 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_EE_
private

Definition at line 172 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EE_
private

Definition at line 171 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonEta_
private

Definition at line 178 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_
private

Definition at line 174 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_EE_
private

Definition at line 176 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EE_
private

Definition at line 175 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_tagAndProbeMass_
private

Definition at line 113 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and findTagAndProbePair().

dqmoffline::l1t::HistDefinitions L1TEGammaOffline::histDefinitions_
private

Definition at line 108 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

std::string L1TEGammaOffline::histFolder_
private

Definition at line 83 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

HLTConfigProvider L1TEGammaOffline::hltConfig_
private

Definition at line 104 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun(), and matchesAnHLTObject().

double L1TEGammaOffline::maxDeltaRForHLTMatching_
private

Definition at line 97 of file L1TEGammaOffline.h.

Referenced by matchesAnHLTObject().

double L1TEGammaOffline::maxDeltaRForL1Matching_
private

Definition at line 96 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 94 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos().

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

Definition at line 93 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

const std::map< std::string, unsigned int > L1TEGammaOffline::PlotConfigNames
static
Initial value:
= {
{"nVertex", PlotConfig::nVertex}, {"ETvsET", PlotConfig::ETvsET}, {"PHIvsPHI", PlotConfig::PHIvsPHI}}

Definition at line 45 of file L1TEGammaOffline.h.

reco::GsfElectron L1TEGammaOffline::probeElectron_
private

Definition at line 101 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and findTagAndProbePair().

double L1TEGammaOffline::probeToL1Offset_
private

Definition at line 90 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

math::XYZPoint L1TEGammaOffline::PVPoint_
private

Definition at line 72 of file L1TEGammaOffline.h.

double L1TEGammaOffline::recoToL1TThresholdFactor_
private

Definition at line 98 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 86 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and fillPhotons().

double L1TEGammaOffline::tagAndProbleInvariantMass_
private

Definition at line 102 of file L1TEGammaOffline.h.

reco::GsfElectron L1TEGammaOffline::tagElectron_
private

Definition at line 100 of file L1TEGammaOffline.h.

Referenced by findTagAndProbePair().

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

Definition at line 78 of file L1TEGammaOffline.h.

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

Definition at line 75 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 76 of file L1TEGammaOffline.h.

Referenced by fillPhotons().

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

Definition at line 77 of file L1TEGammaOffline.h.

Referenced by analyze().

trigger::TriggerEvent L1TEGammaOffline::triggerEvent_
private

Definition at line 107 of file L1TEGammaOffline.h.

Referenced by analyze(), and matchesAnHLTObject().

std::vector<unsigned int> L1TEGammaOffline::triggerIndices_
private

Definition at line 105 of file L1TEGammaOffline.h.

Referenced by analyze(), dqmBeginRun(), and matchesAnHLTObject().

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

Definition at line 79 of file L1TEGammaOffline.h.

Referenced by analyze().

std::vector<std::string> L1TEGammaOffline::triggerNames_
private

Definition at line 82 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun().

std::string L1TEGammaOffline::triggerProcess_
private

Definition at line 81 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun(), and matchesAnHLTObject().

edm::TriggerResults L1TEGammaOffline::triggerResults_
private

Definition at line 106 of file L1TEGammaOffline.h.

Referenced by analyze(), and matchesAnHLTObject().

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

Definition at line 80 of file L1TEGammaOffline.h.

Referenced by analyze().