CMS 3D CMS Logo

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

#include <MuonRecoOneHLT.h>

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

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 MuonRecoOneHLT (const edm::ParameterSet &)
 Constructor. More...
 
 ~MuonRecoOneHLT () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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 () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

GenericTriggerEventFlag_DoubleMuonEventFlag
 
GenericTriggerEventFlag_SingleMuonEventFlag
 
int chi2Bin
 
float chi2Max
 
float chi2Min
 
std::vector< MonitorElement * > chi2OvDFGlbTrack
 
MonitorElementchi2OvDFStaTrack
 
MonitorElementchi2OvDFTight
 
MonitorElementchi2OvDFTrack
 
std::vector< std::string > doublemuonExpr_
 
int etaBin
 
std::vector< MonitorElement * > etaGlbTrack
 
float etaMax
 
float etaMin
 
MonitorElementetaStaTrack
 
MonitorElementetaTight
 
MonitorElementetaTrack
 
std::string metname
 
MonitorElementmuReco
 
edm::ParameterSet parameters
 
int phiBin
 
std::vector< MonitorElement * > phiGlbTrack
 
float phiMax
 
float phiMin
 
MonitorElementphiStaTrack
 
MonitorElementphiTight
 
MonitorElementphiTrack
 
int ptBin
 
std::vector< MonitorElement * > ptGlbTrack
 
float ptMax
 
float ptMin
 
MonitorElementptStaTrack
 
MonitorElementptTight
 
MonitorElementptTrack
 
std::vector< std::string > singlemuonExpr_
 
edm::EDGetTokenT< reco::BeamSpottheBeamSpotLabel_
 
edm::EDGetTokenT< reco::MuonCollectiontheMuonCollectionLabel_
 
MuonServiceProxytheService
 
edm::EDGetTokenT< edm::TriggerResultstheTriggerResultsLabel_
 
edm::EDGetTokenT< reco::VertexCollectiontheVertexLabel_
 

Additional Inherited Members

- 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 Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 47 of file MuonRecoOneHLT.h.

Constructor & Destructor Documentation

MuonRecoOneHLT::MuonRecoOneHLT ( const edm::ParameterSet pSet)

Constructor.

Definition at line 13 of file MuonRecoOneHLT.cc.

References CSCSegmentAlgorithmDF_cfi::chi2Max, muonBadTrackFilter_cfi::chi2Min, conversionPostprocessing_cfi::etaBin, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, edm::ParameterSet::getParameter(), MuonServiceProxy_cff::MuonServiceProxy, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, electronConversionRejectionValidator::ptBin, AlignmentTrackSelector_cfi::ptMax, and ALCARECOTkAlBeamHalo_cff::ptMin.

