CMS 3D CMS Logo

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

#include <SUSY_HLT_MuEle_Hadronic.h>

Inheritance diagram for SUSY_HLT_MuEle_Hadronic:
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 Member Functions

 SUSY_HLT_MuEle_Hadronic (const edm::ParameterSet &ps)
 
 ~SUSY_HLT_MuEle_Hadronic () 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)
 

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)
 
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 bookHistos (DQMStore::IBooker &)
 

Private Attributes

double etaThrJet_
 
HLTConfigProvider fHltConfig
 
MonitorElementh_EleTurnOn_den
 
MonitorElementh_EleTurnOn_num
 
MonitorElementh_MuTurnOn_den
 
MonitorElementh_MuTurnOn_num
 
MonitorElementh_pfHTTurnOn_den
 
MonitorElementh_pfHTTurnOn_num
 
MonitorElementh_triggerEleEta
 
MonitorElementh_triggerElePhi
 
MonitorElementh_triggerElePt
 
MonitorElementh_triggerMuEleMass
 
MonitorElementh_triggerMuEta
 
MonitorElementh_triggerMuPhi
 
MonitorElementh_triggerMuPt
 
std::string HLTProcess_
 
double ptThrJet_
 
edm::EDGetTokenT< reco::CaloJetCollectiontheCaloJetCollection_
 
edm::EDGetTokenT< reco::GsfElectronCollectiontheElectronCollection_
 
edm::EDGetTokenT< reco::MuonCollectiontheMuonCollection_
 
edm::EDGetTokenT< reco::PFJetCollectionthePfJetCollection_
 
edm::EDGetTokenT< trigger::TriggerEventtheTrigSummary_
 
edm::InputTag triggerFilter_
 
std::string triggerPath_
 
std::string triggerPathAuxiliaryForHadronic_
 
std::string triggerPathAuxiliaryForMuEle_
 
edm::EDGetTokenT< edm::TriggerResultstriggerResults_
 

Additional Inherited Members

- 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
 
- 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 34 of file SUSY_HLT_MuEle_Hadronic.h.

Constructor & Destructor Documentation

SUSY_HLT_MuEle_Hadronic::SUSY_HLT_MuEle_Hadronic ( const edm::ParameterSet ps)

Definition at line 10 of file SUSY_HLT_MuEle_Hadronic.cc.

References etaThrJet_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLTProcess_, ptThrJet_, AlCaHLTBitMon_QueryRunRegistry::string, theCaloJetCollection_, theElectronCollection_, theMuonCollection_, thePfJetCollection_, theTrigSummary_, triggerFilter_, triggerPath_, triggerPathAuxiliaryForHadronic_, triggerPathAuxiliaryForMuEle_, and triggerResults_.

