CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
GEMEfficiencyAnalyzer Class Reference

#include <GEMEfficiencyAnalyzer.h>

Inheritance diagram for GEMEfficiencyAnalyzer:
GEMOfflineDQMBase DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  GEMLayerData
 

Public Member Functions

 GEMEfficiencyAnalyzer (const edm::ParameterSet &)
 
 ~GEMEfficiencyAnalyzer () override
 
- Public Member Functions inherited from GEMOfflineDQMBase
template<typename T >
bool checkRefs (const std::vector< T * > &)
 
void fillME (MEMap &me_map, const GEMDetId &key, const float x)
 
void fillME (MEMap &me_map, const GEMDetId &key, const float x, const float y)
 
 GEMOfflineDQMBase (const edm::ParameterSet &)
 
int getDetOccXBin (const GEMDetId &, const edm::ESHandle< GEMGeometry > &)
 
int getDetOccXBin (const int, const int, const int)
 
GEMDetId getKey (const GEMDetId &)
 
int getMaxVFAT (const int)
 
int getNumEtaPartitions (const GEMStation *)
 
GEMDetId getReStEtKey (const GEMDetId &)
 
GEMDetId getReStKey (const GEMDetId &)
 
GEMDetId getReStKey (const int, const int)
 
GEMDetId getReStLaChKey (const GEMDetId &)
 
GEMDetId getReStLaKey (const GEMDetId &)
 
int getVFATNumber (const int, const int, const int)
 
int getVFATNumberByStrip (const int, const int, const int)
 
void setDetLabelsEta (MonitorElement *, const GEMStation *)
 
void setDetLabelsVFAT (MonitorElement *, const GEMStation *)
 
- 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
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Protected Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

