CMS 3D CMS Logo

List of all members | 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 >

Public Member Functions

 GEMEfficiencyAnalyzer (const edm::ParameterSet &)
 
 ~GEMEfficiencyAnalyzer () override
 
- Public Member Functions inherited from GEMOfflineDQMBase
template<typename T >
bool checkRefs (const std::vector< T * > &)
 
template<typename AnyKey >
TString convertKeyToStr (const AnyKey &key)
 
template<typename AnyKey >
void fillME (std::map< AnyKey, MonitorElement * > &, const AnyKey &, const float)
 
template<typename AnyKey >
void fillME (std::map< AnyKey, MonitorElement * > &, const AnyKey &, const float, const float y)
 
 GEMOfflineDQMBase (const edm::ParameterSet &)
 
int getDetOccXBin (const GEMDetId &, const edm::ESHandle< GEMGeometry > &)
 
int getDetOccXBin (const int, const int, const int)
 
int getMaxVFAT (const int)
 
int getNumEtaPartitions (const GEMStation *)
 
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
 

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 bookDetectorOccupancy (DQMStore::IBooker &, const GEMStation *, const MEMapKey1 &, const TString &, const TString &)
 
void bookOccupancy (DQMStore::IBooker &, const MEMapKey2 &, const TString &, const TString &)
 
void bookResolution (DQMStore::IBooker &, const MEMapKey3 &, const TString &, const TString &)
 
const GEMRecHitfindMatchedHit (const float, const GEMRecHitCollection::range &)
 

Private Attributes

double eta_low_
 
int eta_nbins_
 
double eta_up_
 
std::string folder_
 
TString matched_title_
 
MEMap1 me_detector_
 
MEMap1 me_detector_matched_
 
MEMap2 me_muon_eta_
 
MEMap2 me_muon_eta_matched_
 
MEMap2 me_muon_pt_
 
MEMap2 me_muon_pt_matched_
 
MEMap3 me_pull_x_
 
MEMap3 me_pull_y_
 
MEMap3 me_residual_phi_
 
MEMap3 me_residual_x_
 
MEMap3 me_residual_y_
 
MuonServiceProxymuon_service_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muon_token_
 
std::vector< double > pt_binning_
 
edm::EDGetTokenT< GEMRecHitCollectionrechit_token_
 
float residual_x_cut_
 
TString title_
 
bool use_global_muon_
 

Additional Inherited Members

- Public Types inherited from GEMOfflineDQMBase
typedef std::map< MEMapKey1, MonitorElement * > MEMap1
 
typedef std::map< MEMapKey2, MonitorElement * > MEMap2
 
typedef std::map< MEMapKey3, MonitorElement * > MEMap3
 
typedef std::tuple< int, int > MEMapKey1
 
typedef std::tuple< int, int, bool > MEMapKey2
 
typedef std::tuple< int, int, bool, int > MEMapKey3
 
- 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
 
- 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 &)
 
- 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

Definition at line 13 of file GEMEfficiencyAnalyzer.h.

Constructor & Destructor Documentation

◆ GEMEfficiencyAnalyzer()

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

Definition at line 8 of file GEMEfficiencyAnalyzer.cc.

9  rechit_token_ = consumes<GEMRecHitCollection>(pset.getParameter<edm::InputTag>("recHitTag"));
10  muon_token_ = consumes<edm::View<reco::Muon> >(pset.getParameter<edm::InputTag>("muonTag"));
11 
12  auto muon_service_parameter = pset.getParameter<edm::ParameterSet>("ServiceParameters");
13  muon_service_ = new MuonServiceProxy(muon_service_parameter, consumesCollector());
14 
15  use_global_muon_ = pset.getUntrackedParameter<bool>("useGlobalMuon");
16 
17  residual_x_cut_ = static_cast<float>(pset.getParameter<double>("residualXCut"));
18 
19  pt_binning_ = pset.getUntrackedParameter<std::vector<double> >("ptBinning");
20  eta_nbins_ = pset.getUntrackedParameter<int>("etaNbins");
21  eta_low_ = pset.getUntrackedParameter<double>("etaLow");
22  eta_up_ = pset.getUntrackedParameter<double>("etaUp");
23 
24  folder_ = pset.getUntrackedParameter<std::string>("folder");
25 
26  title_ = (use_global_muon_ ? "Global Muon" : "Standalone Muon");
27  matched_title_ = title_ + TString::Format(" (|x_{Muon} - x_{Hit}| < %.1f)", residual_x_cut_);
28 }

