CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args...> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

enum  PlotConfig { nVertex, ETvsET, PHIvsPHI }
 
- Public Types inherited from DQMOneEDAnalyzer<>
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 DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
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::Accumulator, Args...>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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 selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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
 
- 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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

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::EGammaBxCollection
stage2CaloLayer2EGammaToken_
 
double tagAndProbleInvariantMass_
 
reco::GsfElectron tagElectron_
 
edm::EDGetTokenT< reco::BeamSpottheBSCollection_
 
edm::EDGetTokenT
< reco::GsfElectronCollection
theGsfElectronCollection_
 
edm::EDGetTokenT< std::vector
< reco::Photon > > 
thePhotonCollection_
 
edm::EDGetTokenT
< reco::VertexCollection
thePVCollection_
 
trigger::TriggerEvent triggerEvent_
 
std::vector< unsigned int > triggerIndices_
 
edm::EDGetTokenT
< trigger::TriggerEvent
triggerInputTag_
 
std::vector< std::string > triggerNames_
 
std::string triggerProcess_
 
edm::TriggerResults triggerResults_
 
edm::EDGetTokenT
< edm::TriggerResults
triggerResultsInputTag_
 

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 DQMOneEDAnalyzer<>
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 }
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_
Log< level::Info, false > LogInfo
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
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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 }
Log< level::Info, false > LogInfo

Member Function Documentation

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