void bookEfficiencyChamber (DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
 
void bookEfficiencyEtaPartition (DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
 
void bookEfficiencyMomentum (DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
 
void bookMisc (DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
 
MonitorElementbookNumerator1D (DQMStore::IBooker &, MonitorElement *)
 
MonitorElementbookNumerator2D (DQMStore::IBooker &, MonitorElement *)
 
void bookResolution (DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
 
std::vector< GEMLayerDatabuildGEMLayers (const edm::ESHandle< GEMGeometry > &)
 
bool checkBounds (const GlobalPoint &, const Plane &)
 
std::pair< const GEMRecHit *, float > findClosetHit (const GlobalPoint &, const GEMRecHitCollection::range &, const GEMEtaPartition *)
 
const GEMEtaPartitionfindEtaPartition (const GlobalPoint &, const std::vector< const GEMChamber * > &)
 
std::pair< TrajectoryStateOnSurface, DetIdfindStartingState (const reco::TransientTrack &, const GEMLayerData &, const edm::ESHandle< GlobalTrackingGeometry > &)
 
std::pair< TrajectoryStateOnSurface, DetIdgetStartingState (const reco::TransientTrack &, const GEMLayerData &, const edm::ESHandle< GlobalTrackingGeometry > &)
 
const reco::TrackgetTrack (const reco::Muon &)
 
bool isInsideOut (const reco::Track &)
 
bool isME11 (const DetId &)
 
bool skipLayer (const reco::Track *, const GEMLayerData &)
 

Private Attributes

double eta_clamp_max_
 
double eta_low_
 
int eta_nbins_
 
double eta_up_
 
std::string folder_
 
bool is_cosmics_
 
const std::string kLogCategory_ = "GEMEfficiencyAnalyzer"
 
MonitorElementme_all_abs_residual_rphi_
 
MEMap me_chamber_
 
MEMap me_chamber_matched_
 
MEMap me_detector_
 
MEMap me_detector_matched_
 
MEMap me_muon_eta_
 
MEMap me_muon_eta_matched_
 
MEMap me_muon_phi_
 
MEMap me_muon_phi_matched_
 
MEMap me_muon_pt_
 
MEMap me_muon_pt_matched_
 
MEMap me_prop_chamber_
 
MonitorElementme_prop_phi_err_
 
MonitorElementme_prop_r_err_
 
MEMap me_pull_y_
 
MEMap me_residual_rphi_
 
MEMap me_residual_y_
 
MuonServiceProxymuon_service_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muon_token_
 
std::string name_
 
double prop_phi_error_cut_
 
double prop_r_error_cut_
 
std::vector< double > pt_bins_
 
double pt_clamp_max_
 
edm::EDGetTokenT< GEMRecHitCollectionrechit_token_
 
float residual_rphi_cut_
 
bool use_global_muon_
 
bool use_only_me11_
 
bool use_prop_phi_error_cut_
 
bool use_prop_r_error_cut_
 
bool use_skip_layer_
 

Additional Inherited Members

- Public Types inherited from GEMOfflineDQMBase
using MEMap = std::map< GEMDetId, dqm::impl::MonitorElement * >
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Attributes inherited from GEMOfflineDQMBase
std::string log_category_
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

DQM monitoring source for GEM efficiency and resolution based on https://github.com/CPLUOS/MuonPerformance/blob/master/MuonAnalyser/plugins/SliceTestEfficiencyAnalysis.cc

Author
Seungjin Yang seung.nosp@m.jin..nosp@m.yang@.nosp@m.cern.nosp@m..ch

DQM monitoring client for GEM efficiency and resolution based on Validation/MuonGEMHits/MuonGEMBaseHarvestor

Author
Seungjin Yang seung.nosp@m.jin..nosp@m.yang@.nosp@m.cern.nosp@m..ch

Definition at line 22 of file GEMEfficiencyAnalyzer.h.

Constructor & Destructor Documentation

◆ GEMEfficiencyAnalyzer()

GEMEfficiencyAnalyzer::GEMEfficiencyAnalyzer ( const edm::ParameterSet pset)
explicit

Definition at line 15 of file GEMEfficiencyAnalyzer.cc.

16  name_ = pset.getUntrackedParameter<std::string>("name");
17  folder_ = pset.getUntrackedParameter<std::string>("folder");
18 
19  rechit_token_ = consumes<GEMRecHitCollection>(pset.getParameter<edm::InputTag>("recHitTag"));
20  muon_token_ = consumes<edm::View<reco::Muon> >(pset.getParameter<edm::InputTag>("muonTag"));
21 
22  is_cosmics_ = pset.getUntrackedParameter<bool>("isCosmics");
23  use_global_muon_ = pset.getUntrackedParameter<bool>("useGlobalMuon");
24  use_skip_layer_ = pset.getParameter<bool>("useSkipLayer");
25  use_only_me11_ = pset.getParameter<bool>("useOnlyME11");
26  residual_rphi_cut_ = static_cast<float>(pset.getParameter<double>("residualRPhiCut"));
27  use_prop_r_error_cut_ = pset.getParameter<bool>("usePropRErrorCut");
28  prop_r_error_cut_ = pset.getParameter<double>("propRErrorCut");
29  use_prop_phi_error_cut_ = pset.getParameter<bool>("usePropPhiErrorCut");
30  prop_phi_error_cut_ = pset.getParameter<double>("propPhiErrorCut");
31 
32  pt_bins_ = pset.getUntrackedParameter<std::vector<double> >("ptBins");
33  eta_nbins_ = pset.getUntrackedParameter<int>("etaNbins");
34  eta_low_ = pset.getUntrackedParameter<double>("etaLow");
35  eta_up_ = pset.getUntrackedParameter<double>("etaUp");
36 
37  const edm::ParameterSet&& muon_service_parameter = pset.getParameter<edm::ParameterSet>("ServiceParameters");
38  muon_service_ = new MuonServiceProxy(muon_service_parameter, consumesCollector());
39 
41  pt_clamp_max_ = pt_bins_.back() - eps;
43 }

References gpuVertexFinder::eps, geometryDiff::epsilon, eta_clamp_max_, eta_low_, eta_nbins_, eta_up_, folder_, is_cosmics_, muon_service_, muon_token_, MuonServiceProxy_cff::MuonServiceProxy, name_, prop_phi_error_cut_, prop_r_error_cut_, muonDTDigis_cfi::pset, pt_bins_, pt_clamp_max_, rechit_token_, residual_rphi_cut_, AlCaHLTBitMon_QueryRunRegistry::string, use_global_muon_, use_only_me11_, use_prop_phi_error_cut_, use_prop_r_error_cut_, and use_skip_layer_.

◆ ~GEMEfficiencyAnalyzer()

GEMEfficiencyAnalyzer::~GEMEfficiencyAnalyzer ( )
override

Definition at line 45 of file GEMEfficiencyAnalyzer.cc.

45 {}

Member Function Documentation

◆ analyze()

void GEMEfficiencyAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 307 of file GEMEfficiencyAnalyzer.cc.

307  {
308  edm::Handle<GEMRecHitCollection> rechit_collection;
309  event.getByToken(rechit_token_, rechit_collection);
310  if (not rechit_collection.isValid()) {
311  edm::LogError(kLogCategory_) << "GEMRecHitCollection is invalid" << std::endl;
312  return;
313  }
314 
316  event.getByToken(muon_token_, muon_view);
317  if (not muon_view.isValid()) {
318  edm::LogError(kLogCategory_) << "View<Muon> is invalid" << std::endl;
319  return;
320  }
321 
324  if (not gem.isValid()) {
325  edm::LogError(kLogCategory_) << "GEMGeometry is invalid" << std::endl;
326  return;
327  }
328 
329  edm::ESHandle<GlobalTrackingGeometry> global_tracking_geometry;
330  setup.get<GlobalTrackingGeometryRecord>().get(global_tracking_geometry);
331  if (not global_tracking_geometry.isValid()) {
332  edm::LogError(kLogCategory_) << "GlobalTrackingGeometry is invalid" << std::endl;
333  return;
334  }
335 
336  edm::ESHandle<TransientTrackBuilder> transient_track_builder;
337  setup.get<TransientTrackRecord>().get("TransientTrackBuilder", transient_track_builder);
338  if (not transient_track_builder.isValid()) {
339  edm::LogError(kLogCategory_) << "TransientTrackRecord is invalid" << std::endl;
340  return;
341  }
342 
344  edm::ESHandle<Propagator>&& propagator = muon_service_->propagator("SteppingHelixPropagatorAny");
345  if (not propagator.isValid()) {
346  edm::LogError(kLogCategory_) << "Propagator is invalid" << std::endl;
347  return;
348  }
349 
350  if (rechit_collection->size() < 1) {
351  edm::LogInfo(kLogCategory_) << "empty rechit collection" << std::endl;
352  return;
353  }
354 
355  if (muon_view->empty()) {
356  edm::LogInfo(kLogCategory_) << "empty muon collection" << std::endl;
357  return;
358  }
359 
360  const std::vector<GEMLayerData>&& layer_vector = buildGEMLayers(gem);
361 
362  for (const reco::Muon& muon : *muon_view) {
363  const reco::Track* track = getTrack(muon);
364  if (track == nullptr) {
365  edm::LogError(kLogCategory_) << "failed to get a muon track" << std::endl;
366  continue;
367  }
368 
369  const reco::TransientTrack&& transient_track = transient_track_builder->build(track);
370  if (not transient_track.isValid()) {
371  edm::LogError(kLogCategory_) << "failed to build TransientTrack" << std::endl;
372  continue;
373  }
374 
375  for (const GEMLayerData& layer : layer_vector) {
376  if (use_skip_layer_ and skipLayer(track, layer)) {
377  edm::LogInfo(kLogCategory_) << "skip GEM Layer" << std::endl;
378  continue;
379  }
380 
381  const auto&& [start_state, start_id] = getStartingState(transient_track, layer, global_tracking_geometry);
382 
383  if (not start_state.isValid()) {
384  edm::LogInfo(kLogCategory_) << "failed to get a starting state" << std::endl;
385  continue;
386  }
387 
388  if (use_only_me11_ and (not isME11(start_id))) {
389  edm::LogInfo(kLogCategory_) << "skip a starting state because it is not ME11" << std::endl;
390  continue;
391  }
392 
393  // the trajectory state on the destination surface
394  const TrajectoryStateOnSurface&& dest_state = propagator->propagate(start_state, *(layer.surface));
395  if (not dest_state.isValid()) {
396  edm::LogInfo(kLogCategory_) << "failed to propagate a muon" << std::endl;
397  continue;
398  }
399 
400  const GlobalPoint&& dest_global_pos = dest_state.globalPosition();
401 
402  if (not checkBounds(dest_global_pos, (*layer.surface))) {
403  edm::LogInfo(kLogCategory_) << "failed to pass checkBounds" << std::endl;
404  continue;
405  }
406 
407  const GEMEtaPartition* eta_partition = findEtaPartition(dest_global_pos, layer.chambers);
408  if (eta_partition == nullptr) {
409  edm::LogInfo(kLogCategory_) << "failed to find an eta partition" << std::endl;
410  continue;
411  }
412 
413  const BoundPlane& surface = eta_partition->surface();
414 
415  const LocalPoint&& dest_local_pos = eta_partition->toLocal(dest_global_pos);
416  const LocalError&& dest_local_err = dest_state.localError().positionError();
417  const GlobalError& dest_global_err = ErrorFrameTransformer().transform(dest_local_err, surface);
418 
419  const double dest_global_r_err = std::sqrt(dest_global_err.rerr(dest_global_pos));
420  const double dest_global_phi_err = std::sqrt(dest_global_err.phierr(dest_global_pos));
421 
422  const GEMDetId&& gem_id = eta_partition->id();
423  const GEMDetId&& rs_key = getReStKey(gem_id);
424  const GEMDetId&& rsl_key = getReStLaKey(gem_id);
425  const GEMDetId&& rse_key = getReStEtKey(gem_id);
426 
427  const int chamber_bin = getDetOccXBin(gem_id, gem);
428  const int ieta = gem_id.roll();
429 
430  // FIXME clever way to clamp values?
431  me_prop_r_err_->Fill(std::min(dest_global_r_err, 19.999));
432  me_prop_phi_err_->Fill(std::min(dest_global_r_err, M_PI - 0.0001));
433  me_prop_chamber_[rs_key]->Fill(gem_id.chamber());
434 
435  if (use_prop_r_error_cut_ and (dest_global_r_err > prop_r_error_cut_)) {
436  edm::LogInfo(kLogCategory_) << "failed to pass a propagation global R error cut" << std::endl;
437  continue;
438  }
439 
440  if (use_prop_phi_error_cut_ and (dest_global_phi_err > prop_phi_error_cut_)) {
441  edm::LogInfo(kLogCategory_) << "failed to pass a propagation global phi error cut" << std::endl;
442  continue;
443  }
444 
445  const double muon_pt = std::min(muon.pt(), pt_clamp_max_);
446  const double muon_eta = std::clamp(std::fabs(muon.eta()), eta_low_, eta_clamp_max_);
447 
448  fillME(me_detector_, rs_key, chamber_bin, ieta);
449  fillME(me_muon_pt_, rs_key, muon_pt);
450  fillME(me_muon_eta_, rs_key, muon_eta);
451  fillME(me_muon_phi_, rs_key, muon.phi());
452  fillME(me_chamber_, rsl_key, gem_id.chamber());
453 
454  const auto&& [hit, residual_rphi] = findClosetHit(dest_global_pos, rechit_collection->get(gem_id), eta_partition);
455 
456  if (hit == nullptr) {
457  edm::LogInfo(kLogCategory_) << "failed to find a hit" << std::endl;
458  continue;
459  }
460 
461  me_all_abs_residual_rphi_->Fill(std::min(std::abs(residual_rphi), 19.999f));
462  if (std::abs(residual_rphi) > residual_rphi_cut_) {
463  edm::LogInfo(kLogCategory_) << "failed to pass the residual rphi cut" << std::endl;
464  continue;
465  }
466 
468  fillME(me_muon_pt_matched_, rs_key, muon_pt);
469  fillME(me_muon_eta_matched_, rs_key, muon_eta);
470  fillME(me_muon_phi_matched_, rs_key, muon.phi());
471  fillME(me_chamber_matched_, rsl_key, gem_id.chamber());
472 
473  const LocalPoint&& hit_local_pos = hit->localPosition();
474  const LocalError&& hit_local_err = hit->localPositionError();
475 
476  const float residual_y = dest_local_pos.y() - hit_local_pos.y();
477  const float pull_y = residual_y / std::sqrt(dest_local_err.yy() + hit_local_err.yy());
478 
479  fillME(me_residual_rphi_, rse_key, residual_rphi);
480  fillME(me_residual_y_, rse_key, residual_y);
481  fillME(me_pull_y_, rse_key, pull_y);
482  } // layer
483  } // Muon
484 }

References funct::abs(), TransientTrackBuilder::build(), buildGEMLayers(), GEMDetId::chamber(), chamber_bin(), checkBounds(), eta_clamp_max_, eta_low_, f, dqm::impl::MonitorElement::Fill(), GEMOfflineDQMBase::fillME(), findClosetHit(), findEtaPartition(), mixOne_premix_on_sim_cfi::gem, get, GEMOfflineDQMBase::getDetOccXBin(), GEMOfflineDQMBase::getReStEtKey(), GEMOfflineDQMBase::getReStKey(), GEMOfflineDQMBase::getReStLaKey(), getStartingState(), getTrack(), TrajectoryStateOnSurface::globalPosition(), GEMEtaPartition::id(), LEDCalibrationChannels::ieta, isME11(), edm::ESHandleBase::isValid(), TrajectoryStateOnSurface::isValid(), edm::HandleBase::isValid(), reco::TransientTrack::isValid(), kLogCategory_, phase1PixelTopology::layer, TrajectoryStateOnSurface::localError(), M_PI, me_all_abs_residual_rphi_, me_chamber_, me_chamber_matched_, me_detector_, me_detector_matched_, me_muon_eta_, me_muon_eta_matched_, me_muon_phi_, me_muon_phi_matched_, me_muon_pt_, me_muon_pt_matched_, me_prop_chamber_, me_prop_phi_err_, me_prop_r_err_, me_pull_y_, me_residual_rphi_, me_residual_y_, min(), muon_service_, muon_token_, GlobalErrorBase< T, ErrorWeightType >::phierr(), LocalTrajectoryError::positionError(), prop_phi_error_cut_, prop_r_error_cut_, TrackCandidateProducer_cfi::propagator, MuonServiceProxy::propagator(), pt_clamp_max_, rechit_token_, GlobalErrorBase< T, ErrorWeightType >::rerr(), residual_rphi_cut_, singleTopDQM_cfi::setup, skipLayer(), mathSSE::sqrt(), GeomDet::surface(), GeomDet::toLocal(), HLT_FULL_cff::track, ErrorFrameTransformer::transform(), MuonServiceProxy::update(), use_only_me11_, use_prop_phi_error_cut_, use_prop_r_error_cut_, use_skip_layer_, PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

◆ bookEfficiencyChamber()

void GEMEfficiencyAnalyzer::bookEfficiencyChamber ( DQMStore::IBooker ibooker,
const edm::ESHandle< GEMGeometry > &  gem 
)
private

Definition at line 170 of file GEMEfficiencyAnalyzer.cc.

170  {
171  // TODO Efficiency/Source
172  ibooker.setCurrentFolder(folder_ + "/Efficiency");
173 
174  for (const GEMStation* station : gem->stations()) {
175  const int region_id = station->region();
176  const int station_id = station->station();
177 
178  const std::vector<const GEMSuperChamber*>&& superchambers = station->superChambers();
179  if (not checkRefs(superchambers)) {
180  edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
181  return;
182  }
183 
184  const int num_chambers = superchambers.size();
185  for (const GEMChamber* chamber : superchambers[0]->chambers()) {
186  const int layer_id = chamber->id().layer();
187 
188  const TString&& name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id);
189  const TString&& title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id);
190  const GEMDetId&& key = getReStLaKey(chamber->id());
191 
192  me_chamber_[key] =
193  ibooker.book1D("chamber" + name_suffix, name_.c_str() + title_suffix, num_chambers, 0.5, num_chambers + 0.5);
194  me_chamber_[key]->setAxisTitle("Chamber");
195  me_chamber_[key]->getTH1F()->SetNdivisions(-num_chambers, "Y");
196  for (int binx = 1; binx <= num_chambers; binx++) {
197  me_chamber_[key]->setBinLabel(binx, std::to_string(binx));
198  }
199 
201  } // layer
202  } // station
203 }

References dqm::implementation::IBooker::book1D(), bookNumerator1D(), relativeConstraints::chamber, chambers, GEMOfflineDQMBase::checkRefs(), folder_, GEMOfflineDQMBase::getReStLaKey(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), crabWrapper::key, kLogCategory_, me_chamber_, me_chamber_matched_, name_, dqm::implementation::NavigatorBase::setCurrentFolder(), and relativeConstraints::station.

Referenced by bookHistograms().

◆ bookEfficiencyEtaPartition()

void GEMEfficiencyAnalyzer::bookEfficiencyEtaPartition ( DQMStore::IBooker ibooker,
const edm::ESHandle< GEMGeometry > &  gem 
)
private

Definition at line 205 of file GEMEfficiencyAnalyzer.cc.

206  {
207  // TODO Efficiency/Source
208  ibooker.setCurrentFolder(folder_ + "/Efficiency");
209 
210  for (const GEMStation* station : gem->stations()) {
211  const int region_id = station->region();
212  const int station_id = station->station();
213 
214  const GEMDetId&& key = getReStKey(region_id, station_id);
215  const TString&& name_suffix = GEMUtils::getSuffixName(region_id, station_id);
216  const TString&& title_suffix = GEMUtils::getSuffixTitle(region_id, station_id);
217 
218  const std::vector<const GEMSuperChamber*>&& superchambers = station->superChambers();
219  if (not checkRefs(superchambers)) {
220  edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
221  return;
222  }
223 
224  const int num_ch = superchambers.size() * superchambers.front()->nChambers();
225  const int num_etas = getNumEtaPartitions(station);
226 
227  me_detector_[key] = ibooker.book2D("detector" + name_suffix,
228  name_.c_str() + title_suffix,
229  num_ch,
230  0.5,
231  num_ch + 0.5,
232  num_etas,
233  0.5,
234  num_etas + 0.5);
237  } // station
238 }

References dqm::implementation::IBooker::book2D(), bookNumerator2D(), GEMOfflineDQMBase::checkRefs(), folder_, GEMOfflineDQMBase::getNumEtaPartitions(), GEMOfflineDQMBase::getReStKey(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), crabWrapper::key, kLogCategory_, me_detector_, me_detector_matched_, name_, dqm::implementation::NavigatorBase::setCurrentFolder(), GEMOfflineDQMBase::setDetLabelsEta(), and relativeConstraints::station.

Referenced by bookHistograms().

◆ bookEfficiencyMomentum()

void GEMEfficiencyAnalyzer::bookEfficiencyMomentum ( DQMStore::IBooker ibooker,
const edm::ESHandle< GEMGeometry > &  gem 
)
private

Definition at line 135 of file GEMEfficiencyAnalyzer.cc.

135  {
136  // TODO Efficiency/Source
137  ibooker.setCurrentFolder(folder_ + "/Efficiency");
138 
139  const TString pt_x_title = "Muon p_{T} [GeV]";
140  const int pt_nbinsx = pt_bins_.size() - 1;
141 
142  const std::string eta_x_title = "Muon |#eta|";
143  const std::string phi_x_title = "Muon #phi [rad]";
144 
145  for (const GEMStation* station : gem->stations()) {
146  const int region_id = station->region();
147  const int station_id = station->station();
148 
149  const GEMDetId&& key = getReStKey(region_id, station_id);
150  const TString&& name_suffix = GEMUtils::getSuffixName(region_id, station_id);
151  const TString&& title_suffix = GEMUtils::getSuffixTitle(region_id, station_id);
152 
153  const TString&& title = name_.c_str() + title_suffix;
154 
155  TH1F* h_muon_pt = new TH1F("muon_pt" + name_suffix, title, pt_nbinsx, &pt_bins_[0]);
156  h_muon_pt->SetXTitle(pt_x_title);
157  me_muon_pt_[key] = ibooker.book1D(h_muon_pt->GetName(), h_muon_pt);
159 
160  me_muon_eta_[key] = ibooker.book1D("muon_eta" + name_suffix, title, eta_nbins_, eta_low_, eta_up_);
161  me_muon_eta_[key]->setXTitle(eta_x_title);
163 
164  me_muon_phi_[key] = ibooker.book1D("muon_phi" + name_suffix, title, 108, -M_PI, M_PI);
165  me_muon_phi_[key]->setAxisTitle(phi_x_title);
167  } // station
168 }

References dqm::implementation::IBooker::book1D(), bookNumerator1D(), eta_low_, eta_nbins_, eta_up_, folder_, GEMOfflineDQMBase::getReStKey(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), crabWrapper::key, M_PI, me_muon_eta_, me_muon_eta_matched_, me_muon_phi_, me_muon_phi_matched_, me_muon_pt_, me_muon_pt_matched_, name_, pt_bins_, dqm::implementation::NavigatorBase::setCurrentFolder(), relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, and runGCPTkAlMap::title.

Referenced by bookHistograms().

◆ bookHistograms()

void GEMEfficiencyAnalyzer::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  isetup 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 106 of file GEMEfficiencyAnalyzer.cc.

108  {
110  isetup.get<MuonGeometryRecord>().get(gem);
111  if (not gem.isValid()) {
112  edm::LogError(kLogCategory_) << "GEMGeometry is invalid" << std::endl;
113  return;
114  }
115 
116  bookEfficiencyMomentum(ibooker, gem);
117  bookEfficiencyChamber(ibooker, gem);
119  bookResolution(ibooker, gem);
120  bookMisc(ibooker, gem);
121 }

References bookEfficiencyChamber(), bookEfficiencyEtaPartition(), bookEfficiencyMomentum(), bookMisc(), bookResolution(), mixOne_premix_on_sim_cfi::gem, edm::EventSetup::get(), get, and kLogCategory_.

◆ bookMisc()

void GEMEfficiencyAnalyzer::bookMisc ( DQMStore::IBooker ibooker,
const edm::ESHandle< GEMGeometry > &  gem 
)
private

Definition at line 280 of file GEMEfficiencyAnalyzer.cc.

280  {
281  ibooker.setCurrentFolder(folder_ + "/Misc");
282  me_prop_r_err_ = ibooker.book1D("prop_r_err", ";Propagation Global R Error [cm];Entries", 20, 0.0, 20.0);
283  me_prop_phi_err_ = ibooker.book1D("prop_phi_err", "Propagation Global Phi Error [rad];Entries", 20, 0.0, M_PI);
284  me_all_abs_residual_rphi_ = ibooker.book1D("all_abs_residual_rphi", ";Residual in R#phi [cm];Entries", 20, 0.0, 20.0);
285 
286  for (const GEMStation* station : gem->stations()) {
287  const int region_id = station->region();
288  const int station_id = station->station();
289 
290  const std::vector<const GEMSuperChamber*>&& superchambers = station->superChambers();
291  if (not checkRefs(superchambers)) {
292  edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
293  return;
294  }
295  // ignore layer ids
296  const int num_ch = superchambers.size();
297 
298  const GEMDetId&& key = getReStKey(region_id, station_id);
299  const TString&& name_suffix = GEMUtils::getSuffixName(region_id, station_id);
300  const TString&& title_suffix = GEMUtils::getSuffixTitle(region_id, station_id);
301  me_prop_chamber_[key] = ibooker.book1D("prop_chamber" + name_suffix, title_suffix, num_ch, 0.5, num_ch + 0.5);
302  me_prop_chamber_[key]->setAxisTitle("Destination Chamber Id", 1);
303  me_prop_chamber_[key]->setAxisTitle("Entries", 2);
304  } // station
305 }

References dqm::implementation::IBooker::book1D(), GEMOfflineDQMBase::checkRefs(), folder_, GEMOfflineDQMBase::getReStKey(), GEMUtils::getSuffixName(), GEMUtils::getSuffixTitle(), crabWrapper::key, kLogCategory_, M_PI, me_all_abs_residual_rphi_, me_prop_chamber_, me_prop_phi_err_, me_prop_r_err_, dqm::implementation::NavigatorBase::setCurrentFolder(), and relativeConstraints::station.

Referenced by bookHistograms().

◆ bookNumerator1D()

dqm::impl::MonitorElement * GEMEfficiencyAnalyzer::bookNumerator1D ( DQMStore::IBooker ,
MonitorElement  
)
private

Definition at line 123 of file GEMEfficiencyAnalyzer.cc.

123  {
124  const std::string name = me->getName() + "_matched";
125  TH1F* hist = dynamic_cast<TH1F*>(me->getTH1F()->Clone(name.c_str()));
126  return ibooker.book1D(name, hist);
127 }

References dqm::implementation::IBooker::book1D(), gpuVertexFinder::hist, hlt_dqm_clientPB-live_cfg::me, Skims_PA_cff::name, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by bookEfficiencyChamber(), and bookEfficiencyMomentum().

◆ bookNumerator2D()

dqm::impl::MonitorElement * GEMEfficiencyAnalyzer::bookNumerator2D ( DQMStore::IBooker ,
MonitorElement  
)
private

Definition at line 129 of file GEMEfficiencyAnalyzer.cc.

129  {
130  const std::string name = me->getName() + "_matched";
131  TH2F* hist = dynamic_cast<TH2F*>(me->getTH2F()->Clone(name.c_str()));
132  return ibooker.book2D(name, hist);
133 }

References dqm::implementation::IBooker::book2D(), gpuVertexFinder::hist, hlt_dqm_clientPB-live_cfg::me, Skims_PA_cff::name, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by bookEfficiencyEtaPartition().

◆ bookResolution()

void GEMEfficiencyAnalyzer::bookResolution ( DQMStore::IBooker ibooker,
const edm::ESHandle< GEMGeometry > &  gem 
)
private

Definition at line 240 of file GEMEfficiencyAnalyzer.cc.

240  {
241  ibooker.setCurrentFolder(folder_ + "/Resolution");
242  for (const GEMStation* station : gem->stations()) {
243  const int region_id = station->region();
244  const int station_id = station->station();
245 
246  const std::vector<const GEMSuperChamber*>&& superchambers = station->superChambers();
247  if (not checkRefs(superchambers)) {
248  edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
249  return;
250  }
251 
252  const std::vector<const GEMChamber*>& chambers = superchambers[0]->chambers();
253  if (not checkRefs(chambers)) {
254  edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMChamber ptrs" << std::endl;
255  return;
256  }
257 
258  for (const GEMEtaPartition* eta_partition : chambers[0]->etaPartitions()) {
259  const int ieta = eta_partition->id().roll();
260 
261  const GEMDetId&& key = getReStEtKey(eta_partition->id());
262  // TODO
263  const TString&& name_suffix = TString::Format("_GE%+.2d_R%d", region_id * (station_id * 10 + 1), ieta);
264  const TString&& title =
265  name_.c_str() + TString::Format(" : GE%+.2d Roll %d", region_id * (station_id * 10 + 1), ieta);
266 
268  ibooker.book1D("residual_rphi" + name_suffix, title, 50, -residual_rphi_cut_, residual_rphi_cut_);
269  me_residual_rphi_[key]->setAxisTitle("Residual in R#phi [cm]");
270 
271  me_residual_y_[key] = ibooker.book1D("residual_y" + name_suffix, title, 60, -12.0, 12.0);
272  me_residual_y_[key]->setAxisTitle("Residual in Local Y [cm]");
273 
274  me_pull_y_[key] = ibooker.book1D("pull_y" + name_suffix, title, 60, -3.0, 3.0);
275  me_pull_y_[key]->setAxisTitle("Pull in Local Y");
276  } // ieta
277  } // station
278 }

References dqm::implementation::IBooker::book1D(), chambers, GEMOfflineDQMBase::checkRefs(), folder_, GEMOfflineDQMBase::getReStEtKey(), LEDCalibrationChannels::ieta, crabWrapper::key, kLogCategory_, me_pull_y_, me_residual_rphi_, me_residual_y_, name_, residual_rphi_cut_, dqm::implementation::NavigatorBase::setCurrentFolder(), relativeConstraints::station, and runGCPTkAlMap::title.

Referenced by bookHistograms().

◆ buildGEMLayers()

std::vector< GEMEfficiencyAnalyzer::GEMLayerData > GEMEfficiencyAnalyzer::buildGEMLayers ( const edm::ESHandle< GEMGeometry > &  gem)
private

Definition at line 486 of file GEMEfficiencyAnalyzer.cc.

487  {
488  std::vector<GEMLayerData> layer_vector;
489 
490  for (const GEMStation* station : gem->stations()) {
491  const int region_id = station->region();
492  const int station_id = station->station();
493 
494  // layer_id - chambers
495  std::map<int, std::vector<const GEMChamber*> > chambers_per_layer; // chambers per layer
496  for (const GEMSuperChamber* super_chamber : station->superChambers()) {
497  for (const GEMChamber* chamber : super_chamber->chambers()) {
498  const int layer_id = chamber->id().layer();
499 
500  if (chambers_per_layer.find(layer_id) == chambers_per_layer.end())
501  chambers_per_layer.insert({layer_id, std::vector<const GEMChamber*>()});
502 
503  chambers_per_layer[layer_id].push_back(chamber);
504  } // GEMChamber
505  } // GEMSuperChamber
506 
507  for (auto [layer_id, chamber_vector] : chambers_per_layer) {
508  auto [rmin, rmax] = chamber_vector[0]->surface().rSpan();
509  auto [zmin, zmax] = chamber_vector[0]->surface().zSpan();
510  for (const GEMChamber* chamber : chamber_vector) {
511  // the span of a bound surface in the global coordinates
512  const auto [chamber_rmin, chamber_rmax] = chamber->surface().rSpan();
513  const auto [chamber_zmin, chamber_zmax] = chamber->surface().zSpan();
514 
515  rmin = std::min(rmin, chamber_rmin);
516  rmax = std::max(rmax, chamber_rmax);
517 
518  zmin = std::min(zmin, chamber_zmin);
519  zmax = std::max(zmax, chamber_zmax);
520  }
521 
522  // layer position and rotation
523  const float layer_z = chamber_vector[0]->position().z();
524  Surface::PositionType position(0.f, 0.f, layer_z);
526 
527  zmin -= layer_z;
528  zmax -= layer_z;
529 
530  // the bounds from min and max R and Z in the local coordinates.
531  SimpleDiskBounds* bounds = new SimpleDiskBounds(rmin, rmax, zmin, zmax);
533 
534  layer_vector.emplace_back(layer, chamber_vector, region_id, station_id, layer_id);
535 
536  } // layer
537  } // GEMStation
538 
539  return layer_vector;
540 }

References Disk::build(), relativeConstraints::chamber, f, phase1PixelTopology::layer, SiStripPI::max, min(), position, idealTransformation::rotation, relativeConstraints::station, SiStripMonitorCluster_cfi::zmax, and SiStripMonitorCluster_cfi::zmin.

Referenced by analyze().

◆ checkBounds()

bool GEMEfficiencyAnalyzer::checkBounds ( const GlobalPoint global_point,
const Plane plane 
)
private

Definition at line 655 of file GEMEfficiencyAnalyzer.cc.

655  {
656  const LocalPoint&& local_point = plane.toLocal(global_point);
657  const LocalPoint local_point_2d(local_point.x(), local_point.y(), 0.0f);
658  return plane.bounds().inside(local_point_2d);
659 }

References Surface::bounds(), Bounds::inside(), GloballyPositioned< T >::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by analyze(), and findEtaPartition().

◆ fillDescriptions()

void GEMEfficiencyAnalyzer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 47 of file GEMEfficiencyAnalyzer.cc.

47  {
48  // beam scenario
49  {
51  desc.addUntracked<std::string>("name", "GlobalMuon");
52  desc.addUntracked<std::string>("folder", "GEM/Efficiency/type0");
53  desc.add<edm::InputTag>("recHitTag", edm::InputTag("gemRecHits"));
54  desc.add<edm::InputTag>("muonTag", edm::InputTag("muons"));
55  desc.addUntracked<bool>("isCosmics", false);
56  desc.addUntracked<bool>("useGlobalMuon", true);
57  desc.add<bool>("useSkipLayer", false);
58  desc.add<bool>("useOnlyME11", false);
59  desc.add<double>("residualRPhiCut", 2.0); // TODO need to be tuned
60  desc.add<bool>("usePropRErrorCut", false);
61  desc.add<double>("propRErrorCut", 1.0);
62  desc.add<bool>("usePropPhiErrorCut", false);
63  desc.add<double>("propPhiErrorCut", 0.01);
64  desc.addUntracked<std::vector<double> >("ptBins", {20., 30., 40., 50., 60., 70., 80., 90., 100., 120.});
65  desc.addUntracked<int>("etaNbins", 9);
66  desc.addUntracked<double>("etaLow", 1.4);
67  desc.addUntracked<double>("etaUp", 2.3);
68  {
70  psd0.setAllowAnything();
71  desc.add<edm::ParameterSetDescription>("ServiceParameters", psd0);
72  }
73  descriptions.add("gemEfficiencyAnalyzerDefault", desc);
74  } // beam scenario
75 
76  // cosmic scenario
77  {
79  desc.addUntracked<std::string>("name", "GlobalMuon"); // FIXME
80  desc.addUntracked<std::string>("folder", "GEM/Efficiency/type0");
81  desc.add<edm::InputTag>("recHitTag", edm::InputTag("gemRecHits"));
82  desc.add<edm::InputTag>("muonTag", edm::InputTag("muons"));
83  desc.addUntracked<bool>("isCosmics", true);
84  desc.addUntracked<bool>("useGlobalMuon", false);
85  desc.add<bool>("useSkipLayer", false);
86  desc.add<bool>("useOnlyME11", true);
87  desc.add<double>("residualRPhiCut", 5.0); // TODO need to be tuned
88  desc.add<bool>("usePropRErrorCut", true);
89  desc.add<double>("propRErrorCut", 1.0);
90  desc.add<bool>("usePropPhiErrorCut", true);
91  desc.add<double>("propPhiErrorCut", 0.001);
92  desc.addUntracked<std::vector<double> >(
93  "ptBins", {0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 120., 140., 160., 180., 200., 220.});
94  desc.addUntracked<int>("etaNbins", 9);
95  desc.addUntracked<double>("etaLow", 1.4);
96  desc.addUntracked<double>("etaUp", 2.3);
97  {
99  psd0.setAllowAnything();
100  desc.add<edm::ParameterSetDescription>("ServiceParameters", psd0);
101  }
102  descriptions.add("gemEfficiencyAnalyzerCosmicsDefault", desc);
103  } // cosmics
104 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, edm::ParameterSetDescription::setAllowAnything(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ findClosetHit()

std::pair< const GEMRecHit *, float > GEMEfficiencyAnalyzer::findClosetHit ( const GlobalPoint dest_global_pos,
const GEMRecHitCollection::range range,
const GEMEtaPartition eta_partition 
)
private

Definition at line 679 of file GEMEfficiencyAnalyzer.cc.

681  {
682  const StripTopology& topology = eta_partition->specificTopology();
683  const LocalPoint&& dest_local_pos = eta_partition->toLocal(dest_global_pos);
684  const float dest_local_x = dest_local_pos.x();
685  const float dest_local_y = dest_local_pos.y();
686 
687  const GEMRecHit* closest_hit = nullptr;
688  float min_residual_rphi = 1e6;
689 
690  for (auto hit = range.first; hit != range.second; ++hit) {
691  const LocalPoint&& hit_local_pos = hit->localPosition();
692  const float hit_local_phi = topology.stripAngle(eta_partition->strip(hit_local_pos));
693 
694  const float residual_x = dest_local_x - hit_local_pos.x();
695  const float residual_y = dest_local_y - hit_local_pos.y();
696  const float residual_rphi = std::cos(hit_local_phi) * residual_x + std::sin(hit_local_phi) * residual_y;
697 
698  if (std::abs(residual_rphi) < std::abs(min_residual_rphi)) {
699  min_residual_rphi = residual_rphi;
700  closest_hit = &(*hit);
701  }
702  }
703 
704  return std::make_pair(closest_hit, min_residual_rphi);
705 }

References funct::abs(), funct::cos(), FastTimerService_cff::range, funct::sin(), GEMEtaPartition::specificTopology(), GEMEtaPartition::strip(), StripTopology::stripAngle(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by analyze().

◆ findEtaPartition()

const GEMEtaPartition * GEMEfficiencyAnalyzer::findEtaPartition ( const GlobalPoint global_point,
const std::vector< const GEMChamber * > &  chamber_vector 
)
private

Definition at line 661 of file GEMEfficiencyAnalyzer.cc.

662  {
663  const GEMEtaPartition* bound = nullptr;
664  for (const GEMChamber* chamber : chamber_vector) {
665  if (not checkBounds(global_point, chamber->surface()))
666  continue;
667 
668  for (const GEMEtaPartition* eta_partition : chamber->etaPartitions()) {
669  if (checkBounds(global_point, eta_partition->surface())) {
670  bound = eta_partition;
671  break;
672  }
673  } // GEMEtaPartition
674  } // GEMChamber
675 
676  return bound;
677 }

References relativeConstraints::chamber, and checkBounds().

Referenced by analyze().

◆ findStartingState()

std::pair< TrajectoryStateOnSurface, DetId > GEMEfficiencyAnalyzer::findStartingState ( const reco::TransientTrack transient_track,
const GEMLayerData layer,
const edm::ESHandle< GlobalTrackingGeometry > &  geometry 
)
private

Definition at line 592 of file GEMEfficiencyAnalyzer.cc.

595  {
596  GlobalPoint starting_point;
597  DetId starting_id;
598  float min_distance = 1e12;
599  bool found = false;
600 
601  // TODO optimize this loop because hits should be ordered..
602  for (auto rechit = transient_track.recHitsBegin(); rechit != transient_track.recHitsEnd(); rechit++) {
603  const DetId&& det_id = (*rechit)->geographicalId();
604 
605  if (MuonHitHelper::isGEM(det_id.rawId())) {
606  continue;
607  }
608 
609  const GeomDet* det = geometry->idToDet(det_id);
610  const GlobalPoint&& global_position = det->toGlobal((*rechit)->localPosition());
611  const float distance = std::abs(layer.surface->localZclamped(global_position));
612  if (distance < min_distance) {
613  found = true;
614  min_distance = distance;
615  starting_point = global_position;
616  starting_id = det_id;
617  }
618  }
619 
620  TrajectoryStateOnSurface starting_state;
621  if (found) {
622  starting_state = transient_track.stateOnSurface(starting_point);
623  }
624  return std::make_pair(starting_state, starting_id);
625 }

References funct::abs(), HLT_FULL_cff::distance, newFWLiteAna::found, MuonHitHelper::isGEM(), phase1PixelTopology::layer, DetId::rawId(), reco::TransientTrack::recHitsBegin(), reco::TransientTrack::recHitsEnd(), reco::TransientTrack::stateOnSurface(), and GeomDet::toGlobal().

Referenced by getStartingState().

◆ getStartingState()

std::pair< TrajectoryStateOnSurface, DetId > GEMEfficiencyAnalyzer::getStartingState ( const reco::TransientTrack transient_track,
const GEMLayerData layer,
const edm::ESHandle< GlobalTrackingGeometry > &  geometry 
)
private

Definition at line 561 of file GEMEfficiencyAnalyzer.cc.

564  {
565  TrajectoryStateOnSurface starting_state;
566  DetId starting_id;
567 
568  if (use_global_muon_) {
569  std::tie(starting_state, starting_id) = findStartingState(transient_track, layer, geometry);
570 
571  } else {
572  // if outer track
573  const reco::Track& track = transient_track.track();
574  const bool is_insideout = isInsideOut(track);
575 
576  const DetId inner_id{(is_insideout ? track.outerDetId() : track.innerDetId())};
577  if (MuonHitHelper::isGEM(inner_id.rawId())) {
578  std::tie(starting_state, starting_id) = findStartingState(transient_track, layer, geometry);
579 
580  } else {
581  starting_id = inner_id;
582  if (is_insideout)
583  starting_state = transient_track.outermostMeasurementState();
584  else
585  starting_state = transient_track.innermostMeasurementState();
586  }
587  }
588 
589  return std::make_pair(starting_state, starting_id);
590 }

References findStartingState(), reco::TransientTrack::innermostMeasurementState(), MuonHitHelper::isGEM(), isInsideOut(), phase1PixelTopology::layer, reco::TransientTrack::outermostMeasurementState(), reco::TransientTrack::track(), HLT_FULL_cff::track, and use_global_muon_.

Referenced by analyze().

◆ getTrack()

const reco::Track * GEMEfficiencyAnalyzer::getTrack ( const reco::Muon muon)
private

Definition at line 542 of file GEMEfficiencyAnalyzer.cc.

542  {
543  const reco::Track* track = nullptr;
544 
545  if (is_cosmics_) {
546  if (muon.outerTrack().isNonnull())
547  track = muon.outerTrack().get();
548 
549  } else {
550  // beams, i.e. pp or heavy ions
551  if (use_global_muon_ and muon.globalTrack().isNonnull())
552  track = muon.globalTrack().get();
553 
554  else if ((not use_global_muon_) and muon.outerTrack().isNonnull())
555  track = muon.outerTrack().get();
556  }
557 
558  return track;
559 }

References is_cosmics_, HLT_FULL_cff::track, and use_global_muon_.

Referenced by analyze().

◆ isInsideOut()

bool GEMEfficiencyAnalyzer::isInsideOut ( const reco::Track track)
inlineprivate

Definition at line 121 of file GEMEfficiencyAnalyzer.h.

121  {
122  return track.innerPosition().mag2() > track.outerPosition().mag2();
123 }

References HLT_FULL_cff::track.

Referenced by getStartingState(), and skipLayer().

◆ isME11()

bool GEMEfficiencyAnalyzer::isME11 ( const DetId det_id)
private

Definition at line 627 of file GEMEfficiencyAnalyzer.cc.

627  {
628  if (not MuonHitHelper::isCSC(det_id))
629  return false;
630  const CSCDetId csc_id{det_id};
631  return (csc_id.station() == 1) or ((csc_id.ring() == 1) or (csc_id.ring() == 4));
632 }

References MuonHitHelper::isCSC(), and or.

Referenced by analyze().

◆ skipLayer()

bool GEMEfficiencyAnalyzer::skipLayer ( const reco::Track track,
const GEMLayerData layer 
)
private

Definition at line 634 of file GEMEfficiencyAnalyzer.cc.

634  {
635  const bool is_same_region = track->eta() * layer.region > 0;
636 
637  bool skip = false;
638  if (is_cosmics_) {
639  float p2_in = track->innerMomentum().mag2();
640  float p2_out = track->outerMomentum().mag2();
641  if (isInsideOut(*track))
642  std::swap(p2_in, p2_out);
643  const bool is_outgoing = p2_in > p2_out;
644 
645  skip = (is_outgoing xor is_same_region);
646 
647  } else {
648  // beam scenario
649  skip = not is_same_region;
650  }
651 
652  return skip;
653 }

References is_cosmics_, isInsideOut(), phase1PixelTopology::layer, optionsL1T::skip, std::swap(), and HLT_FULL_cff::track.

Referenced by analyze().

Member Data Documentation

◆ eta_clamp_max_

double GEMEfficiencyAnalyzer::eta_clamp_max_
private

Definition at line 93 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ eta_low_

double GEMEfficiencyAnalyzer::eta_low_
private

Definition at line 87 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), bookEfficiencyMomentum(), and GEMEfficiencyAnalyzer().

◆ eta_nbins_

int GEMEfficiencyAnalyzer::eta_nbins_
private

Definition at line 86 of file GEMEfficiencyAnalyzer.h.

Referenced by bookEfficiencyMomentum(), and GEMEfficiencyAnalyzer().

◆ eta_up_

double GEMEfficiencyAnalyzer::eta_up_
private

Definition at line 88 of file GEMEfficiencyAnalyzer.h.

Referenced by bookEfficiencyMomentum(), and GEMEfficiencyAnalyzer().

◆ folder_

std::string GEMEfficiencyAnalyzer::folder_
private

◆ is_cosmics_

bool GEMEfficiencyAnalyzer::is_cosmics_
private

Definition at line 76 of file GEMEfficiencyAnalyzer.h.

Referenced by GEMEfficiencyAnalyzer(), getTrack(), and skipLayer().

◆ kLogCategory_

const std::string GEMEfficiencyAnalyzer::kLogCategory_ = "GEMEfficiencyAnalyzer"
private

◆ me_all_abs_residual_rphi_

MonitorElement* GEMEfficiencyAnalyzer::me_all_abs_residual_rphi_
private

Definition at line 114 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookMisc().

◆ me_chamber_

MEMap GEMEfficiencyAnalyzer::me_chamber_
private

Definition at line 103 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyChamber().

◆ me_chamber_matched_

MEMap GEMEfficiencyAnalyzer::me_chamber_matched_
private

Definition at line 104 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyChamber().

◆ me_detector_

MEMap GEMEfficiencyAnalyzer::me_detector_
private

Definition at line 105 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyEtaPartition().

◆ me_detector_matched_

MEMap GEMEfficiencyAnalyzer::me_detector_matched_
private

Definition at line 106 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyEtaPartition().

◆ me_muon_eta_

MEMap GEMEfficiencyAnalyzer::me_muon_eta_
private

Definition at line 99 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_muon_eta_matched_

MEMap GEMEfficiencyAnalyzer::me_muon_eta_matched_
private

Definition at line 100 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_muon_phi_

MEMap GEMEfficiencyAnalyzer::me_muon_phi_
private

Definition at line 101 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_muon_phi_matched_

MEMap GEMEfficiencyAnalyzer::me_muon_phi_matched_
private

Definition at line 102 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_muon_pt_

MEMap GEMEfficiencyAnalyzer::me_muon_pt_
private

Definition at line 97 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_muon_pt_matched_

MEMap GEMEfficiencyAnalyzer::me_muon_pt_matched_
private

Definition at line 98 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookEfficiencyMomentum().

◆ me_prop_chamber_

MEMap GEMEfficiencyAnalyzer::me_prop_chamber_
private

Definition at line 115 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookMisc().

◆ me_prop_phi_err_

MonitorElement* GEMEfficiencyAnalyzer::me_prop_phi_err_
private

Definition at line 113 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookMisc().

◆ me_prop_r_err_

MonitorElement* GEMEfficiencyAnalyzer::me_prop_r_err_
private

Definition at line 112 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookMisc().

◆ me_pull_y_

MEMap GEMEfficiencyAnalyzer::me_pull_y_
private

Definition at line 110 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_residual_rphi_

MEMap GEMEfficiencyAnalyzer::me_residual_rphi_
private

Definition at line 108 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_residual_y_

MEMap GEMEfficiencyAnalyzer::me_residual_y_
private

Definition at line 109 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ muon_service_

MuonServiceProxy* GEMEfficiencyAnalyzer::muon_service_
private

Definition at line 91 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ muon_token_

edm::EDGetTokenT<edm::View<reco::Muon> > GEMEfficiencyAnalyzer::muon_token_
private

Definition at line 75 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ name_

std::string GEMEfficiencyAnalyzer::name_
private

◆ prop_phi_error_cut_

double GEMEfficiencyAnalyzer::prop_phi_error_cut_
private

Definition at line 84 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ prop_r_error_cut_

double GEMEfficiencyAnalyzer::prop_r_error_cut_
private

Definition at line 82 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ pt_bins_

std::vector<double> GEMEfficiencyAnalyzer::pt_bins_
private

Definition at line 85 of file GEMEfficiencyAnalyzer.h.

Referenced by bookEfficiencyMomentum(), and GEMEfficiencyAnalyzer().

◆ pt_clamp_max_

double GEMEfficiencyAnalyzer::pt_clamp_max_
private

Definition at line 92 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ rechit_token_

edm::EDGetTokenT<GEMRecHitCollection> GEMEfficiencyAnalyzer::rechit_token_
private

Definition at line 74 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ residual_rphi_cut_

float GEMEfficiencyAnalyzer::residual_rphi_cut_
private

Definition at line 80 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), bookResolution(), and GEMEfficiencyAnalyzer().

◆ use_global_muon_

bool GEMEfficiencyAnalyzer::use_global_muon_
private

Definition at line 77 of file GEMEfficiencyAnalyzer.h.

Referenced by GEMEfficiencyAnalyzer(), getStartingState(), and getTrack().

◆ use_only_me11_

bool GEMEfficiencyAnalyzer::use_only_me11_
private

Definition at line 79 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ use_prop_phi_error_cut_

bool GEMEfficiencyAnalyzer::use_prop_phi_error_cut_
private

Definition at line 83 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ use_prop_r_error_cut_

bool GEMEfficiencyAnalyzer::use_prop_r_error_cut_
private

Definition at line 81 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ use_skip_layer_

bool GEMEfficiencyAnalyzer::use_skip_layer_
private

Definition at line 78 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

GlobalErrorBase::phierr
T phierr(const GlobalPoint &aPoint) const
Definition: GlobalErrorBase.h:149
TkRotation< float >
GEMEfficiencyAnalyzer::me_chamber_
MEMap me_chamber_
Definition: GEMEfficiencyAnalyzer.h:103
GEMEfficiencyAnalyzer::skipLayer
bool skipLayer(const reco::Track *, const GEMLayerData &)
Definition: GEMEfficiencyAnalyzer.cc:634
GEMEfficiencyAnalyzer::use_prop_r_error_cut_
bool use_prop_r_error_cut_
Definition: GEMEfficiencyAnalyzer.h:81
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
GEMOfflineDQMBase::getReStLaKey
GEMDetId getReStLaKey(const GEMDetId &)
Definition: GEMOfflineDQMBase.h:85
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
GeomDet
Definition: GeomDet.h:27
GEMSuperChamber
Definition: GEMSuperChamber.h:19
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
muon
Definition: MuonCocktails.h:17
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
GEMEfficiencyAnalyzer::me_prop_r_err_
MonitorElement * me_prop_r_err_
Definition: GEMEfficiencyAnalyzer.h:112
min
T min(T a, T b)
Definition: MathUtil.h:58
GEMEfficiencyAnalyzer::me_all_abs_residual_rphi_
MonitorElement * me_all_abs_residual_rphi_
Definition: GEMEfficiencyAnalyzer.h:114
GEMEfficiencyAnalyzer::getTrack
const reco::Track * getTrack(const reco::Muon &)
Definition: GEMEfficiencyAnalyzer.cc:542
relativeConstraints.station
station
Definition: relativeConstraints.py:67
GEMEfficiencyAnalyzer::bookNumerator2D
MonitorElement * bookNumerator2D(DQMStore::IBooker &, MonitorElement *)
Definition: GEMEfficiencyAnalyzer.cc:129
GEMEfficiencyAnalyzer::me_muon_pt_matched_
MEMap me_muon_pt_matched_
Definition: GEMEfficiencyAnalyzer.h:98
GEMEfficiencyAnalyzer::me_prop_phi_err_
MonitorElement * me_prop_phi_err_
Definition: GEMEfficiencyAnalyzer.h:113
gpuVertexFinder::eps
WorkSpace int float eps
Definition: gpuClusterTracksDBSCAN.h:18
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
Disk::build
static DiskPointer build(Args &&... args)
Definition: BoundDisk.h:38
geometry
Definition: geometry.py:1
GEMEtaPartition
Definition: GEMEtaPartition.h:12
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
GEMEfficiencyAnalyzer::me_residual_y_
MEMap me_residual_y_
Definition: GEMEfficiencyAnalyzer.h:109
GEMEfficiencyAnalyzer::bookMisc
void bookMisc(DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:280
MuonHitHelper::isGEM
static bool isGEM(unsigned int detId)
Definition: MuonHitHelper.cc:7
GEMEfficiencyAnalyzer::prop_phi_error_cut_
double prop_phi_error_cut_
Definition: GEMEfficiencyAnalyzer.h:84
GEMEfficiencyAnalyzer::bookResolution
void bookResolution(DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:240
GlobalTrackingGeometryRecord
Definition: GlobalTrackingGeometryRecord.h:17
MuonHitHelper::isCSC
static bool isCSC(unsigned int detId)
Definition: MuonHitHelper.cc:11
GEMOfflineDQMBase::GEMOfflineDQMBase
GEMOfflineDQMBase(const edm::ParameterSet &)
Definition: GEMOfflineDQMBase.cc:4
ReferenceCountingPointer< Disk >
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
reco::TransientTrack::recHitsBegin
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
Definition: TransientTrack.h:126
GEMEfficiencyAnalyzer::folder_
std::string folder_
Definition: GEMEfficiencyAnalyzer.h:73
GEMEtaPartition::specificTopology
const StripTopology & specificTopology() const
Definition: GEMEtaPartition.cc:16
GEMEfficiencyAnalyzer::use_global_muon_
bool use_global_muon_
Definition: GEMEfficiencyAnalyzer.h:77
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle< GEMRecHitCollection >
SiStripMonitorCluster_cfi.zmin
zmin
Definition: SiStripMonitorCluster_cfi.py:200
reco::TransientTrack::stateOnSurface
TrajectoryStateOnSurface stateOnSurface(const GlobalPoint &point) const
Definition: TransientTrack.h:94
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:14
reco::Muon
Definition: Muon.h:27
geometryDiff.epsilon
int epsilon
Definition: geometryDiff.py:26
GEMUtils::getSuffixName
TString getSuffixName(Int_t region_id)
Definition: GEMValidationUtils.cc:5
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
SimpleDiskBounds
Definition: SimpleDiskBounds.h:11
DetId
Definition: DetId.h:17
optionsL1T.skip
skip
Definition: optionsL1T.py:30
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
ErrorFrameTransformer
Definition: ErrorFrameTransformer.h:12
GEMOfflineDQMBase::setDetLabelsEta
void setDetLabelsEta(MonitorElement *, const GEMStation *)
Definition: GEMOfflineDQMBase.cc:49
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
std::swap
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Definition: DataFrameContainer.h:209
SiStripMonitorCluster_cfi.zmax
zmax
Definition: SiStripMonitorCluster_cfi.py:201
GEMOfflineDQMBase::getNumEtaPartitions
int getNumEtaPartitions(const GEMStation *)
Definition: GEMOfflineDQMBase.cc:76
GEMEfficiencyAnalyzer::me_muon_phi_matched_
MEMap me_muon_phi_matched_
Definition: GEMEfficiencyAnalyzer.h:102
Bounds::inside
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
reco::TransientTrack::recHitsEnd
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
Definition: TransientTrack.h:128
GEMEfficiencyAnalyzer::residual_rphi_cut_
float residual_rphi_cut_
Definition: GEMEfficiencyAnalyzer.h:80
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
GEMStation
Definition: GEMStation.h:19
TransientTrackRecord
Definition: TransientTrackRecord.h:11
reco::Track
Definition: Track.h:27
edm::ESHandle< GEMGeometry >
Point3DBase< float, GlobalTag >
GEMEfficiencyAnalyzer::rechit_token_
edm::EDGetTokenT< GEMRecHitCollection > rechit_token_
Definition: GEMEfficiencyAnalyzer.h:74
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
GEMEfficiencyAnalyzer::checkBounds
bool checkBounds(const GlobalPoint &, const Plane &)
Definition: GEMEfficiencyAnalyzer.cc:655
GEMEfficiencyAnalyzer::me_pull_y_
MEMap me_pull_y_
Definition: GEMEfficiencyAnalyzer.h:110
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
GEMEfficiencyAnalyzer::buildGEMLayers
std::vector< GEMLayerData > buildGEMLayers(const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:486
MuonServiceProxy::update
void update(const edm::EventSetup &setup, bool duringEvent=true)
update the services each event
Definition: MuonServiceProxy.cc:111
GlobalErrorBase::rerr
T rerr(const GlobalPoint &aPoint) const
Definition: GlobalErrorBase.h:138
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
edm::ParameterSet
Definition: ParameterSet.h:47
idealTransformation.rotation
dictionary rotation
Definition: idealTransformation.py:1
GEMEfficiencyAnalyzer::findClosetHit
std::pair< const GEMRecHit *, float > findClosetHit(const GlobalPoint &, const GEMRecHitCollection::range &, const GEMEtaPartition *)
Definition: GEMEfficiencyAnalyzer.cc:679
GEMOfflineDQMBase::getReStEtKey
GEMDetId getReStEtKey(const GEMDetId &)
Definition: GEMOfflineDQMBase.h:89
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GEMEfficiencyAnalyzer::bookEfficiencyChamber
void bookEfficiencyChamber(DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:170
GEMOfflineDQMBase::checkRefs
bool checkRefs(const std::vector< T * > &)
Definition: GEMOfflineDQMBase.h:70
LocalError
Definition: LocalError.h:12
gpuVertexFinder::hist
__shared__ Hist hist
Definition: gpuClusterTracksDBSCAN.h:48
GEMEfficiencyAnalyzer::name_
std::string name_
Definition: GEMEfficiencyAnalyzer.h:72
GEMDetId
Definition: GEMDetId.h:18
CSCDetId
Definition: CSCDetId.h:26
GEMEfficiencyAnalyzer::pt_clamp_max_
double pt_clamp_max_
Definition: GEMEfficiencyAnalyzer.h:92
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
GEMEfficiencyAnalyzer::pt_bins_
std::vector< double > pt_bins_
Definition: GEMEfficiencyAnalyzer.h:85
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
GEMEfficiencyAnalyzer::getStartingState
std::pair< TrajectoryStateOnSurface, DetId > getStartingState(const reco::TransientTrack &, const GEMLayerData &, const edm::ESHandle< GlobalTrackingGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:561
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
StripTopology::stripAngle
virtual float stripAngle(float strip) const =0
GEMEtaPartition::id
GEMDetId id() const
Definition: GEMEtaPartition.h:18
GEMEfficiencyAnalyzer::use_only_me11_
bool use_only_me11_
Definition: GEMEfficiencyAnalyzer.h:79
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
chambers
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
GlobalErrorBase< double, ErrorMatrixTag >
GEMEfficiencyAnalyzer::is_cosmics_
bool is_cosmics_
Definition: GEMEfficiencyAnalyzer.h:76
reco::TransientTrack::outermostMeasurementState
TrajectoryStateOnSurface outermostMeasurementState() const
Definition: TransientTrack.h:86
edm::ParameterSetDescription::setAllowAnything
void setAllowAnything()
allow any parameter label/value pairs
Definition: ParameterSetDescription.cc:37
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
GEMEfficiencyAnalyzer::eta_up_
double eta_up_
Definition: GEMEfficiencyAnalyzer.h:88
get
#define get
gem
Definition: AMC13Event.h:6
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
GEMEtaPartition::strip
float strip(const LocalPoint &lp) const
Definition: GEMEtaPartition.cc:37
GEMEfficiencyAnalyzer::muon_token_
edm::EDGetTokenT< edm::View< reco::Muon > > muon_token_
Definition: GEMEfficiencyAnalyzer.h:75
GEMChamber
Definition: GEMChamber.h:19
GEMEfficiencyAnalyzer::isME11
bool isME11(const DetId &)
Definition: GEMEfficiencyAnalyzer.cc:627
GEMEfficiencyAnalyzer::me_residual_rphi_
MEMap me_residual_rphi_
Definition: GEMEfficiencyAnalyzer.h:108
GEMEfficiencyAnalyzer::use_skip_layer_
bool use_skip_layer_
Definition: GEMEfficiencyAnalyzer.h:78
GEMEfficiencyAnalyzer::me_muon_eta_
MEMap me_muon_eta_
Definition: GEMEfficiencyAnalyzer.h:99
GEMEfficiencyAnalyzer::eta_low_
double eta_low_
Definition: GEMEfficiencyAnalyzer.h:87
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
reco::TransientTrack::isValid
bool isValid() const
Make the ReferenceCountingProxy method to check validity public.
Definition: TransientTrack.h:147
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
reco::TransientTrack
Definition: TransientTrack.h:19
reco::TransientTrack::track
const Track & track() const
Definition: TransientTrack.h:117
GEMOfflineDQMBase::getReStKey
GEMDetId getReStKey(const int, const int)
Definition: GEMOfflineDQMBase.h:78
GEMOfflineDQMBase::fillME
void fillME(MEMap &me_map, const GEMDetId &key, const float x)
Definition: GEMOfflineDQMBase.cc:92
GloballyPositioned::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Definition: GloballyPositioned.h:98
dqm::implementation::IBooker::book2D
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
GEMUtils::getSuffixTitle
TString getSuffixTitle(Int_t region_id)
Definition: GEMValidationUtils.cc:34
GEMEfficiencyAnalyzer::kLogCategory_
const std::string kLogCategory_
Definition: GEMEfficiencyAnalyzer.h:118
BoundPlane
GEMEfficiencyAnalyzer::findEtaPartition
const GEMEtaPartition * findEtaPartition(const GlobalPoint &, const std::vector< const GEMChamber * > &)
Definition: GEMEfficiencyAnalyzer.cc:661
chamber_bin
int chamber_bin(int station, int ring, int chamber)
Definition: L1TStage2EMTF.cc:468
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
GEMEfficiencyAnalyzer::bookEfficiencyEtaPartition
void bookEfficiencyEtaPartition(DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:205
GEMRecHit
Definition: GEMRecHit.h:14
TransientTrackBuilder::build
reco::TransientTrack build(const reco::Track *p) const
Definition: TransientTrackBuilder.cc:20
mixOne_premix_on_sim_cfi.gem
gem
Definition: mixOne_premix_on_sim_cfi.py:194
GEMEfficiencyAnalyzer::me_muon_pt_
MEMap me_muon_pt_
Definition: GEMEfficiencyAnalyzer.h:97
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GEMEfficiencyAnalyzer::me_chamber_matched_
MEMap me_chamber_matched_
Definition: GEMEfficiencyAnalyzer.h:104
GEMEfficiencyAnalyzer::muon_service_
MuonServiceProxy * muon_service_
Definition: GEMEfficiencyAnalyzer.h:91
GEMEfficiencyAnalyzer::use_prop_phi_error_cut_
bool use_prop_phi_error_cut_
Definition: GEMEfficiencyAnalyzer.h:83
GEMEfficiencyAnalyzer::me_detector_
MEMap me_detector_
Definition: GEMEfficiencyAnalyzer.h:105
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
ErrorFrameTransformer::transform
static GlobalError transform(const LocalError &le, const Surface &surf)
Definition: ErrorFrameTransformer.h:16
GEMEfficiencyAnalyzer::eta_clamp_max_
double eta_clamp_max_
Definition: GEMEfficiencyAnalyzer.h:93
GEMEfficiencyAnalyzer::eta_nbins_
int eta_nbins_
Definition: GEMEfficiencyAnalyzer.h:86
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
GEMEfficiencyAnalyzer::findStartingState
std::pair< TrajectoryStateOnSurface, DetId > findStartingState(const reco::TransientTrack &, const GEMLayerData &, const edm::ESHandle< GlobalTrackingGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:592
GEMEfficiencyAnalyzer::isInsideOut
bool isInsideOut(const reco::Track &)
Definition: GEMEfficiencyAnalyzer.h:121
HLT_FULL_cff.distance
distance
Definition: HLT_FULL_cff.py:7733
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
crabWrapper.key
key
Definition: crabWrapper.py:19
StripTopology
Definition: StripTopology.h:11
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
LocalError::yy
float yy() const
Definition: LocalError.h:24
edm::InputTag
Definition: InputTag.h:15
GEMEfficiencyAnalyzer::bookEfficiencyMomentum
void bookEfficiencyMomentum(DQMStore::IBooker &, const edm::ESHandle< GEMGeometry > &)
Definition: GEMEfficiencyAnalyzer.cc:135
GEMEfficiencyAnalyzer::me_detector_matched_
MEMap me_detector_matched_
Definition: GEMEfficiencyAnalyzer.h:106
GEMEfficiencyAnalyzer::bookNumerator1D
MonitorElement * bookNumerator1D(DQMStore::IBooker &, MonitorElement *)
Definition: GEMEfficiencyAnalyzer.cc:123
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
GEMEfficiencyAnalyzer::me_muon_phi_
MEMap me_muon_phi_
Definition: GEMEfficiencyAnalyzer.h:101
reco::TransientTrack::innermostMeasurementState
TrajectoryStateOnSurface innermostMeasurementState() const
Definition: TransientTrack.h:88
GEMEfficiencyAnalyzer::me_prop_chamber_
MEMap me_prop_chamber_
Definition: GEMEfficiencyAnalyzer.h:115
GEMEfficiencyAnalyzer::me_muon_eta_matched_
MEMap me_muon_eta_matched_
Definition: GEMEfficiencyAnalyzer.h:100
GEMEfficiencyAnalyzer::prop_r_error_cut_
double prop_r_error_cut_
Definition: GEMEfficiencyAnalyzer.h:82
GEMOfflineDQMBase::getDetOccXBin
int getDetOccXBin(const int, const int, const int)
Definition: GEMOfflineDQMBase.h:65