13  { //, MuonServiceProxy *theService) :MuonAnalyzerBase(theService) {
14  parameters = pSet;
15 
16  // the services
17  theService = new MuonServiceProxy(parameters.getParameter<ParameterSet>("ServiceParameters"));
18 
19 
20  ParameterSet muonparms = parameters.getParameter<edm::ParameterSet>("SingleMuonTrigger");
21  ParameterSet dimuonparms = parameters.getParameter<edm::ParameterSet>("DoubleMuonTrigger");
23  _DoubleMuonEventFlag = new GenericTriggerEventFlag( dimuonparms, consumesCollector(), *this );
24 
25  // Trigger Expresions in case de connection to the DB fails
26  singlemuonExpr_ = muonparms.getParameter<std::vector<std::string> >("hltPaths");
27  doublemuonExpr_ = dimuonparms.getParameter<std::vector<std::string> >("hltPaths");
28 
29  theMuonCollectionLabel_ = consumes<reco::MuonCollection>(parameters.getParameter<edm::InputTag>("MuonCollection"));
30  theVertexLabel_ = consumes<reco::VertexCollection>(parameters.getParameter<edm::InputTag>("VertexLabel"));
31  theBeamSpotLabel_ = mayConsume<reco::BeamSpot>(parameters.getParameter<edm::InputTag>("BeamSpotLabel"));
32  theTriggerResultsLabel_ = consumes<TriggerResults>(parameters.getParameter<InputTag>("TriggerResultsLabel"));
33 
34  // Parameters
35  etaBin = parameters.getParameter<int>("etaBin");
36  etaMin = parameters.getParameter<double>("etaMin");
37  etaMax = parameters.getParameter<double>("etaMax");
38  ptBin = parameters.getParameter<int>("ptBin");
39  ptMin = parameters.getParameter<double>("ptMin");
40  ptMax = parameters.getParameter<double>("ptMax");
41  chi2Bin = parameters.getParameter<int>("chi2Bin");
42  chi2Min = parameters.getParameter<double>("chi2Min");
43  chi2Max = parameters.getParameter<double>("chi2Max");
44  phiBin = parameters.getParameter<int>("phiBin");
45  phiMin = parameters.getParameter<double>("phiMin");
46  phiMax = parameters.getParameter<double>("phiMax");
47 }
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::TriggerResults > theTriggerResultsLabel_
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotLabel_
GenericTriggerEventFlag * _DoubleMuonEventFlag
edm::EDGetTokenT< reco::VertexCollection > theVertexLabel_
GenericTriggerEventFlag * _SingleMuonEventFlag
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
std::vector< std::string > doublemuonExpr_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< std::string > singlemuonExpr_
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
MuonServiceProxy * theService
MuonRecoOneHLT::~MuonRecoOneHLT ( )
override

Destructor.

Definition at line 48 of file MuonRecoOneHLT.cc.

48  {
49  delete theService;
50  delete _SingleMuonEventFlag;
51  delete _DoubleMuonEventFlag;
52 }
GenericTriggerEventFlag * _DoubleMuonEventFlag
GenericTriggerEventFlag * _SingleMuonEventFlag
MuonServiceProxy * theService

Member Function Documentation

void MuonRecoOneHLT::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 124 of file MuonRecoOneHLT.cc.

References edm::HLTGlobalStatus::accept(), reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), gather_cfg::cout, relativeConstraints::error, edm::Event::getByToken(), mps_fire::i, muon::isTightMuon(), edm::HandleBase::isValid(), LogTrace, metname, nano_cff::muons, reco::BeamSpot::position(), position, reco::BeamSpot::sigmaZ(), edm::TriggerNames::size(), susybsm::HSCParticleType::standAloneMuon, HiIsolationCommonParameters_cff::track, edm::TriggerNames::triggerName(), edm::Event::triggerNames(), triggerResults, and badGlobalMuonTaggersAOD_cff::vtx.