References eta_low_, eta_nbins_, eta_up_, folder_, matched_title_, muon_service_, muon_token_, MuonServiceProxy_cff::MuonServiceProxy, muonDTDigis_cfi::pset, pt_binning_, rechit_token_, residual_x_cut_, AlCaHLTBitMon_QueryRunRegistry::string, title_, and use_global_muon_.

◆ ~GEMEfficiencyAnalyzer()

GEMEfficiencyAnalyzer::~GEMEfficiencyAnalyzer ( )
override

Definition at line 30 of file GEMEfficiencyAnalyzer.cc.

30 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 146 of file GEMEfficiencyAnalyzer.cc.

146  {
147  edm::Handle<GEMRecHitCollection> rechit_collection;
148  event.getByToken(rechit_token_, rechit_collection);
149  if (not rechit_collection.isValid()) {
150  edm::LogError(log_category_) << "GEMRecHitCollection is invalid" << std::endl;
151  return;
152  }
153 
155  event.getByToken(muon_token_, muon_view);
156  if (not muon_view.isValid()) {
157  edm::LogError(log_category_) << "View<Muon> is invalid" << std::endl;
158  }
159 
162  if (not gem.isValid()) {
163  edm::LogError(log_category_) << "GEMGeometry is invalid" << std::endl;
164  return;
165  }
166 
167  edm::ESHandle<TransientTrackBuilder> transient_track_builder;
168  setup.get<TransientTrackRecord>().get("TransientTrackBuilder", transient_track_builder);
169  if (not transient_track_builder.isValid()) {
170  edm::LogError(log_category_) << "TransientTrackRecord is invalid" << std::endl;
171  return;
172  }
173 
175  edm::ESHandle<Propagator>&& propagator = muon_service_->propagator("SteppingHelixPropagatorAny");
176  if (not propagator.isValid()) {
177  edm::LogError(log_category_) << "Propagator is invalid" << std::endl;
178  return;
179  }
180 
181  for (const reco::Muon& muon : *muon_view) {
182  const reco::Track* track = nullptr;
183 
184  if (use_global_muon_ and muon.globalTrack().isNonnull()) {
185  track = muon.globalTrack().get();
186 
187  } else if ((not use_global_muon_) and muon.outerTrack().isNonnull()) {
188  track = muon.outerTrack().get();
189  }
190 
191  if (track == nullptr) {
192  edm::LogError(log_category_) << "failed to get muon track" << std::endl;
193  continue;
194  }
195 
196  const reco::TransientTrack&& transient_track = transient_track_builder->build(track);
197  if (not transient_track.isValid()) {
198  edm::LogInfo(log_category_) << "failed to build TransientTrack" << std::endl;
199  continue;
200  }
201 
202  for (const GEMEtaPartition* eta_partition : gem->etaPartitions()) {
203  // Skip propagation inn the opposite direction.
204  if (muon.eta() * eta_partition->id().region() < 0)
205  continue;
206 
207  const BoundPlane& bound_plane = eta_partition->surface();
208 
209  const TrajectoryStateOnSurface&& tsos =
210  propagator->propagate(transient_track.outermostMeasurementState(), bound_plane);
211  if (not tsos.isValid()) {
212  continue;
213  }
214 
215  const LocalPoint&& tsos_local_pos = tsos.localPosition();
216  const LocalPoint tsos_local_pos_2d(tsos_local_pos.x(), tsos_local_pos.y(), 0.0f);
217  if (not bound_plane.bounds().inside(tsos_local_pos_2d)) {
218  continue;
219  }
220 
221  const GEMDetId&& gem_id = eta_partition->id();
222 
223  bool is_odd = gem_id.station() == 1 ? (gem_id.chamber() % 2 == 1) : false;
224  const std::tuple<int, int> key1{gem_id.region(), gem_id.station()};
225  const std::tuple<int, int, bool> key2{gem_id.region(), gem_id.station(), is_odd};
226  const std::tuple<int, int, bool, int> key3{gem_id.region(), gem_id.station(), is_odd, gem_id.roll()};
227 
228  const int chamber_bin = getDetOccXBin(gem_id, gem);
229 
230  fillME(me_detector_, key1, chamber_bin, gem_id.roll());
231  fillME(me_muon_pt_, key2, muon.pt());
232  fillME(me_muon_eta_, key2, std::fabs(muon.eta()));
233 
234  const GEMRecHit* matched_hit = findMatchedHit(tsos_local_pos.x(), rechit_collection->get(gem_id));
235  if (matched_hit == nullptr) {
236  continue;
237  }
238 
239  fillME(me_detector_matched_, key1, chamber_bin, gem_id.roll());
240  fillME(me_muon_pt_matched_, key2, muon.pt());
241  fillME(me_muon_eta_matched_, key2, std::fabs(muon.eta()));
242 
243  const LocalPoint&& hit_local_pos = matched_hit->localPosition();
244  const GlobalPoint&& hit_global_pos = eta_partition->toGlobal(hit_local_pos);
245  const GlobalPoint&& tsos_global_pos = tsos.globalPosition();
246 
247  const float residual_x = tsos_local_pos.x() - hit_local_pos.x();
248  const float residual_y = tsos_local_pos.y() - hit_local_pos.y();
249  const float residual_phi = reco::deltaPhi(tsos_global_pos.barePhi(), hit_global_pos.barePhi());
250 
251  const LocalError&& tsos_err = tsos.localError().positionError();
252  const LocalError&& hit_err = matched_hit->localPositionError();
253 
254  const float pull_x = residual_x / std::sqrt(tsos_err.xx() + hit_err.xx());
255  const float pull_y = residual_y / std::sqrt(tsos_err.yy() + hit_err.yy());
256 
257  fillME(me_residual_x_, key3, residual_x);
258  fillME(me_residual_y_, key3, residual_y);
259  fillME(me_residual_phi_, key3, residual_phi);
260 
261  fillME(me_pull_x_, key3, pull_x);
262  fillME(me_pull_y_, key3, pull_y);
263  } // GEMChamber
264  } // Muon
265 }