Reimplemented from DQMOneEDAnalyzer<>.

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_
Log< level::Info, false > LogInfo
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_
Log< level::Warning, false > LogWarning
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::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::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_, histDefinitions_, histFolder_, dqmoffline::l1t::HistDefinition::name, dqmoffline::l1t::HistDefinition::nbinsX, dqmoffline::l1t::HistDefinition::nbinsY, dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::implementation::IBooker::setScope(), AlCaHLTBitMon_QueryRunRegistry::string, dtDQMClient_cfg::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  // since there are endRun manipulations.
585  ibooker.setScope(MonitorElementData::Scope::RUN);
586 
587  dqmoffline::l1t::HistDefinition nVertexDef = histDefinitions_[PlotConfig::nVertex];
588  h_nVertex_ = ibooker.book1D(nVertexDef.name, nVertexDef.title, nVertexDef.nbinsX, nVertexDef.xmin, nVertexDef.xmax);
589  h_tagAndProbeMass_ = ibooker.book1D("tagAndProbeMass", "Invariant mass of tag & probe pair", 100, 40, 140);
590  // electron reco vs L1
591  dqmoffline::l1t::HistDefinition templateETvsET = histDefinitions_[PlotConfig::ETvsET];
593  ibooker.book2D("L1EGammaETvsElectronET_EB",
594  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
595  templateETvsET.nbinsX,
596  &templateETvsET.binsX[0],
597  templateETvsET.nbinsY,
598  &templateETvsET.binsY[0]);
600  ibooker.book2D("L1EGammaETvsElectronET_EE",
601  "L1 EGamma E_{T} vs GSF Electron E_{T} (EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
602  templateETvsET.nbinsX,
603  &templateETvsET.binsX[0],
604  templateETvsET.nbinsY,
605  &templateETvsET.binsY[0]);
607  ibooker.book2D("L1EGammaETvsElectronET_EB_EE",
608  "L1 EGamma E_{T} vs GSF Electron E_{T} (EB+EE); GSF Electron E_{T} (GeV); L1 EGamma E_{T} (GeV)",
609  templateETvsET.nbinsX,
610  &templateETvsET.binsX[0],
611  templateETvsET.nbinsY,
612  &templateETvsET.binsY[0]);
613 
614  dqmoffline::l1t::HistDefinition templatePHIvsPHI = histDefinitions_[PlotConfig::PHIvsPHI];
616  "L1EGammaPhivsElectronPhi_EB",
617  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
618  templatePHIvsPHI.nbinsX,
619  templatePHIvsPHI.xmin,
620  templatePHIvsPHI.xmax,
621  templatePHIvsPHI.nbinsY,
622  templatePHIvsPHI.ymin,
623  templatePHIvsPHI.ymax);
625  "L1EGammaPhivsElectronPhi_EE",
626  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
627  templatePHIvsPHI.nbinsX,
628  templatePHIvsPHI.xmin,
629  templatePHIvsPHI.xmax,
630  templatePHIvsPHI.nbinsY,
631  templatePHIvsPHI.ymin,
632  templatePHIvsPHI.ymax);
634  "L1EGammaPhivsElectronPhi_EB_EE",
635  "#phi_{electron}^{L1} vs #phi_{electron}^{offline} (EB+EE); #phi_{electron}^{offline}; #phi_{electron}^{L1}",
636  templatePHIvsPHI.nbinsX,
637  templatePHIvsPHI.xmin,
638  templatePHIvsPHI.xmax,
639  templatePHIvsPHI.nbinsY,
640  templatePHIvsPHI.ymin,
641  templatePHIvsPHI.ymax);
642 
643  h_L1EGammaEtavsElectronEta_ = ibooker.book2D("L1EGammaEtavsElectronEta",
644  "L1 EGamma #eta vs GSF Electron #eta; GSF Electron #eta; L1 EGamma #eta",
645  100,
646  -3,
647  3,
648  100,
649  -3,
650  3);
651 
652  // electron resolutions
654  ibooker.book1D("resolutionElectronET_EB",
655  "electron ET resolution (EB); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
656  50,
657  -1,
658  1.5);
660  ibooker.book1D("resolutionElectronET_EE",
661  "electron ET resolution (EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
662  50,
663  -1,
664  1.5);
666  "resolutionElectronET_EB_EE",
667  "electron ET resolution (EB+EE); (L1 EGamma E_{T} - GSF Electron E_{T})/GSF Electron E_{T}; events",
668  50,
669  -1,
670  1.5);
671 
673  ibooker.book1D("resolutionElectronPhi_EB",
674  "#phi_{electron} resolution (EB); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
675  120,
676  -0.3,
677  0.3);
679  ibooker.book1D("resolutionElectronPhi_EE",
680  "electron #phi resolution (EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
681  120,
682  -0.3,
683  0.3);
685  ibooker.book1D("resolutionElectronPhi_EB_EE",
686  "electron #phi resolution (EB+EE); #phi_{electron}^{L1} - #phi_{electron}^{offline}; events",
687  120,
688  -0.3,
689  0.3);
690 
692  ibooker.book1D("resolutionElectronEta",
693  "electron #eta resolution (EB); L1 EGamma #eta - GSF Electron #eta; events",
694  120,
695  -0.3,
696  0.3);
697 
698  // electron turn-ons
700  std::vector<float> electronBins(electronEfficiencyBins_.begin(), electronEfficiencyBins_.end());
701  int nBins = electronBins.size() - 1;
702  float* electronBinArray = &(electronBins[0]);
703 
705  std::string str_threshold = std::to_string(int(threshold));
707  ibooker.book1D("efficiencyElectronET_EB_threshold_" + str_threshold + "_Num",
708  "electron efficiency (EB) (numerator); GSF Electron E_{T} (GeV); events",
709  nBins,
710  electronBinArray);
712  ibooker.book1D("efficiencyElectronET_EE_threshold_" + str_threshold + "_Num",
713  "electron efficiency (EE) (numerator); GSF Electron E_{T} (GeV); events",
714  nBins,
715  electronBinArray);
717  ibooker.book1D("efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Num",
718  "electron efficiency (EB+EE) (numerator); GSF Electron E_{T} (GeV); events",
719  nBins,
720  electronBinArray);
722  ibooker.book2D("efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Num",
723  "electron efficiency (numerator); GSF Electron #eta; GSF Electron #phi",
724  50,
725  -2.5,
726  2.5,
727  32,
728  -3.2,
729  3.2);
730 
732  ibooker.book1D("efficiencyElectronET_EB_threshold_" + str_threshold + "_Den",
733  "electron efficiency (EB) (denominator); GSF Electron E_{T} (GeV); events",
734  nBins,
735  electronBinArray);
737  ibooker.book1D("efficiencyElectronET_EE_threshold_" + str_threshold + "_Den",
738  "electron efficiency (EE) (denominator); GSF Electron E_{T} (GeV); events",
739  nBins,
740  electronBinArray);
742  ibooker.book1D("efficiencyElectronET_EB_EE_threshold_" + str_threshold + "_Den",
743  "electron efficiency (EB+EE) (denominator); GSF Electron E_{T} (GeV); events",
744  nBins,
745  electronBinArray);
747  ibooker.book2D("efficiencyElectronPhi_vs_Eta_threshold_" + str_threshold + "_Den",
748  "electron efficiency (denominator); GSF Electron #eta; GSF Electron #phi",
749  50,
750  -2.5,
751  2.5,
752  32,
753  -3.2,
754  3.2);
755  }
756 
758  std::string str_threshold = std::to_string(int(threshold));
760  ibooker.book1D("efficiencyElectronEta_threshold_" + str_threshold + "_Num",
761  "electron efficiency (numerator); GSF Electron #eta; events",
762  50,
763  -2.5,
764  2.5);
766  ibooker.book1D("efficiencyElectronPhi_threshold_" + str_threshold + "_Num",
767  "electron efficiency (numerator); GSF Electron #phi; events",
768  32,
769  -3.2,
770  3.2);
772  ibooker.book1D("efficiencyElectronNVertex_threshold_" + str_threshold + "_Num",
773  "electron efficiency (numerator); Nvtx; events",
774  30,
775  0,
776  60);
777 
779  ibooker.book1D("efficiencyElectronEta_threshold_" + str_threshold + "_Den",
780  "electron efficiency (denominator); GSF Electron #eta; events",
781  50,
782  -2.5,
783  2.5);
785  ibooker.book1D("efficiencyElectronPhi_threshold_" + str_threshold + "_Den",
786  "electron efficiency (denominator); GSF Electron #phi; events",
787  32,
788  -3.2,
789  3.2);
791  ibooker.book1D("efficiencyElectronNVertex_threshold_" + str_threshold + "_Den",
792  "electron efficiency (denominator); Nvtx; events",
793  30,
794  0,
795  60);
796  }
797 
798  ibooker.cd();
799 }
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_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
std::string histFolder_
virtual MonitorElementData::Scope setScope(MonitorElementData::Scope newscope)
Definition: DQMStore.cc:46
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
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
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_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
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 DQMOneEDAnalyzer<>.

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 &)
Log< level::Info, false > LogInfo
void L1TEGammaOffline::bookPhotonHistos ( DQMStore::IBooker ibooker)
private