124  {
125  theService->update(iSetup);
126 
127  // =================================================================================
128  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):
129  reco::Vertex::Point posVtx;
130  reco::Vertex::Error errVtx;
131  unsigned int theIndexOfThePrimaryVertex = 999.;
132 
134  iEvent.getByToken(theVertexLabel_, vertex);
135  if (vertex.isValid()){
136  for (unsigned int ind=0; ind<vertex->size(); ++ind) {
137  if ( (*vertex)[ind].isValid() && !((*vertex)[ind].isFake()) ) {
138  theIndexOfThePrimaryVertex = ind;
139  break;
140  }
141  }
142  }
143 
144  if (theIndexOfThePrimaryVertex<100) {
145  posVtx = ((*vertex)[theIndexOfThePrimaryVertex]).position();
146  errVtx = ((*vertex)[theIndexOfThePrimaryVertex]).error();
147  }
148  else {
149  LogInfo("RecoMuonValidator") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
150 
151  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
152  iEvent.getByToken(theBeamSpotLabel_,recoBeamSpotHandle);
153  const reco::BeamSpot& bs = *recoBeamSpotHandle;
154 
155  posVtx = bs.position();
156  errVtx(0,0) = bs.BeamWidthX();
157  errVtx(1,1) = bs.BeamWidthY();
158  errVtx(2,2) = bs.sigmaZ();
159  }
160 
161  const reco::Vertex vtx(posVtx,errVtx);
162 
163 
164  // ==========================================================
165  // READ DATA:
167  iEvent.getByToken(theMuonCollectionLabel_,muons);
168 
170  iEvent.getByToken(theTriggerResultsLabel_, triggerResults);
171 
172  // check if muon collection is valid
173  if(!muons.isValid()) return;
174 
175  // Pick the leading lepton.
176  std::map<float,const reco::Muon*> muonMap;
177  for (reco::MuonCollection::const_iterator recoMu = muons->begin(); recoMu!=muons->end(); ++recoMu){
178  muonMap[recoMu->pt()] = &*recoMu;
179  }
180  std::vector<const reco::Muon*> LeadingMuon;
181  for( std::map<float,const reco::Muon*>::reverse_iterator rit=muonMap.rbegin(); rit!=muonMap.rend(); ++rit){
182  LeadingMuon.push_back( (*rit).second );
183  }
184 
185  // Pick Trigger information.
186  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
187  const unsigned int nTrig(triggerNames.size());
188  bool _trig_SingleMu = false;
189  bool _trig_DoubleMu = false;
190  for (unsigned int i=0;i<nTrig;++i){
191  if (triggerNames.triggerName(i).find(singlemuonExpr_[0].substr(0,singlemuonExpr_[0].rfind("_v")+2))!=std::string::npos && triggerResults->accept(i))
192  _trig_SingleMu = true;
193  if (triggerNames.triggerName(i).find(doublemuonExpr_[0].substr(0,doublemuonExpr_[0].rfind("_v")+2))!=std::string::npos && triggerResults->accept(i))
194  _trig_DoubleMu = true;
195  }
196 #ifdef DEBUG
197  cout << "[MuonRecoOneHLT] Trigger Fired ? "<< (_trig_SingleMu || _trig_DoubleMu) << endl;
198 #endif
199 
200  if (!_trig_SingleMu && !_trig_DoubleMu) return;
201  if (LeadingMuon.empty()) return;
202  // if (_MuonEventFlag->on() && !(_MuonEventFlag->accept(iEvent,iSetup))) return;
203 
204  // Check if Muon is Global
205  if((*LeadingMuon[0]).isGlobalMuon()) {
206  LogTrace(metname)<<"[MuonRecoOneHLT] The mu is global - filling the histos";
207  if((*LeadingMuon[0]).isTrackerMuon() && (*LeadingMuon[0]).isStandAloneMuon()) muReco->Fill(1);
208  if(!((*LeadingMuon[0]).isTrackerMuon()) && (*LeadingMuon[0]).isStandAloneMuon()) muReco->Fill(2);
209  if(!(*LeadingMuon[0]).isStandAloneMuon())
210  LogTrace(metname)<<"[MuonRecoOneHLT] ERROR: the mu is global but not standalone!";
211 
212  // get the track combinig the information from both the Tracker and the Spectrometer
213  reco::TrackRef recoCombinedGlbTrack = (*LeadingMuon[0]).combinedMuon();
214  // get the track using only the tracker data
215  reco::TrackRef recoTkGlbTrack = (*LeadingMuon[0]).track();
216  // get the track using only the mu spectrometer data
217  reco::TrackRef recoStaGlbTrack = (*LeadingMuon[0]).standAloneMuon();
218 
219  etaGlbTrack[0]->Fill(recoCombinedGlbTrack->eta());
220  etaGlbTrack[1]->Fill(recoTkGlbTrack->eta());
221  etaGlbTrack[2]->Fill(recoStaGlbTrack->eta());
222 
223  phiGlbTrack[0]->Fill(recoCombinedGlbTrack->phi());
224  phiGlbTrack[1]->Fill(recoTkGlbTrack->phi());
225  phiGlbTrack[2]->Fill(recoStaGlbTrack->phi());
226 
227  chi2OvDFGlbTrack[0]->Fill(recoCombinedGlbTrack->normalizedChi2());
228  chi2OvDFGlbTrack[1]->Fill(recoTkGlbTrack->normalizedChi2());
229  chi2OvDFGlbTrack[2]->Fill(recoStaGlbTrack->normalizedChi2());
230 
231  ptGlbTrack[0]->Fill(recoCombinedGlbTrack->pt());
232  ptGlbTrack[1]->Fill(recoTkGlbTrack->pt());
233  ptGlbTrack[2]->Fill(recoStaGlbTrack->pt());
234  }
235  // Check if Muon is Tight
236  if (muon::isTightMuon((*LeadingMuon[0]), vtx) ) {
237 
238  LogTrace(metname)<<"[MuonRecoOneHLT] The mu is tracker only - filling the histos";
239 
240  reco::TrackRef recoCombinedGlbTrack = (*LeadingMuon[0]).combinedMuon();
241 
242  etaTight->Fill(recoCombinedGlbTrack->eta());
243  phiTight->Fill(recoCombinedGlbTrack->phi());
244  chi2OvDFTight->Fill(recoCombinedGlbTrack->normalizedChi2());
245  ptTight->Fill(recoCombinedGlbTrack->pt());
246  }
247 
248  // Check if Muon is Tracker but NOT Global
249  if((*LeadingMuon[0]).isTrackerMuon() && !((*LeadingMuon[0]).isGlobalMuon())) {
250  LogTrace(metname)<<"[MuonRecoOneHLT] The mu is tracker only - filling the histos";
251  if((*LeadingMuon[0]).isStandAloneMuon()) muReco->Fill(3);
252  if(!((*LeadingMuon[0]).isStandAloneMuon())) muReco->Fill(4);
253 
254  // get the track using only the tracker data
255  reco::TrackRef recoTrack = (*LeadingMuon[0]).track();
256 
257  etaTrack->Fill(recoTrack->eta());
258  phiTrack->Fill(recoTrack->phi());
259  chi2OvDFTrack->Fill(recoTrack->normalizedChi2());
260  ptTrack->Fill(recoTrack->pt());
261  }
262 
263  // Check if Muon is STA but NOT Global
264  if((*LeadingMuon[0]).isStandAloneMuon() && !((*LeadingMuon[0]).isGlobalMuon())) {
265  LogTrace(metname)<<"[MuonRecoOneHLT] The mu is STA only - filling the histos";
266  if(!((*LeadingMuon[0]).isTrackerMuon())) muReco->Fill(5);
267 
268  // get the track using only the mu spectrometer data
269  reco::TrackRef recoStaTrack = (*LeadingMuon[0]).standAloneMuon();
270 
271  etaStaTrack->Fill(recoStaTrack->eta());
272  phiStaTrack->Fill(recoStaTrack->phi());
273  chi2OvDFStaTrack->Fill(recoStaTrack->normalizedChi2());
274  ptStaTrack->Fill(recoStaTrack->pt());
275  }
276  // Check if Muon is Only CaloMuon
277  if((*LeadingMuon[0]).isCaloMuon() && !((*LeadingMuon[0]).isGlobalMuon()) && !((*LeadingMuon[0]).isTrackerMuon()) && !((*LeadingMuon[0]).isStandAloneMuon()))
278  muReco->Fill(6);
279 }
edm::EDGetTokenT< edm::TriggerResults > theTriggerResultsLabel_
MonitorElement * phiTight
MonitorElement * ptTrack
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotLabel_
MonitorElement * chi2OvDFTrack
edm::EDGetTokenT< reco::VertexCollection > theVertexLabel_
bool accept() const
Has at least one path accepted the event?
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:43
Strings::size_type size() const
Definition: TriggerNames.cc:39
MonitorElement * etaTight
MonitorElement * etaStaTrack
std::string metname
std::vector< std::string > doublemuonExpr_
void Fill(long long x)
MonitorElement * chi2OvDFStaTrack
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
std::vector< MonitorElement * > phiGlbTrack
static std::string const triggerResults
Definition: EdmProvDump.cc:41
MonitorElement * ptStaTrack
std::vector< std::string > singlemuonExpr_
std::vector< MonitorElement * > ptGlbTrack
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * etaTrack
#define LogTrace(id)
std::vector< MonitorElement * > etaGlbTrack
MonitorElement * phiTrack
edm::EDGetTokenT< reco::MuonCollection > theMuonCollectionLabel_
MonitorElement * ptTight
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:27
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:88
MuonServiceProxy * theService
static int position[264][3]
Definition: ReadPGInfo.cc:509
MonitorElement * phiStaTrack
const Point & position() const
position
Definition: BeamSpot.h:62
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
MonitorElement * muReco
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:301
MonitorElement * chi2OvDFTight
std::vector< MonitorElement * > chi2OvDFGlbTrack
void MuonRecoOneHLT::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 53 of file MuonRecoOneHLT.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::cd(), CSCSegmentAlgorithmDF_cfi::chi2Max, muonBadTrackFilter_cfi::chi2Min, gather_cfg::cout, conversionPostprocessing_cfi::etaBin, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, electronConversionRejectionValidator::ptBin, AlignmentTrackSelector_cfi::ptMax, ALCARECOTkAlBeamHalo_cff::ptMin, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