References PV3DBase< T, PVType, FrameType >::barePhi(), TransientTrackBuilder::build(), GEMDetId::chamber(), chamber_bin(), reco::deltaPhi(), GEMOfflineDQMBase::fillME(), findMatchedHit(), mixOne_premix_on_sim_cfi::gem, get, GEMOfflineDQMBase::getDetOccXBin(), TrajectoryStateOnSurface::globalPosition(), edm::ESHandleBase::isValid(), TrajectoryStateOnSurface::isValid(), edm::HandleBase::isValid(), reco::TransientTrack::isValid(), TrajectoryStateOnSurface::localError(), GEMRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), GEMRecHit::localPositionError(), GEMOfflineDQMBase::log_category_, me_detector_, me_detector_matched_, me_muon_eta_, me_muon_eta_matched_, me_muon_pt_, me_muon_pt_matched_, me_pull_x_, me_pull_y_, me_residual_phi_, me_residual_x_, me_residual_y_, muon_service_, muon_token_, reco::TransientTrack::outermostMeasurementState(), LocalTrajectoryError::positionError(), TrackCandidateProducer_cfi::propagator, MuonServiceProxy::propagator(), rechit_token_, GEMDetId::region(), GEMDetId::roll(), singleTopDQM_cfi::setup, mathSSE::sqrt(), GEMDetId::station(), HLT_FULL_cff::track, MuonServiceProxy::update(), use_global_muon_, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

◆ bookDetectorOccupancy()

void GEMEfficiencyAnalyzer::bookDetectorOccupancy ( DQMStore::IBooker ibooker,
const GEMStation station,
const MEMapKey1 key,
const TString &  name_suffix,
const TString &  title_suffix 
)
private

Definition at line 87 of file GEMEfficiencyAnalyzer.cc.