Definition at line 801 of file L1TEGammaOffline.cc.

References dqmoffline::l1t::HistDefinition::binsX, dqmoffline::l1t::HistDefinition::binsY, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), 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_, histDefinitions_, histFolder_, dqmoffline::l1t::HistDefinition::nbinsX, dqmoffline::l1t::HistDefinition::nbinsY, photonEfficiencyBins_, photonEfficiencyThresholds_, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, dtDQMClient_cfg::threshold, dqmoffline::l1t::HistDefinition::xmax, dqmoffline::l1t::HistDefinition::xmin, dqmoffline::l1t::HistDefinition::ymax, and dqmoffline::l1t::HistDefinition::ymin.

801  {
802  ibooker.cd();
803  ibooker.setCurrentFolder(histFolder_);
804 
805  dqmoffline::l1t::HistDefinition templateETvsET = histDefinitions_[PlotConfig::ETvsET];
807  ibooker.book2D("L1EGammaETvsPhotonET_EB",
808  "L1 EGamma E_{T} vs Photon E_{T} (EB); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
809  templateETvsET.nbinsX,
810  &templateETvsET.binsX[0],
811  templateETvsET.nbinsY,
812  &templateETvsET.binsY[0]);
814  ibooker.book2D("L1EGammaETvsPhotonET_EE",
815  "L1 EGamma E_{T} vs Photon E_{T} (EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
816  templateETvsET.nbinsX,
817  &templateETvsET.binsX[0],
818  templateETvsET.nbinsY,
819  &templateETvsET.binsY[0]);
821  ibooker.book2D("L1EGammaETvsPhotonET_EB_EE",
822  "L1 EGamma E_{T} vs Photon E_{T} (EB+EE); Photon E_{T} (GeV); L1 EGamma E_{T} (GeV)",
823  templateETvsET.nbinsX,
824  &templateETvsET.binsX[0],
825  templateETvsET.nbinsY,
826  &templateETvsET.binsY[0]);
827 
828  dqmoffline::l1t::HistDefinition templatePHIvsPHI = histDefinitions_[PlotConfig::PHIvsPHI];
830  ibooker.book2D("L1EGammaPhivsPhotonPhi_EB",
831  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
832  templatePHIvsPHI.nbinsX,
833  templatePHIvsPHI.xmin,
834  templatePHIvsPHI.xmax,
835  templatePHIvsPHI.nbinsY,
836  templatePHIvsPHI.ymin,
837  templatePHIvsPHI.ymax);
839  ibooker.book2D("L1EGammaPhivsPhotonPhi_EE",
840  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
841  templatePHIvsPHI.nbinsX,
842  templatePHIvsPHI.xmin,
843  templatePHIvsPHI.xmax,
844  templatePHIvsPHI.nbinsY,
845  templatePHIvsPHI.ymin,
846  templatePHIvsPHI.ymax);
848  "L1EGammaPhivsPhotonPhi_EB_EE",
849  "#phi_{photon}^{L1} vs #phi_{photon}^{offline} (EB+EE); #phi_{photon}^{offline}; #phi_{photon}^{L1}",
850  templatePHIvsPHI.nbinsX,
851  templatePHIvsPHI.xmin,
852  templatePHIvsPHI.xmax,
853  templatePHIvsPHI.nbinsY,
854  templatePHIvsPHI.ymin,
855  templatePHIvsPHI.ymax);
856 
858  "L1EGammaEtavsPhotonEta", "L1 EGamma #eta vs Photon #eta; Photon #eta; L1 EGamma #eta", 100, -3, 3, 100, -3, 3);
859 
860  // photon resolutions
862  ibooker.book1D("resolutionPhotonET_EB",
863  "photon ET resolution (EB); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
864  50,
865  -1,
866  1.5);
868  ibooker.book1D("resolutionPhotonET_EE",
869  "photon ET resolution (EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
870  50,
871  -1,
872  1.5);
874  ibooker.book1D("resolutionPhotonET_EB_EE",
875  "photon ET resolution (EB+EE); (L1 EGamma E_{T} - Photon E_{T})/ Photon E_{T}; events",
876  50,
877  -1,
878  1.5);
879 
881  ibooker.book1D("resolutionPhotonPhi_EB",
882  "#phi_{photon} resolution (EB); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
883  120,
884  -0.3,
885  0.3);
887  ibooker.book1D("resolutionPhotonPhi_EE",
888  "photon #phi resolution (EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
889  120,
890  -0.3,
891  0.3);
893  ibooker.book1D("resolutionPhotonPhi_EB_EE",
894  "photon #phi resolution (EB+EE); #phi_{photon}^{L1} - #phi_{photon}^{offline}; events",
895  120,
896  -0.3,
897  0.3);
898 
899  h_resolutionPhotonEta_ = ibooker.book1D(
900  "resolutionPhotonEta", "photon #eta resolution (EB); L1 EGamma #eta - Photon #eta; events", 120, -0.3, 0.3);
901 
902  // photon turn-ons
904  std::vector<float> photonBins(photonEfficiencyBins_.begin(), photonEfficiencyBins_.end());
905  int nBins = photonBins.size() - 1;
906  float* photonBinArray = &(photonBins[0]);
907 
909  std::string str_threshold = std::to_string(int(threshold));
911  ibooker.book1D("efficiencyPhotonET_EB_threshold_" + str_threshold + "_Num",
912  "photon efficiency (EB) (numerator); Photon E_{T} (GeV); events",
913  nBins,
914  photonBinArray);
916  ibooker.book1D("efficiencyPhotonET_EE_threshold_" + str_threshold + "_Num",
917  "photon efficiency (EE) (numerator); Photon E_{T} (GeV); events",
918  nBins,
919  photonBinArray);
921  ibooker.book1D("efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Num",
922  "photon efficiency (EB+EE) (numerator); Photon E_{T} (GeV); events",
923  nBins,
924  photonBinArray);
925 
927  ibooker.book1D("efficiencyPhotonET_EB_threshold_" + str_threshold + "_Den",
928  "photon efficiency (EB) (denominator); Photon E_{T} (GeV); events",
929  nBins,
930  photonBinArray);
932  ibooker.book1D("efficiencyPhotonET_EE_threshold_" + str_threshold + "_Den",
933  "photon efficiency (EE) (denominator); Photon E_{T} (GeV); events",
934  nBins,
935  photonBinArray);
937  ibooker.book1D("efficiencyPhotonET_EB_EE_threshold_" + str_threshold + "_Den",
938  "photon efficiency (EB+EE) (denominator); Photon E_{T} (GeV); events",
939  nBins,
940  photonBinArray);
941  }
942 
943  ibooker.cd();
944 }
std::vector< float > binsX
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
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 * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
MonitorElement * h_resolutionPhotonPhi_EB_
std::vector< double > photonEfficiencyBins_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
std::vector< double > photonEfficiencyThresholds_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
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 DQMOneEDAnalyzer<>.

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
Log< level::Error, false > LogError
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_
Log< level::Info, false > LogInfo
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 DQMOneEDAnalyzer<>.