55  {
56 #ifdef DEBUG
57  cout << "[MuonRecoOneHLT] beginRun " << endl;
58  cout << "[MuonRecoOneHLT] Is MuonEventFlag On? "<< _SingleMuonEventFlag->on() << endl;
59 #endif
60 
61  ibooker.cd();
62  ibooker.setCurrentFolder("Muons/MuonRecoOneHLT");
63 
64  muReco = ibooker.book1D("Muon_Reco", "Muon Reconstructed Tracks", 6, 1, 7);
65  muReco->setBinLabel(1,"glb+tk+sta");
66  muReco->setBinLabel(2,"glb+sta");
67  muReco->setBinLabel(3,"tk+sta");
68  muReco->setBinLabel(4,"tk");
69  muReco->setBinLabel(5,"sta");
70  muReco->setBinLabel(6,"calo");
71 
72  // monitoring of eta parameter
73  std::string histname = "GlbMuon_";
74  etaGlbTrack.push_back(ibooker.book1D(histname+"Glb_eta", "#eta_{GLB}", etaBin, etaMin, etaMax));
75  etaGlbTrack.push_back(ibooker.book1D(histname+"Tk_eta", "#eta_{TKfromGLB}", etaBin, etaMin, etaMax));
76  etaGlbTrack.push_back(ibooker.book1D(histname+"Sta_eta", "#eta_{STAfromGLB}", etaBin, etaMin, etaMax));
77  etaTight = ibooker.book1D("TightMuon_eta", "#eta_{GLB}", etaBin, etaMin, etaMax);
78  etaTrack = ibooker.book1D("TkMuon_eta", "#eta_{TK}", etaBin, etaMin, etaMax);
79  etaStaTrack = ibooker.book1D("StaMuon_eta", "#eta_{STA}", etaBin, etaMin, etaMax);
80 
81  // monitoring of phi paramater
82  phiGlbTrack.push_back(ibooker.book1D(histname+"Glb_phi", "#phi_{GLB}", phiBin, phiMin, phiMax));
83  phiGlbTrack[0]->setAxisTitle("rad");
84  phiGlbTrack.push_back(ibooker.book1D(histname+"Tk_phi", "#phi_{TKfromGLB}", phiBin, phiMin, phiMax));
85  phiGlbTrack[1]->setAxisTitle("rad");
86  phiGlbTrack.push_back(ibooker.book1D(histname+"Sta_phi", "#phi_{STAfromGLB}", phiBin, phiMin, phiMax));
87  phiGlbTrack[2]->setAxisTitle("rad");
88  phiTight = ibooker.book1D("TightMuon_phi", "#phi_{GLB}", phiBin, phiMin, phiMax);
89  phiTrack = ibooker.book1D("TkMuon_phi", "#phi_{TK}", phiBin, phiMin, phiMax);
90  phiTrack->setAxisTitle("rad");
91  phiStaTrack = ibooker.book1D("StaMuon_phi", "#phi_{STA}", phiBin, phiMin, phiMax);
92  phiStaTrack->setAxisTitle("rad");
93 
94  // monitoring of the chi2 parameter
95  chi2OvDFGlbTrack.push_back(ibooker.book1D(histname+"Glb_chi2OverDf", "#chi_{2}OverDF_{GLB}", chi2Bin, chi2Min, chi2Max));
96  chi2OvDFGlbTrack.push_back(ibooker.book1D(histname+"Tk_chi2OverDf", "#chi_{2}OverDF_{TKfromGLB}", phiBin, chi2Min, chi2Max));
97  chi2OvDFGlbTrack.push_back(ibooker.book1D(histname+"Sta_chi2OverDf", "#chi_{2}OverDF_{STAfromGLB}", chi2Bin, chi2Min, chi2Max));
98  chi2OvDFTight = ibooker.book1D("TightMuon_chi2OverDf", "#chi_{2}OverDF_{GLB}", chi2Bin, chi2Min, chi2Max);
99  chi2OvDFTrack = ibooker.book1D("TkMuon_chi2OverDf", "#chi_{2}OverDF_{TK}", chi2Bin, chi2Min, chi2Max);
100  chi2OvDFStaTrack = ibooker.book1D("StaMuon_chi2OverDf", "#chi_{2}OverDF_{STA}", chi2Bin, chi2Min, chi2Max);
101 
102  // monitoring of the transverse momentum
103  ptGlbTrack.push_back(ibooker.book1D(histname+"Glb_pt", "pt_{GLB}", ptBin, ptMin, ptMax));
104  ptGlbTrack[0]->setAxisTitle("GeV");
105  ptGlbTrack.push_back(ibooker.book1D(histname+"Tk_pt", "pt_{TKfromGLB}", ptBin, ptMin, ptMax));
106  ptGlbTrack[1]->setAxisTitle("GeV");
107  ptGlbTrack.push_back(ibooker.book1D(histname+"Sta_pt", "pt_{STAfromGLB}", ptBin, ptMin, ptMax));
108  ptGlbTrack[2]->setAxisTitle("GeV");
109  ptTight = ibooker.book1D("TightMuon_pt", "pt_{GLB}", ptBin, ptMin, ptMax);
110  ptTight->setAxisTitle("GeV");
111  ptTrack = ibooker.book1D("TkMuon_pt", "pt_{TK}", ptBin, ptMin, ptMax);
112  ptTrack->setAxisTitle("GeV");
113  ptStaTrack = ibooker.book1D("StaMuon_pt", "pt_{STA}", ptBin, ptMin, ptMax);
114  ptStaTrack->setAxisTitle("GeV");
115 
116  if ( _SingleMuonEventFlag->on() ) _SingleMuonEventFlag->initRun( iRun, iSetup );
117  if ( _DoubleMuonEventFlag->on() ) _DoubleMuonEventFlag->initRun( iRun, iSetup );
118 
123 }
MonitorElement * phiTight
MonitorElement * ptTrack
GenericTriggerEventFlag * _DoubleMuonEventFlag
MonitorElement * chi2OvDFTrack
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
GenericTriggerEventFlag * _SingleMuonEventFlag
MonitorElement * etaTight
MonitorElement * etaStaTrack
std::vector< std::string > expressionsFromDB(const std::string &key, const edm::EventSetup &setup)
Reads and returns logical expressions from DB.
MonitorElement * chi2OvDFStaTrack
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
std::vector< MonitorElement * > phiGlbTrack
MonitorElement * ptStaTrack
std::vector< std::string > singlemuonExpr_
std::vector< MonitorElement * > ptGlbTrack
MonitorElement * etaTrack
std::vector< MonitorElement * > etaGlbTrack
MonitorElement * phiTrack
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:279
MonitorElement * ptTight
MonitorElement * phiStaTrack
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
MonitorElement * muReco
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * chi2OvDFTight
std::vector< MonitorElement * > chi2OvDFGlbTrack