91  {
92  ibooker.setCurrentFolder(folder_ + "/Efficiency");
93  BookingHelper helper(ibooker, name_suffix, title_suffix);
94 
95  const auto&& superchambers = station->superChambers();
96  if (not checkRefs(superchambers)) {
97  edm::LogError(log_category_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl;
98  return;
99  }
100 
101  // the number of GEMChambers per GEMStation
102  const int num_ch = superchambers.size() * superchambers.front()->nChambers();
103  // the number of eta partitions per GEMChamber
104  const int num_etas = getNumEtaPartitions(station);
105 
106  me_detector_[key] = helper.book2D("detector", title_, num_ch, 0.5, num_ch + 0.5, num_etas, 0.5, num_etas + 0.5);
107 
109  helper.book2D("detector_matched", matched_title_, num_ch, 0.5, num_ch + 0.5, num_etas, 0.5, num_etas + 0.5);
110 
113 }

References GEMOfflineDQMBase::checkRefs(), folder_, GEMOfflineDQMBase::getNumEtaPartitions(), crabWrapper::key, GEMOfflineDQMBase::log_category_, matched_title_, me_detector_, me_detector_matched_, dqm::implementation::NavigatorBase::setCurrentFolder(), GEMOfflineDQMBase::setDetLabelsEta(), relativeConstraints::station, and 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 32 of file GEMEfficiencyAnalyzer.cc.

34  {
36  isetup.get<MuonGeometryRecord>().get(gem);
37  if (not gem.isValid()) {
38  edm::LogError(log_category_) << "GEMGeometry is invalid" << std::endl;
39  return;
40  }
41 
42  for (const GEMRegion* region : gem->regions()) {
43  const int region_number = region->region();
44  const char* region_sign = region_number > 0 ? "+" : "-";
45 
46  for (const GEMStation* station : region->stations()) {
47  const int station_number = station->station();
48 
49  const MEMapKey1 key1{region_number, station_number};
50  const auto&& station_name_suffix = TString::Format("_ge%s%d1", region_sign, station_number);
51  const auto&& station_title_suffix = TString::Format(" : GE %s%d/1", region_sign, station_number);
52  bookDetectorOccupancy(ibooker, station, key1, station_name_suffix, station_title_suffix);
53 
54  const int num_etas = getNumEtaPartitions(station);
55 
56  if (station_number == 1) {
57  for (const bool is_odd : {true, false}) {
58  std::tuple<int, int, bool> key2{region_number, station_number, is_odd};
59  const TString&& parity_name_suffix = station_name_suffix + (is_odd ? "_odd" : "_even");
60  const TString&& parity_title_suffix =
61  station_title_suffix + (is_odd ? ", Odd Superchamber" : ", Even Superchamber");
62  bookOccupancy(ibooker, key2, parity_name_suffix, parity_title_suffix);
63 
64  for (int ieta = 1; ieta <= num_etas; ieta++) {
65  const TString&& ieta_name_suffix = parity_name_suffix + Form("_ieta%d", ieta);
66  const TString&& ieta_title_suffix = parity_title_suffix + Form(", i#eta = %d", ieta);
67  const MEMapKey3 key3{region_number, station_number, is_odd, ieta};
68  bookResolution(ibooker, key3, ieta_name_suffix, ieta_title_suffix);
69  } // ieta
70  } // is_odd
71 
72  } else {
73  std::tuple<int, int, bool> key2{region_number, station_number, false};
74  bookOccupancy(ibooker, key2, station_name_suffix, station_title_suffix);
75 
76  for (int ieta = 1; ieta <= num_etas; ieta++) {
77  const MEMapKey3 key3{region_number, station_number, false, ieta};
78  const TString&& ieta_name_suffix = station_name_suffix + Form("_ieta%d", ieta);
79  const TString&& ieta_title_suffix = station_title_suffix + Form(", i#eta = %d", ieta);
80  bookResolution(ibooker, key3, ieta_name_suffix, ieta_title_suffix);
81  } // ieta
82  }
83  } // station
84  } // region
85 }

References bookDetectorOccupancy(), bookOccupancy(), bookResolution(), mixOne_premix_on_sim_cfi::gem, edm::EventSetup::get(), get, GEMOfflineDQMBase::getNumEtaPartitions(), LEDCalibrationChannels::ieta, GEMOfflineDQMBase::log_category_, HLT_FULL_cff::region, and relativeConstraints::station.

◆ bookOccupancy()

void GEMEfficiencyAnalyzer::bookOccupancy ( DQMStore::IBooker ibooker,
const MEMapKey2 key,
const TString &  name_suffix,
const TString &  title_suffix 
)
private

Definition at line 115 of file GEMEfficiencyAnalyzer.cc.

118  {
119  ibooker.setCurrentFolder(folder_ + "/Efficiency");
120  BookingHelper helper(ibooker, name_suffix, title_suffix);
121 
122  me_muon_pt_[key] = helper.book1D("muon_pt", title_, pt_binning_, "Muon p_{T} [GeV]");
123  me_muon_eta_[key] = helper.book1D("muon_eta", title_, eta_nbins_, eta_low_, eta_up_, "Muon |#eta|");
124 
125  me_muon_pt_matched_[key] = helper.book1D("muon_pt_matched", matched_title_, pt_binning_, "Muon p_{T} [GeV]");
127  helper.book1D("muon_eta_matched", matched_title_, eta_nbins_, eta_low_, eta_up_, "Muon |#eta|");
128 }

References eta_low_, eta_nbins_, eta_up_, folder_, crabWrapper::key, matched_title_, me_muon_eta_, me_muon_eta_matched_, me_muon_pt_, me_muon_pt_matched_, pt_binning_, dqm::implementation::NavigatorBase::setCurrentFolder(), and title_.

Referenced by bookHistograms().

◆ bookResolution()

void GEMEfficiencyAnalyzer::bookResolution ( DQMStore::IBooker ibooker,
const MEMapKey3 key,
const TString &  name_suffix,
const TString &  title_suffix 
)
private

Definition at line 130 of file GEMEfficiencyAnalyzer.cc.

133  {
134  ibooker.setCurrentFolder(folder_ + "/Resolution");
135  BookingHelper helper(ibooker, name_suffix, title_suffix);
136 
137  // NOTE Residual & Pull
138  me_residual_x_[key] = helper.book1D("residual_x", title_, 50, -5.0, 5.0, "Residual in Local X [cm]");
139  me_residual_y_[key] = helper.book1D("residual_y", title_, 60, -12.0, 12.0, "Residual in Local Y [cm]");
140  me_residual_phi_[key] = helper.book1D("residual_phi", title_, 80, -0.008, 0.008, "Residual in Global #phi [rad]");
141 
142  me_pull_x_[key] = helper.book1D("pull_x", title_, 60, -3.0, 3.0, "Pull in Local X");
143  me_pull_y_[key] = helper.book1D("pull_y", title_, 60, -3.0, 3.0, "Pull in Local Y");
144 }

References folder_, crabWrapper::key, me_pull_x_, me_pull_y_, me_residual_phi_, me_residual_x_, me_residual_y_, dqm::implementation::NavigatorBase::setCurrentFolder(), and title_.

Referenced by bookHistograms().

◆ findMatchedHit()

const GEMRecHit * GEMEfficiencyAnalyzer::findMatchedHit ( const float  track_local_x,
const GEMRecHitCollection::range range 
)
private

Definition at line 267 of file GEMEfficiencyAnalyzer.cc.

268  {
269  float min_residual_x{residual_x_cut_};
270  const GEMRecHit* closest_hit = nullptr;
271 
272  for (auto hit = range.first; hit != range.second; ++hit) {
273  float residual_x = std::fabs(track_local_x - hit->localPosition().x());
274  if (residual_x <= min_residual_x) {
275  min_residual_x = residual_x;
276  closest_hit = &(*hit);
277  }
278  }
279 
280  return closest_hit;
281 }

References FastTimerService_cff::range, residual_x_cut_, and hit::x.

Referenced by analyze().

Member Data Documentation

◆ eta_low_

double GEMEfficiencyAnalyzer::eta_low_
private

Definition at line 40 of file GEMEfficiencyAnalyzer.h.

Referenced by bookOccupancy(), and GEMEfficiencyAnalyzer().

◆ eta_nbins_

int GEMEfficiencyAnalyzer::eta_nbins_
private

Definition at line 39 of file GEMEfficiencyAnalyzer.h.

Referenced by bookOccupancy(), and GEMEfficiencyAnalyzer().

◆ eta_up_

double GEMEfficiencyAnalyzer::eta_up_
private

Definition at line 41 of file GEMEfficiencyAnalyzer.h.

Referenced by bookOccupancy(), and GEMEfficiencyAnalyzer().

◆ folder_

std::string GEMEfficiencyAnalyzer::folder_
private

◆ matched_title_

TString GEMEfficiencyAnalyzer::matched_title_
private

◆ me_detector_

MEMap1 GEMEfficiencyAnalyzer::me_detector_
private

Definition at line 48 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookDetectorOccupancy().

◆ me_detector_matched_

MEMap1 GEMEfficiencyAnalyzer::me_detector_matched_
private

Definition at line 49 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookDetectorOccupancy().

◆ me_muon_eta_

MEMap2 GEMEfficiencyAnalyzer::me_muon_eta_
private

Definition at line 52 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookOccupancy().

◆ me_muon_eta_matched_

MEMap2 GEMEfficiencyAnalyzer::me_muon_eta_matched_
private

Definition at line 54 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookOccupancy().

◆ me_muon_pt_

MEMap2 GEMEfficiencyAnalyzer::me_muon_pt_
private

Definition at line 51 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookOccupancy().

◆ me_muon_pt_matched_

MEMap2 GEMEfficiencyAnalyzer::me_muon_pt_matched_
private

Definition at line 53 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookOccupancy().

◆ me_pull_x_

MEMap3 GEMEfficiencyAnalyzer::me_pull_x_
private

Definition at line 59 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_pull_y_

MEMap3 GEMEfficiencyAnalyzer::me_pull_y_
private

Definition at line 60 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_residual_phi_

MEMap3 GEMEfficiencyAnalyzer::me_residual_phi_
private

Definition at line 58 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_residual_x_

MEMap3 GEMEfficiencyAnalyzer::me_residual_x_
private

Definition at line 56 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ me_residual_y_

MEMap3 GEMEfficiencyAnalyzer::me_residual_y_
private

Definition at line 57 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and bookResolution().

◆ muon_service_

MuonServiceProxy* GEMEfficiencyAnalyzer::muon_service_
private

Definition at line 33 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ muon_token_

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

Definition at line 31 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ pt_binning_

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

Definition at line 38 of file GEMEfficiencyAnalyzer.h.

Referenced by bookOccupancy(), and GEMEfficiencyAnalyzer().

◆ rechit_token_

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

Definition at line 30 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

◆ residual_x_cut_

float GEMEfficiencyAnalyzer::residual_x_cut_
private

Definition at line 36 of file GEMEfficiencyAnalyzer.h.

Referenced by findMatchedHit(), and GEMEfficiencyAnalyzer().

◆ title_

TString GEMEfficiencyAnalyzer::title_
private

◆ use_global_muon_

bool GEMEfficiencyAnalyzer::use_global_muon_
private

Definition at line 35 of file GEMEfficiencyAnalyzer.h.

Referenced by analyze(), and GEMEfficiencyAnalyzer().

GEMEfficiencyAnalyzer::me_muon_pt_matched_
MEMap2 me_muon_pt_matched_
Definition: GEMEfficiencyAnalyzer.h:53
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11779
GEMOfflineDQMBase::MEMapKey3
std::tuple< int, int, bool, int > MEMapKey3
Definition: GEMOfflineDQMBase.h:17
GEMEfficiencyAnalyzer::me_detector_
MEMap1 me_detector_
Definition: GEMEfficiencyAnalyzer.h:48
GEMRecHit::localPositionError
LocalError localPositionError() const override
Return the 3-dimensional error on the local position.
Definition: GEMRecHit.h:40
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
muon
Definition: MuonCocktails.h:17
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
reco::deltaPhi
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
GEMEfficiencyAnalyzer::findMatchedHit
const GEMRecHit * findMatchedHit(const float, const GEMRecHitCollection::range &)
Definition: GEMEfficiencyAnalyzer.cc:267
GEMDetId::region
constexpr int region() const
Definition: GEMDetId.h:168
relativeConstraints.station
station
Definition: relativeConstraints.py:67
GEMEfficiencyAnalyzer::me_residual_x_
MEMap3 me_residual_x_
Definition: GEMEfficiencyAnalyzer.h:56
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
GEMEtaPartition
Definition: GEMEtaPartition.h:12
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
GEMEfficiencyAnalyzer::bookOccupancy
void bookOccupancy(DQMStore::IBooker &, const MEMapKey2 &, const TString &, const TString &)
Definition: GEMEfficiencyAnalyzer.cc:115
GEMOfflineDQMBase::GEMOfflineDQMBase
GEMOfflineDQMBase(const edm::ParameterSet &)
Definition: GEMOfflineDQMBase.cc:3
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
GEMEfficiencyAnalyzer::folder_
std::string folder_
Definition: GEMEfficiencyAnalyzer.h:43
GEMEfficiencyAnalyzer::use_global_muon_
bool use_global_muon_
Definition: GEMEfficiencyAnalyzer.h:35
edm::Handle< GEMRecHitCollection >
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:14
reco::Muon
Definition: Muon.h:27
hit::x
double x
Definition: SiStripHitEffFromCalibTree.cc:89
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
GEMOfflineDQMBase::log_category_
std::string log_category_
Definition: GEMOfflineDQMBase.h:45
GEMEfficiencyAnalyzer::me_detector_matched_
MEMap1 me_detector_matched_
Definition: GEMEfficiencyAnalyzer.h:49
GEMOfflineDQMBase::setDetLabelsEta
void setDetLabelsEta(MonitorElement *, const GEMStation *)
Definition: GEMOfflineDQMBase.cc:50
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
GEMOfflineDQMBase::getNumEtaPartitions
int getNumEtaPartitions(const GEMStation *)
Definition: GEMOfflineDQMBase.cc:77
LocalError::xx
float xx() const
Definition: LocalError.h:22
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
GEMStation
Definition: GEMStation.h:19
TransientTrackRecord
Definition: TransientTrackRecord.h:11
GEMEfficiencyAnalyzer::me_pull_x_
MEMap3 me_pull_x_
Definition: GEMEfficiencyAnalyzer.h:59
reco::Track
Definition: Track.h:27
GEMEfficiencyAnalyzer::title_
TString title_
Definition: GEMEfficiencyAnalyzer.h:45
edm::ESHandle< GEMGeometry >
GEMEfficiencyAnalyzer::bookResolution
void bookResolution(DQMStore::IBooker &, const MEMapKey3 &, const TString &, const TString &)
Definition: GEMEfficiencyAnalyzer.cc:130
Point3DBase< float, LocalTag >
GEMEfficiencyAnalyzer::rechit_token_
edm::EDGetTokenT< GEMRecHitCollection > rechit_token_
Definition: GEMEfficiencyAnalyzer.h:30
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
GEMOfflineDQMBase::fillME
void fillME(std::map< AnyKey, MonitorElement * > &, const AnyKey &, const float)
Definition: GEMOfflineDQMBase.h:157
MuonServiceProxy::update
void update(const edm::EventSetup &setup, bool duringEvent=true)
update the services each event
Definition: MuonServiceProxy.cc:111
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
GEMDetId::chamber
constexpr int chamber() const
Definition: GEMDetId.h:180
TrajectoryStateOnSurface::localPosition
LocalPoint localPosition() const
Definition: TrajectoryStateOnSurface.h:74
edm::ParameterSet
Definition: ParameterSet.h:47
GEMOfflineDQMBase::MEMapKey1
std::tuple< int, int > MEMapKey1
Definition: GEMOfflineDQMBase.h:15
PV3DBase::barePhi
T barePhi() const
Definition: PV3DBase.h:65
GEMOfflineDQMBase::checkRefs
bool checkRefs(const std::vector< T * > &)
Definition: GEMOfflineDQMBase.h:125
LocalError
Definition: LocalError.h:12
GEMDetId::roll
constexpr int roll() const
Definition: GEMDetId.h:191
GEMDetId
Definition: GEMDetId.h:18
helper
Definition: helper.py:1
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88338
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
GEMEfficiencyAnalyzer::me_muon_eta_
MEMap2 me_muon_eta_
Definition: GEMEfficiencyAnalyzer.h:52
GEMEfficiencyAnalyzer::matched_title_
TString matched_title_
Definition: GEMEfficiencyAnalyzer.h:46
GEMEfficiencyAnalyzer::residual_x_cut_
float residual_x_cut_
Definition: GEMEfficiencyAnalyzer.h:36
reco::TransientTrack::outermostMeasurementState
TrajectoryStateOnSurface outermostMeasurementState() const
Definition: TransientTrack.h:86
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
GEMEfficiencyAnalyzer::eta_up_
double eta_up_
Definition: GEMEfficiencyAnalyzer.h:41
get
#define get
gem
Definition: AMC13Event.h:6
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
GEMEfficiencyAnalyzer::muon_token_
edm::EDGetTokenT< edm::View< reco::Muon > > muon_token_
Definition: GEMEfficiencyAnalyzer.h:31
GEMEfficiencyAnalyzer::pt_binning_
std::vector< double > pt_binning_
Definition: GEMEfficiencyAnalyzer.h:38
GEMEfficiencyAnalyzer::me_residual_y_
MEMap3 me_residual_y_
Definition: GEMEfficiencyAnalyzer.h:57
GEMEfficiencyAnalyzer::eta_low_
double eta_low_
Definition: GEMEfficiencyAnalyzer.h:40
reco::TransientTrack::isValid
bool isValid() const
Make the ReferenceCountingProxy method to check validity public.
Definition: TransientTrack.h:147
reco::TransientTrack
Definition: TransientTrack.h:19
GEMEfficiencyAnalyzer::bookDetectorOccupancy
void bookDetectorOccupancy(DQMStore::IBooker &, const GEMStation *, const MEMapKey1 &, const TString &, const TString &)
Definition: GEMEfficiencyAnalyzer.cc:87
BoundPlane
GEMEfficiencyAnalyzer::me_pull_y_
MEMap3 me_pull_y_
Definition: GEMEfficiencyAnalyzer.h:60
chamber_bin
int chamber_bin(int station, int ring, int chamber)
Definition: L1TStage2EMTF.cc:468
GEMRecHit
Definition: GEMRecHit.h:14
TransientTrackBuilder::build
reco::TransientTrack build(const reco::Track *p) const
Definition: TransientTrackBuilder.cc:20
GEMDetId::station
constexpr int station() const
Definition: GEMDetId.h:176
mixOne_premix_on_sim_cfi.gem
gem
Definition: mixOne_premix_on_sim_cfi.py:194
GEMEfficiencyAnalyzer::me_muon_eta_matched_
MEMap2 me_muon_eta_matched_
Definition: GEMEfficiencyAnalyzer.h:54
GEMEfficiencyAnalyzer::muon_service_
MuonServiceProxy * muon_service_
Definition: GEMEfficiencyAnalyzer.h:33
GEMEfficiencyAnalyzer::me_muon_pt_
MEMap2 me_muon_pt_
Definition: GEMEfficiencyAnalyzer.h:51
GEMRegion
Definition: GEMRegion.h:19
GEMEfficiencyAnalyzer::me_residual_phi_
MEMap3 me_residual_phi_
Definition: GEMEfficiencyAnalyzer.h:58
GEMEfficiencyAnalyzer::eta_nbins_
int eta_nbins_
Definition: GEMEfficiencyAnalyzer.h:39
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
crabWrapper.key
key
Definition: crabWrapper.py:19
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
LocalError::yy
float yy() const
Definition: LocalError.h:24
edm::InputTag
Definition: InputTag.h:15
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
GEMRecHit::localPosition
LocalPoint localPosition() const override
Return the 3-dimensional local position.
Definition: GEMRecHit.h:37
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
GEMOfflineDQMBase::getDetOccXBin
int getDetOccXBin(const int, const int, const int)
Definition: GEMOfflineDQMBase.h:120