10  {
11  edm::LogInfo("SUSY_HLT_MuEle_Hadronic")
12  << "Constructor SUSY_HLT_MuEle_Hadronic::SUSY_HLT_MuEle_Hadronic " << std::endl;
13  // Get parameters from configuration file
14  theTrigSummary_ = consumes<trigger::TriggerEvent>(ps.getParameter<edm::InputTag>("trigSummary"));
15  theMuonCollection_ = consumes<reco::MuonCollection>(ps.getParameter<edm::InputTag>("MuonCollection"));
16  theElectronCollection_ = consumes<reco::GsfElectronCollection>(ps.getParameter<edm::InputTag>("ElectronCollection"));
17  thePfJetCollection_ = consumes<reco::PFJetCollection>(ps.getParameter<edm::InputTag>("pfJetCollection"));
18  theCaloJetCollection_ = consumes<reco::CaloJetCollection>(ps.getParameter<edm::InputTag>("caloJetCollection"));
19  triggerResults_ = consumes<edm::TriggerResults>(ps.getParameter<edm::InputTag>("TriggerResults"));
20  HLTProcess_ = ps.getParameter<std::string>("HLTProcess");
21  triggerPath_ = ps.getParameter<std::string>("TriggerPath");
22  triggerPathAuxiliaryForMuEle_ = ps.getParameter<std::string>("TriggerPathAuxiliaryForMuEle");
23  triggerPathAuxiliaryForHadronic_ = ps.getParameter<std::string>("TriggerPathAuxiliaryForHadronic");
24  triggerFilter_ = ps.getParameter<edm::InputTag>("TriggerFilter");
25  ptThrJet_ = ps.getUntrackedParameter<double>("PtThrJet");
26  etaThrJet_ = ps.getUntrackedParameter<double>("EtaThrJet");
27 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::MuonCollection > theMuonCollection_
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollection_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
SUSY_HLT_MuEle_Hadronic::~SUSY_HLT_MuEle_Hadronic ( )
override

Definition at line 29 of file SUSY_HLT_MuEle_Hadronic.cc.

29  {
30  edm::LogInfo("SUSY_HLT_MuEle_Hadronic")
31  << "Destructor SUSY_HLT_MuEle_Hadronic::~SUSY_HLT_MuEle_Hadronic " << std::endl;
32 }

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 70 of file SUSY_HLT_MuEle_Hadronic.cc.

References edm::HLTGlobalStatus::accept(), pdwgLeptonRecoSkim_cfi::caloJetCollection, metsig::electron, trigger::TriggerObject::eta(), etaThrJet_, dqm::impl::MonitorElement::Fill(), trigger::TriggerEvent::filterIndex(), trigger::TriggerEvent::filterKeys(), edm::Event::getByToken(), trigger::TriggerEvent::getObjects(), h_EleTurnOn_den, h_EleTurnOn_num, h_MuTurnOn_den, h_MuTurnOn_num, h_pfHTTurnOn_den, h_pfHTTurnOn_num, h_triggerEleEta, h_triggerElePhi, h_triggerElePt, h_triggerMuEleMass, h_triggerMuEta, h_triggerMuPhi, h_triggerMuPt, HLTBitAnalyser_cfi::hltresults, trigger::TriggerObject::id(), edm::HandleBase::isValid(), dqmiolumiharvest::j, relativeConstraints::keys, HLT_2018_cff::muon, ExoticaDQM_cfi::pfJetCollection, trigger::TriggerObject::phi(), trigger::TriggerObject::pt(), ptThrJet_, edm::TriggerNames::size(), trigger::TriggerEvent::sizeFilters(), mathSSE::sqrt(), theCaloJetCollection_, theElectronCollection_, theMuonCollection_, thePfJetCollection_, theTrigSummary_, trigger::TriggerElectron, triggerFilter_, trigger::TriggerMuon, edm::TriggerNames::triggerName(), edm::Event::triggerNames(), triggerMatchMonitor_cfi::triggerObjects, triggerPath_, triggerPathAuxiliaryForHadronic_, triggerPathAuxiliaryForMuEle_, triggerResults_, HLTMuonOfflineAnalyzer_cfi::triggerSummary, trigNames, edm::HLTGlobalStatus::wasrun(), and x.

70  {
71  edm::LogInfo("SUSY_HLT_MuEle_Hadronic") << "SUSY_HLT_MuEle_Hadronic::analyze" << std::endl;
72 
73  //-------------------------------
74  //--- Jets
75  //-------------------------------
77  e.getByToken(thePfJetCollection_, pfJetCollection);
78  if (!pfJetCollection.isValid()) {
79  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: PFJets"
80  << "\n";
81  return;
82  }
84  e.getByToken(theCaloJetCollection_, caloJetCollection);
85  if (!caloJetCollection.isValid()) {
86  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: CaloJets"
87  << "\n";
88  return;
89  }
90 
91  //-------------------------------
92  //--- Muon
93  //-------------------------------
95  e.getByToken(theMuonCollection_, MuonCollection);
96  if (!MuonCollection.isValid()) {
97  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: Muons "
98  << "\n";
99  return;
100  }
101 
102  //-------------------------------
103  //--- Electron
104  //-------------------------------
106  e.getByToken(theElectronCollection_, ElectronCollection);
107  if (!ElectronCollection.isValid()) {
108  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: Electrons "
109  << "\n";
110  return;
111  }
112 
113  //-------------------------------
114  //--- Trigger
115  //-------------------------------
117  e.getByToken(triggerResults_, hltresults);
118  if (!hltresults.isValid()) {
119  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: TriggerResults"
120  << "\n";
121  return;
122  }
124  e.getByToken(theTrigSummary_, triggerSummary);
125  if (!triggerSummary.isValid()) {
126  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "invalid collection: TriggerSummary"
127  << "\n";
128  return;
129  }
130 
131  // get online objects
132  std::vector<float> ptMuon, etaMuon, phiMuon, ptElectron, etaElectron, phiElectron;
133  size_t filterIndexEle = triggerSummary->filterIndex(triggerFilter_);
135  if (!(filterIndexEle >= triggerSummary->sizeFilters())) {
136  const trigger::Keys &keys = triggerSummary->filterKeys(filterIndexEle);
137  for (size_t j = 0; j < keys.size(); ++j) {
138  trigger::TriggerObject foundObject = triggerObjects[keys[j]];
139  if (foundObject.id() == trigger::TriggerElectron) { // It's an electron
140 
141  bool same = false;
142  for (unsigned int x = 0; x < ptElectron.size(); x++) {
143  if (fabs(ptElectron[x] - foundObject.pt()) < 0.01 || fabs(etaElectron[x] - foundObject.eta()) < 0.001 ||
144  fabs(phiElectron[x] - foundObject.phi()) < 0.001)
145  same = true;
146  }
147 
148  if (!same) {
149  h_triggerElePt->Fill(foundObject.pt());
150  h_triggerEleEta->Fill(foundObject.eta());
151  h_triggerElePhi->Fill(foundObject.phi());
152  ptElectron.push_back(foundObject.pt());
153  etaElectron.push_back(foundObject.eta());
154  phiElectron.push_back(foundObject.phi());
155  }
156  }
157  if (foundObject.id() == trigger::TriggerMuon) { // It's a muon
158 
159  bool same = false;
160  for (unsigned int x = 0; x < ptMuon.size(); x++) {
161  if (fabs(ptMuon[x] - foundObject.pt()) < 0.01)
162  same = true;
163  }
164 
165  if (!same) {
166  h_triggerMuPt->Fill(foundObject.pt());
167  h_triggerMuEta->Fill(foundObject.eta());
168  h_triggerMuPhi->Fill(foundObject.phi());
169  ptMuon.push_back(foundObject.pt());
170  etaMuon.push_back(foundObject.eta());
171  phiMuon.push_back(foundObject.phi());
172  }
173  }
174  }
175  }
176 
177  if (!ptMuon.empty() && !ptElectron.empty()) {
178  math::PtEtaPhiMLorentzVectorD *mu1 = new math::PtEtaPhiMLorentzVectorD(ptMuon[0], etaMuon[0], phiMuon[0], 0.106);
180  new math::PtEtaPhiMLorentzVectorD(ptElectron[0], etaElectron[0], phiElectron[0], 0.0005);
181  (*mu1) += (*ele2);
182  h_triggerMuEleMass->Fill(mu1->M());
183  delete mu1;
184  delete ele2;
185  } else {
186  h_triggerMuEleMass->Fill(-1.);
187  }
188 
189  bool hasFired = false;
190  bool hasFiredAuxiliaryForMuEleLeg = false;
191  bool hasFiredAuxiliaryForHadronicLeg = false;
192  const edm::TriggerNames &trigNames = e.triggerNames(*hltresults);
193  unsigned int numTriggers = trigNames.size();
194  for (unsigned int hltIndex = 0; hltIndex < numTriggers; ++hltIndex) {
195  if (trigNames.triggerName(hltIndex).find(triggerPath_) != std::string::npos && hltresults->wasrun(hltIndex) &&
196  hltresults->accept(hltIndex))
197  hasFired = true;
198  if (trigNames.triggerName(hltIndex).find(triggerPathAuxiliaryForMuEle_) != std::string::npos &&
199  hltresults->wasrun(hltIndex) && hltresults->accept(hltIndex))
200  hasFiredAuxiliaryForMuEleLeg = true;
201  if (trigNames.triggerName(hltIndex).find(triggerPathAuxiliaryForHadronic_) != std::string::npos &&
202  hltresults->wasrun(hltIndex) && hltresults->accept(hltIndex))
203  hasFiredAuxiliaryForHadronicLeg = true;
204  }
205 
206  if (hasFiredAuxiliaryForMuEleLeg || hasFiredAuxiliaryForHadronicLeg) {
207  // Matching the muon
208  int indexOfMatchedMuEle[2] = {-1};
209  int matchedCounter = 0;
210  int offlineCounter = 0;
211  for (reco::MuonCollection::const_iterator muon = MuonCollection->begin();
212  (muon != MuonCollection->end() && matchedCounter < 1);
213  ++muon) {
214  for (size_t off_i = 0; off_i < ptMuon.size(); ++off_i) {
215  if (sqrt((muon->phi() - phiMuon[off_i]) * (muon->phi() - phiMuon[off_i]) +
216  (muon->eta() - etaMuon[off_i]) * (muon->eta() - etaMuon[off_i])) < 0.5) {
217  indexOfMatchedMuEle[matchedCounter] = offlineCounter;
218  matchedCounter++;
219  break;
220  }
221  }
222  offlineCounter++;
223  }
224 
225  for (reco::GsfElectronCollection::const_iterator electron = ElectronCollection->begin();
226  (electron != ElectronCollection->end() && matchedCounter < 2);
227  ++electron) {
228  for (size_t off_i = 0; off_i < ptElectron.size(); ++off_i) {
229  if (sqrt((electron->phi() - phiElectron[off_i]) * (electron->phi() - phiElectron[off_i]) +
230  (electron->eta() - etaElectron[off_i]) * (electron->eta() - etaElectron[off_i])) < 0.5) {
231  indexOfMatchedMuEle[matchedCounter] = offlineCounter;
232  matchedCounter++;
233  break;
234  }
235  }
236  offlineCounter++;
237  }
238 
239  float caloHT = 0.0;
240  float pfHT = 0.0;
241  for (reco::PFJetCollection::const_iterator i_pfjet = pfJetCollection->begin(); i_pfjet != pfJetCollection->end();
242  ++i_pfjet) {
243  if (i_pfjet->pt() < ptThrJet_)
244  continue;
245  if (fabs(i_pfjet->eta()) > etaThrJet_)
246  continue;
247  pfHT += i_pfjet->pt();
248  }
249  for (reco::CaloJetCollection::const_iterator i_calojet = caloJetCollection->begin();
250  i_calojet != caloJetCollection->end();
251  ++i_calojet) {
252  if (i_calojet->pt() < ptThrJet_)
253  continue;
254  if (fabs(i_calojet->eta()) > etaThrJet_)
255  continue;
256  caloHT += i_calojet->pt();
257  }
258 
259  if (hasFiredAuxiliaryForMuEleLeg && !MuonCollection->empty() && !ElectronCollection->empty()) {
260  if (hasFired && indexOfMatchedMuEle[1] >= 0 && indexOfMatchedMuEle[0] >= 0) { // check that ele is there too
261  h_EleTurnOn_num->Fill(ElectronCollection->at(indexOfMatchedMuEle[1]).pt());
262  h_MuTurnOn_num->Fill(MuonCollection->at(indexOfMatchedMuEle[0]).pt());
263  }
264  h_MuTurnOn_den->Fill(MuonCollection->at(0).pt());
265  h_EleTurnOn_den->Fill(ElectronCollection->at(0).pt());
266  }
267 
268  if (hasFiredAuxiliaryForHadronicLeg) {
269  if (hasFired) {
270  h_pfHTTurnOn_num->Fill(pfHT);
271  }
272  h_pfHTTurnOn_den->Fill(pfHT);
273  }
274  }
275 }
bool wasrun() const
Was at least one path run?
edm::EDGetTokenT< reco::MuonCollection > theMuonCollection_
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > PtEtaPhiMLorentzVectorD
Lorentz vector with cartesian internal representation.
Definition: LorentzVector.h:10
int id() const
getters
Definition: TriggerObject.h:51
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:146
float phi() const
Definition: TriggerObject.h:54
bool accept() const
Has at least one path accepted the event?
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:118
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:132
Strings::size_type size() const
Definition: TriggerNames.cc:31
float eta() const
Definition: TriggerObject.h:53
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollection_
edm::EDGetTokenT< edm::TriggerResults > triggerResults_
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
void Fill(long long x)
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:21
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:101
T sqrt(T t)
Definition: SSEVec.h:19
edm::EDGetTokenT< reco::CaloJetCollection > theCaloJetCollection_
bool isValid() const
Definition: HandleBase.h:70
std::vector< Electron > ElectronCollection
collectin of Electron objects
Definition: ElectronFwd.h:9
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
static const char *const trigNames[]
Definition: EcalDumpRaw.cc:57
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:22
std::vector< size_type > Keys
void SUSY_HLT_MuEle_Hadronic::bookHistograms ( DQMStore::IBooker ibooker_,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 64 of file SUSY_HLT_MuEle_Hadronic.cc.

References bookHistos().

64  {
65  edm::LogInfo("SUSY_HLT_MuEle_Hadronic") << "SUSY_HLT_MuEle_Hadronic::bookHistograms" << std::endl;
66  // book at beginRun
67  bookHistos(ibooker_);
68 }
void bookHistos(DQMStore::IBooker &)
void SUSY_HLT_MuEle_Hadronic::bookHistos ( DQMStore::IBooker ibooker_)
private

Definition at line 281 of file SUSY_HLT_MuEle_Hadronic.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), DEFINE_FWK_MODULE, h_EleTurnOn_den, h_EleTurnOn_num, h_MuTurnOn_den, h_MuTurnOn_num, h_pfHTTurnOn_den, h_pfHTTurnOn_num, h_triggerEleEta, h_triggerElePhi, h_triggerElePt, h_triggerMuEleMass, h_triggerMuEta, h_triggerMuPhi, h_triggerMuPt, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and triggerPath_.

Referenced by bookHistograms().

281  {
282  ibooker_.cd();
283  ibooker_.setCurrentFolder("HLT/SUSYBSM/" + triggerPath_);
284 
285  // offline quantities
286 
287  // online quantities
288  h_triggerMuPt = ibooker_.book1D("triggerMuPt", "Trigger Muon Pt; GeV", 50, 0.0, 500.0);
289  h_triggerMuEta = ibooker_.book1D("triggerMuEta", "Trigger Muon Eta", 20, -3.0, 3.0);
290  h_triggerMuPhi = ibooker_.book1D("triggerMuPhi", "Trigger Muon Phi", 20, -3.5, 3.5);
291 
292  h_triggerElePt = ibooker_.book1D("triggerElePt", "Trigger Electron Pt; GeV", 50, 0.0, 500.0);
293  h_triggerEleEta = ibooker_.book1D("triggerEleEta", "Trigger Electron Eta", 20, -3.0, 3.0);
294  h_triggerElePhi = ibooker_.book1D("triggerElePhi", "Trigger Electron Phi", 20, -3.5, 3.5);
295 
296  h_triggerMuEleMass = ibooker_.book1D("triggerMuEleMass", "Trigger MuEle Mass", 202, -2, 200);
297 
298  // num and den hists to be divided in harvesting step to make turn on curves
299  h_pfHTTurnOn_num = ibooker_.book1D("pfHTTurnOn_num", "PF HT Turn On Numerator", 30, 0.0, 1500.0);
300  h_pfHTTurnOn_den = ibooker_.book1D("pfHTTurnOn_den", "PF HT Turn On Denominator", 30, 0.0, 1500.0);
301  h_MuTurnOn_num = ibooker_.book1D("MuTurnOn_num", "Muon Turn On Numerator", 30, 0.0, 150);
302  h_MuTurnOn_den = ibooker_.book1D("MuTurnOn_den", "Muon Turn On Denominator", 30, 0.0, 150.0);
303  h_EleTurnOn_num = ibooker_.book1D("EleTurnOn_num", "Electron Turn On Numerator", 30, 0.0, 150);
304  h_EleTurnOn_den = ibooker_.book1D("EleTurnOn_den", "Electron Turn On Denominator", 30, 0.0, 150.0);
305 
306  ibooker_.cd();
307 }
void SUSY_HLT_MuEle_Hadronic::dqmBeginRun ( edm::Run const &  run,
edm::EventSetup const &  e 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 34 of file SUSY_HLT_MuEle_Hadronic.cc.

References fHltConfig, spr::find(), HLTProcess_, HLTConfigProvider::init(), dqmiolumiharvest::j, LogDebug, HLTConfigProvider::triggerNames(), and triggerPath_.

34  {
35  bool changed;
36 
37  if (!fHltConfig.init(run, e, HLTProcess_, changed)) {
38  edm::LogError("SUSY_HLT_MuEle_Hadronic") << "Initialization of HLTConfigProvider failed!!";
39  return;
40  }
41 
42  bool pathFound = false;
43  const std::vector<std::string> allTrigNames = fHltConfig.triggerNames();
44  for (size_t j = 0; j < allTrigNames.size(); ++j) {
45  if (allTrigNames[j].find(triggerPath_) != std::string::npos) {
46  pathFound = true;
47  }
48  }
49 
50  if (!pathFound) {
51  LogDebug("SUSY_HLT_MuEle_Hadronic") << "Path not found"
52  << "\n";
53  return;
54  }
55  // std::vector<std::string> filtertags = fHltConfig.moduleLabels( triggerPath_
56  // ); triggerFilter_ =
57  // edm::InputTag(filtertags[filtertags.size()-1],"",fHltConfig.processName());
58  // triggerFilter_ = edm::InputTag("hltPFMET120Mu5L3PreFiltered", "",
59  // fHltConfig.processName());
60 
61  edm::LogInfo("SUSY_HLT_MuEle_Hadronic") << "SUSY_HLT_MuEle_Hadronic::beginRun" << std::endl;
62 }
#define LogDebug(id)
const std::vector< std::string > & triggerNames() const
names of trigger paths
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
void SUSY_HLT_MuEle_Hadronic::dqmEndRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 277 of file SUSY_HLT_MuEle_Hadronic.cc.

277  {
278  edm::LogInfo("SUSY_HLT_MuEle_Hadronic") << "SUSY_HLT_MuEle_Hadronic::endRun" << std::endl;
279 }

Member Data Documentation

double SUSY_HLT_MuEle_Hadronic::etaThrJet_
private

Definition at line 65 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

HLTConfigProvider SUSY_HLT_MuEle_Hadronic::fHltConfig
private

Definition at line 57 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by dqmBeginRun().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_EleTurnOn_den
private

Definition at line 80 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_EleTurnOn_num
private

Definition at line 79 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_MuTurnOn_den
private

Definition at line 78 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_MuTurnOn_num
private

Definition at line 77 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_pfHTTurnOn_den
private

Definition at line 76 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_pfHTTurnOn_num
private

Definition at line 75 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerEleEta
private

Definition at line 72 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerElePhi
private

Definition at line 73 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerElePt
private

Definition at line 71 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerMuEleMass
private

Definition at line 74 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerMuEta
private

Definition at line 69 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerMuPhi
private

Definition at line 70 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

MonitorElement* SUSY_HLT_MuEle_Hadronic::h_triggerMuPt
private

Definition at line 68 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and bookHistos().

std::string SUSY_HLT_MuEle_Hadronic::HLTProcess_
private

Definition at line 59 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by dqmBeginRun(), and SUSY_HLT_MuEle_Hadronic().

double SUSY_HLT_MuEle_Hadronic::ptThrJet_
private

Definition at line 64 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::EDGetTokenT<reco::CaloJetCollection> SUSY_HLT_MuEle_Hadronic::theCaloJetCollection_
private

Definition at line 53 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::EDGetTokenT<reco::GsfElectronCollection> SUSY_HLT_MuEle_Hadronic::theElectronCollection_
private

Definition at line 51 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::EDGetTokenT<reco::MuonCollection> SUSY_HLT_MuEle_Hadronic::theMuonCollection_
private

Definition at line 50 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::EDGetTokenT<reco::PFJetCollection> SUSY_HLT_MuEle_Hadronic::thePfJetCollection_
private

Definition at line 52 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::EDGetTokenT<trigger::TriggerEvent> SUSY_HLT_MuEle_Hadronic::theTrigSummary_
private

Definition at line 55 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

edm::InputTag SUSY_HLT_MuEle_Hadronic::triggerFilter_
private

Definition at line 63 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

std::string SUSY_HLT_MuEle_Hadronic::triggerPath_
private
std::string SUSY_HLT_MuEle_Hadronic::triggerPathAuxiliaryForHadronic_
private

Definition at line 62 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

std::string SUSY_HLT_MuEle_Hadronic::triggerPathAuxiliaryForMuEle_
private

Definition at line 61 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().

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

Definition at line 54 of file SUSY_HLT_MuEle_Hadronic.h.

Referenced by analyze(), and SUSY_HLT_MuEle_Hadronic().