Member Data Documentation

GenericTriggerEventFlag* MuonRecoOneHLT::_DoubleMuonEventFlag
private

Definition at line 76 of file MuonRecoOneHLT.h.

GenericTriggerEventFlag* MuonRecoOneHLT::_SingleMuonEventFlag
private

Definition at line 75 of file MuonRecoOneHLT.h.

int MuonRecoOneHLT::chi2Bin
private

Definition at line 91 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::chi2Max
private

Definition at line 93 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::chi2Min
private

Definition at line 92 of file MuonRecoOneHLT.h.

std::vector<MonitorElement*> MuonRecoOneHLT::chi2OvDFGlbTrack
private

Definition at line 101 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::chi2OvDFStaTrack
private

Definition at line 118 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::chi2OvDFTight
private

Definition at line 107 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::chi2OvDFTrack
private

Definition at line 113 of file MuonRecoOneHLT.h.

std::vector<std::string> MuonRecoOneHLT::doublemuonExpr_
private

Definition at line 74 of file MuonRecoOneHLT.h.

int MuonRecoOneHLT::etaBin
private

Definition at line 83 of file MuonRecoOneHLT.h.

std::vector<MonitorElement*> MuonRecoOneHLT::etaGlbTrack
private

Definition at line 99 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::etaMax
private