Definition at line 574 of file L1TEGammaOffline.cc.

References normalise2DHistogramsToBinArea().

574  {
576 }
void normalise2DHistogramsToBinArea()
void L1TEGammaOffline::fillElectrons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 180 of file L1TEGammaOffline.cc.

References funct::abs(), deepInspectionElectronThresholds_, reco::deltaPhi(), HLT_FULL_cff::deltaR, electronEfficiencyThresholds_, reco::LeafCandidate::et(), reco::LeafCandidate::eta(), dqmoffline::l1t::fill2DWithinLimits(), dqmoffline::l1t::fillWithinLimits(), findTagAndProbePair(), edm::Event::getByToken(), 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_FULL_cff::minDeltaR, reco::LeafCandidate::phi(), probeElectron_, probeToL1Offset_, recoToL1TThresholdFactor_, stage2CaloLayer2EGammaToken_, theGsfElectronCollection_, and dtDQMClient_cfg::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 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
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_
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.)
double et() const final
transverse energy
MonitorElement * h_L1EGammaETvsElectronET_EE_
MonitorElement * h_resolutionElectronPhi_EE_
Log< level::Warning, false > LogWarning
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
double phi() const final
momentum azimuthal angle
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
double recoToL1TThresholdFactor_
#define LogDebug(id)
double eta() const final
momentum pseudorapidity
void L1TEGammaOffline::fillPhotons ( edm::Event const &  e,
const unsigned int  nVertex 
)
private

