CMS 3D CMS Logo

GEMEfficiencyAnalyzer.cc
Go to the documentation of this file.
7 
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 }
29 
31 
33  edm::Run const& run,
34  edm::EventSetup const& isetup) {
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 }
86 
88  const GEMStation* station,
89  const MEMapKey1& key,
90  const TString& name_suffix,
91  const TString& title_suffix) {
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 }
114 
116  const MEMapKey2& key,
117  const TString& name_suffix,
118  const TString& title_suffix) {
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 }
129 
131  const MEMapKey3& key,
132  const TString& name_suffix,
133  const TString& title_suffix) {
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 }
145 
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 }
266 
267 const GEMRecHit* GEMEfficiencyAnalyzer::findMatchedHit(const float track_local_x,
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 }
GEMEfficiencyAnalyzer::me_muon_pt_matched_
MEMap2 me_muon_pt_matched_
Definition: GEMEfficiencyAnalyzer.h:53
GEMEfficiencyAnalyzer.h
GEMEfficiencyAnalyzer::analyze
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override
Definition: GEMEfficiencyAnalyzer.cc:146
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11776
GEMOfflineDQMBase::MEMapKey3
std::tuple< int, int, bool, int > MEMapKey3
Definition: GEMOfflineDQMBase.h:17
MessageLogger.h
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
edm::Run
Definition: Run.h:45
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
deltaPhi.h
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
GEMOfflineDQMBase
Definition: GEMOfflineDQMBase.h:11
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
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::~GEMEfficiencyAnalyzer
~GEMEfficiencyAnalyzer() override
Definition: GEMEfficiencyAnalyzer.cc:30
GEMEfficiencyAnalyzer::me_detector_matched_
MEMap1 me_detector_matched_
Definition: GEMEfficiencyAnalyzer.h:49
GEMOfflineDQMBase::setDetLabelsEta
void setDetLabelsEta(MonitorElement *, const GEMStation *)
Definition: GEMOfflineDQMBase.cc:50
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
TrackCandidateProducer_cfi.propagator
propagator
Definition: TrackCandidateProducer_cfi.py:17
GEMEfficiencyAnalyzer::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: GEMEfficiencyAnalyzer.cc:32
GEMOfflineDQMBase::MEMapKey2
std::tuple< int, int, bool > MEMapKey2
Definition: GEMOfflineDQMBase.h:16
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
TransientTrackBuilder.h
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::BookingHelper
Definition: GEMOfflineDQMBase.h:47
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:84949
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
edm::EventSetup
Definition: EventSetup.h:57
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
TransientTrackRecord.h
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::GEMEfficiencyAnalyzer
GEMEfficiencyAnalyzer(const edm::ParameterSet &)
Definition: GEMEfficiencyAnalyzer.cc:8
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
edm::RangeMap::range
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
writedatasetfile.run
run
Definition: writedatasetfile.py:27
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
dqm::implementation::IBooker
Definition: DQMStore.h:43
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
ConsumesCollector.h
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
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
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