Definition at line 85 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::etaMin
private

Definition at line 84 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::etaStaTrack
private

Definition at line 116 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::etaTight
private

Definition at line 105 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::etaTrack
private

Definition at line 111 of file MuonRecoOneHLT.h.

std::string MuonRecoOneHLT::metname
private

Definition at line 65 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::muReco
private

Definition at line 96 of file MuonRecoOneHLT.h.

edm::ParameterSet MuonRecoOneHLT::parameters
private
int MuonRecoOneHLT::phiBin
private

Definition at line 87 of file MuonRecoOneHLT.h.

std::vector<MonitorElement*> MuonRecoOneHLT::phiGlbTrack
private

Definition at line 100 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::phiMax
private

Definition at line 89 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::phiMin
private

Definition at line 88 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::phiStaTrack
private

Definition at line 117 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::phiTight
private

Definition at line 106 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::phiTrack
private

Definition at line 112 of file MuonRecoOneHLT.h.

int MuonRecoOneHLT::ptBin
private

Definition at line 79 of file MuonRecoOneHLT.h.

std::vector<MonitorElement*> MuonRecoOneHLT::ptGlbTrack
private

Definition at line 102 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::ptMax
private

Definition at line 81 of file MuonRecoOneHLT.h.

float MuonRecoOneHLT::ptMin
private