Definition at line 458 of file L1TEGammaOffline.cc.

References funct::abs(), reco::deltaPhi(), HLT_FULL_cff::deltaR, 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_FULL_cff::minDeltaR, reco::LeafCandidate::phi(), photonEfficiencyThresholds_, interactiveExample::photons, stage2CaloLayer2EGammaToken_, thePhotonCollection_, and dtDQMClient_cfg::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 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
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_
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_
double et() const final
transverse energy
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
std::vector< double > photonEfficiencyThresholds_
Log< level::Warning, false > LogWarning
double phi() const final
momentum azimuthal angle
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
MonitorElement * h_resolutionPhotonET_EB_EE_
#define LogDebug(id)
double eta() const final
momentum pseudorapidity
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(), 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 (const auto& tagElectron : *electrons) {
344  for (const 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
dictionary results
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 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 dqmEndRun().

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 }
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_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
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(), 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(), 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 90 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

std::string L1TEGammaOffline::efficiencyFolder_
private

Definition at line 83 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

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

Definition at line 88 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos().

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

Definition at line 87 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 139 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 150 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 137 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 148 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 138 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 149 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 142 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 153 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 144 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 155 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 143 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 154 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 140 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 151 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

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

Definition at line 182 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 188 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 180 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 186 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 181 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

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

Definition at line 187 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 111 of file L1TEGammaOffline.h.

Referenced by analyze(), and bookElectronHistos().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_
private

Definition at line 126 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EB_EE_
private

Definition at line 128 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronET_EE_
private

Definition at line 127 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronEta_
private

Definition at line 134 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_
private

Definition at line 130 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EB_EE_
private

Definition at line 132 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionElectronPhi_EE_
private

Definition at line 131 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and fillElectrons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_
private

Definition at line 169 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EB_EE_
private

Definition at line 171 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonET_EE_
private

Definition at line 170 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonEta_
private

Definition at line 177 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_
private

Definition at line 173 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EB_EE_
private

Definition at line 175 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_resolutionPhotonPhi_EE_
private

Definition at line 174 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos(), and fillPhotons().

MonitorElement* L1TEGammaOffline::h_tagAndProbeMass_
private

Definition at line 112 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and findTagAndProbePair().

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

Definition at line 107 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

std::string L1TEGammaOffline::histFolder_
private

Definition at line 82 of file L1TEGammaOffline.h.

Referenced by bookElectronHistos(), and bookPhotonHistos().

HLTConfigProvider L1TEGammaOffline::hltConfig_
private

Definition at line 103 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun(), and matchesAnHLTObject().

double L1TEGammaOffline::maxDeltaRForHLTMatching_
private

Definition at line 96 of file L1TEGammaOffline.h.

Referenced by matchesAnHLTObject().

double L1TEGammaOffline::maxDeltaRForL1Matching_
private

Definition at line 95 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 93 of file L1TEGammaOffline.h.

Referenced by bookPhotonHistos().

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

Definition at line 92 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 100 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and findTagAndProbePair().

double L1TEGammaOffline::probeToL1Offset_
private

Definition at line 89 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

math::XYZPoint L1TEGammaOffline::PVPoint_
private

Definition at line 71 of file L1TEGammaOffline.h.

double L1TEGammaOffline::recoToL1TThresholdFactor_
private

Definition at line 97 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 85 of file L1TEGammaOffline.h.

Referenced by fillElectrons(), and fillPhotons().

double L1TEGammaOffline::tagAndProbleInvariantMass_
private

Definition at line 101 of file L1TEGammaOffline.h.

reco::GsfElectron L1TEGammaOffline::tagElectron_
private

Definition at line 99 of file L1TEGammaOffline.h.

Referenced by findTagAndProbePair().

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

Definition at line 77 of file L1TEGammaOffline.h.

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

Definition at line 74 of file L1TEGammaOffline.h.

Referenced by fillElectrons().

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

Definition at line 75 of file L1TEGammaOffline.h.

Referenced by fillPhotons().

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

Definition at line 76 of file L1TEGammaOffline.h.

Referenced by analyze().

trigger::TriggerEvent L1TEGammaOffline::triggerEvent_
private

Definition at line 106 of file L1TEGammaOffline.h.

Referenced by analyze(), and matchesAnHLTObject().

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

Definition at line 104 of file L1TEGammaOffline.h.

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

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

Definition at line 78 of file L1TEGammaOffline.h.

Referenced by analyze().

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

Definition at line 81 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun().

std::string L1TEGammaOffline::triggerProcess_
private

Definition at line 80 of file L1TEGammaOffline.h.

Referenced by dqmBeginRun(), and matchesAnHLTObject().

edm::TriggerResults L1TEGammaOffline::triggerResults_
private

Definition at line 105 of file L1TEGammaOffline.h.

Referenced by analyze(), and matchesAnHLTObject().

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

Definition at line 79 of file L1TEGammaOffline.h.

Referenced by analyze().