Definition at line 80 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::ptStaTrack
private

Definition at line 119 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::ptTight
private

Definition at line 108 of file MuonRecoOneHLT.h.

MonitorElement* MuonRecoOneHLT::ptTrack
private

Definition at line 114 of file MuonRecoOneHLT.h.

std::vector<std::string> MuonRecoOneHLT::singlemuonExpr_
private

Definition at line 73 of file MuonRecoOneHLT.h.

edm::EDGetTokenT<reco::BeamSpot> MuonRecoOneHLT::theBeamSpotLabel_
private

Definition at line 70 of file MuonRecoOneHLT.h.

edm::EDGetTokenT<reco::MuonCollection> MuonRecoOneHLT::theMuonCollectionLabel_
private

Definition at line 68 of file MuonRecoOneHLT.h.

MuonServiceProxy* MuonRecoOneHLT::theService
private

Definition at line 62 of file MuonRecoOneHLT.h.

edm::EDGetTokenT<edm::TriggerResults> MuonRecoOneHLT::theTriggerResultsLabel_
private

Definition at line 71 of file MuonRecoOneHLT.h.

edm::EDGetTokenT<reco::VertexCollection> MuonRecoOneHLT::theVertexLabel_
private

Definition at line 69 of file MuonRecoOneHLT.h.