CMS 3D CMS Logo

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

#include <GEMPadDigiClusterValidation.h>

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

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 GEMPadDigiClusterValidation (const edm::ParameterSet &)
 
 ~GEMPadDigiClusterValidation () override
 
- Public Member Functions inherited from GEMBaseValidation
 GEMBaseValidation (const edm::ParameterSet &, std::string)
 
 ~GEMBaseValidation () override=0
 
- 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
 

Private Member Functions

Bool_t matchClusterAgainstSimHit (GEMPadDigiClusterCollection::const_iterator, Int_t)
 

Private Attributes

edm::EDGetTokenT< edm::DetSetVector< GEMDigiSimLink > > digisimlink_token_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomToken_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomTokenBeginRun_
 
MonitorElementme_cls_
 
MEMap3Ids me_detail_bx_
 
MEMap2Ids me_detail_occ_det_
 
MEMap3Ids me_detail_occ_pad_
 
MEMap3Ids me_detail_occ_phi_pad_
 
MEMap3Ids me_detail_occ_xy_
 
MEMap1Ids me_detail_occ_zr_
 
MEMap2Ids me_detail_pad_cluster_occ_det_
 
MEMap3Ids me_pad_cluster_occ_eta_
 
MEMap3Ids me_pad_cluster_occ_phi_
 
MEMap3Ids me_total_cluster_
 
edm::EDGetTokenT< GEMPadDigiClusterCollectionpad_cluster_token_
 
edm::EDGetTokenT< edm::PSimHitContainersimhit_token_
 

Additional Inherited Members

- 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 &)
 
- Protected Member Functions inherited from GEMBaseValidation
template<typename T >
dqm::impl::MonitorElementbookDetectorOccupancy (DQMStore::IBooker &booker, const T &key, const GEMStation *station, const char *name_prfix, const char *title_prefix)
 
template<typename T >
dqm::impl::MonitorElementbookHist1D (DQMStore::IBooker &booker, const T &key, const char *name, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, const char *x_title="", const char *y_title="Entries")
 
template<typename T >
dqm::impl::MonitorElementbookHist2D (DQMStore::IBooker &booker, const T &key, const char *name, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, Int_t nbinsy, Double_t ylow, Double_t yup, const char *x_title="", const char *y_title="")
 
template<typename T >
dqm::impl::MonitorElementbookPIDHist (DQMStore::IBooker &booker, const T &key, const char *name, const char *title)
 
template<typename T >
dqm::impl::MonitorElementbookPolarOccupancy (DQMStore::IBooker &booker, const T &key, const char *name_prefix, const char *title_prefix)
 
template<typename T >
dqm::impl::MonitorElementbookXYOccupancy (DQMStore::IBooker &booker, const T &key, const char *name_prefix, const char *title_prefix)
 
template<typename T >
dqm::impl::MonitorElementbookZROccupancy (DQMStore::IBooker &booker, const T &key, const char *name_prfix, const char *title_prefix)
 
dqm::impl::MonitorElementbookZROccupancy (DQMStore::IBooker &booker, Int_t region_id, const char *name_prfix, const char *title_prefix)
 
Int_t getDetOccBinX (Int_t num_layers, Int_t chamber_id, Int_t layer_id)
 
Int_t getPidIdx (Int_t pid)
 
Bool_t isMuonSimHit (const PSimHit &)
 
Float_t toDegree (Float_t radian)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from GEMBaseValidation
Bool_t detail_plot_
 
std::vector< Double_t > eta_range_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomToken_
 
edm::ESGetToken< GEMGeometry, MuonGeometryRecordgeomTokenBeginRun_
 
const std::string kLogCategory_
 
const Int_t kMuonPDGId_ = 13
 
std::vector< Int_t > pid_list_
 
Int_t xy_occ_num_bins_
 
std::vector< Int_t > zr_occ_num_bins_
 
std::vector< Double_t > zr_occ_range_
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 10 of file GEMPadDigiClusterValidation.h.

Constructor & Destructor Documentation

◆ GEMPadDigiClusterValidation()

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

Definition at line 4 of file GEMPadDigiClusterValidation.cc.

5  : GEMBaseValidation(pset, "GEMPadDigiClusterValidation") {
6  const auto& pad_cluster_pset = pset.getParameterSet("gemPadCluster");
7  const auto& pad_cluster_tag = pad_cluster_pset.getParameter<edm::InputTag>("inputTag");
8 
9  const auto& simhit_pset = pset.getParameterSet("gemSimHit");
10  const auto& simhit_tag = simhit_pset.getParameter<edm::InputTag>("inputTag");
11  simhit_token_ = consumes<edm::PSimHitContainer>(simhit_tag);
12 
13  const auto& digisimlink_tag = pset.getParameter<edm::InputTag>("gemDigiSimLink");
14  digisimlink_token_ = consumes<edm::DetSetVector<GEMDigiSimLink>>(digisimlink_tag);
15 
16  pad_cluster_token_ = consumes<GEMPadDigiClusterCollection>(pad_cluster_tag);
17  geomToken_ = esConsumes<GEMGeometry, MuonGeometryRecord>();
18  geomTokenBeginRun_ = esConsumes<GEMGeometry, MuonGeometryRecord, edm::Transition::BeginRun>();
19 }

References digisimlink_token_, geomToken_, geomTokenBeginRun_, pad_cluster_token_, muonDTDigis_cfi::pset, and simhit_token_.

◆ ~GEMPadDigiClusterValidation()

GEMPadDigiClusterValidation::~GEMPadDigiClusterValidation ( )
override

Definition at line 146 of file GEMPadDigiClusterValidation.cc.

146 {}

Member Function Documentation

◆ analyze()

void GEMPadDigiClusterValidation::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Implements GEMBaseValidation.

Definition at line 158 of file GEMPadDigiClusterValidation.cc.

158  {
159  const GEMGeometry* gem = &setup.getData(geomToken_);
160 
162  event.getByToken(pad_cluster_token_, collection);
163  if (not collection.isValid()) {
164  edm::LogError(kLogCategory_) << "Cannot get pads by label GEMPadToken.";
165  return;
166  }
167 
169  event.getByToken(digisimlink_token_, digiSimLink);
170  if (not digiSimLink.isValid()) {
171  edm::LogError(kLogCategory_) << "Failed to get GEMDigiSimLink." << std::endl;
172  return;
173  }
174 
175  edm::Handle<edm::PSimHitContainer> simhit_container;
176  event.getByToken(simhit_token_, simhit_container);
177  if (not simhit_container.isValid()) {
178  edm::LogError(kLogCategory_) << "Failed to get PSimHitContainer." << std::endl;
179  return;
180  }
181 
182  std::map<ME3IdsKey, Int_t> total_cluster;
183  for (auto range_iter = collection->begin(); range_iter != collection->end(); range_iter++) {
184  GEMDetId gemid = (*range_iter).first;
185  const auto& range = (*range_iter).second;
186 
187  if (gem->idToDet(gemid) == nullptr) {
188  edm::LogError(kLogCategory_) << "Getting DetId failed. Discard this gem pad hit. "
189  << "Maybe it comes from unmatched geometry." << std::endl;
190  continue;
191  }
192 
193  const GEMEtaPartition* roll = gem->etaPartition(gemid);
194  const BoundPlane& surface = roll->surface();
195 
196  Int_t region_id = gemid.region();
197  Int_t station_id = gemid.station();
198  Int_t layer_id = gemid.layer();
199  Int_t chamber_id = gemid.chamber();
200  Int_t ieta = gemid.ieta();
201  Int_t num_layers = gemid.nlayers();
202 
203  ME2IdsKey key2(region_id, station_id);
204  ME3IdsKey key3(region_id, station_id, layer_id);
205 
206  for (auto digi = range.first; digi != range.second; ++digi) {
207  // ignore 16-partition GE2/1 pads
208  if (gemid.isGE21() and digi->nPartitions() == GEMPadDigiCluster::GE21SplitStrip)
209  continue;
210 
211  const auto& padsVec = digi->pads();
212  if (padsVec.empty()) {
213  edm::LogError(kLogCategory_) << "Pads missing for digi from GEM ID = " << gemid;
214  continue;
215  }
216  Int_t pad = padsVec[0];
217 
218  total_cluster[key3]++;
219 
220  // bunch crossing
221  Int_t bx = digi->bx();
222  Int_t cls = digi->pads().size();
223 
224  const LocalPoint& local_pos = roll->centreOfPad(pad);
225  const GlobalPoint& global_pos = surface.toGlobal(local_pos);
226 
227  Float_t g_r = global_pos.perp();
228  Float_t g_phi = global_pos.phi();
229  Float_t g_x = global_pos.x();
230  Float_t g_y = global_pos.y();
231  Float_t g_abs_z = std::fabs(global_pos.z());
232 
233  Int_t bin_x = getDetOccBinX(num_layers, chamber_id, layer_id);
234 
235  me_cls_->Fill(cls);
236  if (detail_plot_) {
237  me_detail_occ_zr_[region_id]->Fill(g_abs_z, g_r);
238  me_detail_occ_det_[key2]->Fill(bin_x, ieta);
239  me_detail_occ_xy_[key3]->Fill(g_x, g_y);
240  me_detail_occ_phi_pad_[key3]->Fill(g_phi, pad);
241  me_detail_occ_pad_[key3]->Fill(pad);
242  me_detail_bx_[key3]->Fill(bx);
243  } // detail_plot_
244  }
245  } // end loop over range iters
246 
247  for (const auto& region : gem->regions()) {
248  Int_t region_id = region->region();
249  for (const auto& station : region->stations()) {
250  Int_t station_id = station->station();
251  const auto& superChamberVec = station->superChambers();
252  if (superChamberVec.empty()) {
253  edm::LogError(kLogCategory_) << "Super chambers missing for region = " << region_id
254  << " and station = " << station_id;
255  continue;
256  }
257  const GEMSuperChamber* super_chamber = superChamberVec.front();
258  if (super_chamber == nullptr) {
259  edm::LogError(kLogCategory_) << "Failed to find super chamber for region = " << region_id
260  << " and station = " << station_id;
261  continue;
262  }
263  for (const auto& chamber : super_chamber->chambers()) {
264  Int_t layer_id = chamber->id().layer();
265  ME3IdsKey key3{region_id, station_id, layer_id};
266  me_total_cluster_[key3]->Fill(total_cluster[key3]);
267  }
268  }
269  }
270 
271  // NOTE
272  for (const auto& simhit : *simhit_container.product()) {
273  if (not isMuonSimHit(simhit))
274  continue;
275  if (gem->idToDet(simhit.detUnitId()) == nullptr) {
276  edm::LogError(kLogCategory_) << "SimHit did not match with GEMGeometry." << std::endl;
277  continue;
278  }
279 
280  GEMDetId simhit_gemid(simhit.detUnitId());
281 
282  Int_t region_id = simhit_gemid.region();
283  Int_t station_id = simhit_gemid.station();
284  Int_t layer_id = simhit_gemid.layer();
285  Int_t chamber_id = simhit_gemid.chamber();
286  Int_t ieta = simhit_gemid.ieta();
287  Int_t num_layers = simhit_gemid.nlayers();
288 
289  ME2IdsKey key2{region_id, station_id};
290  ME3IdsKey key3{region_id, station_id, layer_id};
291 
292  const GEMEtaPartition* roll = gem->etaPartition(simhit_gemid);
293 
294  const auto& simhit_local_pos = simhit.localPosition();
295  const auto& simhit_global_pos = roll->surface().toGlobal(simhit_local_pos);
296 
297  Float_t simhit_g_eta = std::abs(simhit_global_pos.eta());
298  Float_t simhit_g_phi = toDegree(simhit_global_pos.phi());
299 
300  auto simhit_trackId = simhit.trackId();
301 
302  Int_t bin_x = getDetOccBinX(num_layers, chamber_id, layer_id);
303 
304  auto links = digiSimLink->find(simhit_gemid);
305  if (links == digiSimLink->end())
306  continue;
307 
308  Int_t simhit_strip = -1;
309  for (const auto& link : *links) {
310  if (simhit_trackId == link.getTrackId()) {
311  simhit_strip = link.getStrip();
312  break;
313  }
314  }
315  Int_t simhit_pad = roll->padOfStrip(simhit_strip);
316  auto range = collection->get(simhit_gemid);
317  for (auto cluster = range.first; cluster != range.second; ++cluster) {
318  if (matchClusterAgainstSimHit(cluster, simhit_pad)) {
319  me_pad_cluster_occ_eta_[key3]->Fill(simhit_g_eta);
320  me_pad_cluster_occ_phi_[key3]->Fill(simhit_g_phi);
321  if (detail_plot_) {
322  me_detail_pad_cluster_occ_det_[key2]->Fill(bin_x, ieta);
323  }
324  break;
325  }
326  }
327  } // simhit_container loop
328 }

References funct::abs(), l1GtPatternGenerator_cfi::bx, GEMEtaPartition::centreOfPad(), relativeConstraints::chamber, GEMDetId::chamber(), GEMSuperChamber::chambers(), universalConfigTemplate::collection, GEMBaseValidation::detail_plot_, digisimlink_token_, dqm::impl::MonitorElement::Fill(), GEMPadDigiCluster::GE21SplitStrip, geomToken_, GEMBaseValidation::getDetOccBinX(), LEDCalibrationChannels::ieta, GEMDetId::ieta(), GEMDetId::isGE21(), GEMBaseValidation::isMuonSimHit(), edm::HandleBase::isValid(), GEMBaseValidation::kLogCategory_, GEMDetId::layer(), MainPageGenerator::link, electronStore::links, matchClusterAgainstSimHit(), me_cls_, me_detail_bx_, me_detail_occ_det_, me_detail_occ_pad_, me_detail_occ_phi_pad_, me_detail_occ_xy_, me_detail_occ_zr_, me_detail_pad_cluster_occ_det_, me_pad_cluster_occ_eta_, me_pad_cluster_occ_phi_, me_total_cluster_, GEMDetId::nlayers(), pad_cluster_token_, GEMEtaPartition::padOfStrip(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), edm::Handle< T >::product(), FastTimerService_cff::range, GEMDetId::region(), HLT_FULL_cff::region, singleTopDQM_cfi::setup, simhit_token_, relativeConstraints::station, GEMDetId::station(), GeomDet::surface(), GEMBaseValidation::toDegree(), Surface::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ bookHistograms()

void GEMPadDigiClusterValidation::bookHistograms ( DQMStore::IBooker booker,
edm::Run const &  Run,
edm::EventSetup const &  setup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 21 of file GEMPadDigiClusterValidation.cc.

23  {
24  const GEMGeometry* gem = &setup.getData(geomTokenBeginRun_);
25  // NOTE Occupancy
26  booker.setCurrentFolder("MuonGEMDigisV/GEMDigisTask/PadCluster/ClusterSize");
27 
28  TString cls_title = "Cluster Size Distribution";
29  TString cls_x_title = "Cluster size";
30 
31  me_cls_ = booker.book1D("cls", cls_title + ";" + cls_x_title + ";" + "Entries", 10, 0.5, 10.5);
32 
33  // NOTE Occupancy
34  booker.setCurrentFolder("MuonGEMDigisV/GEMDigisTask/PadCluster/Occupancy");
35  for (const auto& region : gem->regions()) {
36  Int_t region_id = region->region();
37 
38  if (detail_plot_)
39  me_detail_occ_zr_.emplace(region_id, bookZROccupancy(booker, region_id, "pad", "Pad Cluster"));
40 
41  for (const auto& station : region->stations()) {
42  Int_t station_id = station->station();
43  ME2IdsKey key2{region_id, station_id};
44 
45  if (detail_plot_) {
46  me_detail_occ_det_[key2] = bookDetectorOccupancy(booker, key2, station, "pad", "Pad Cluster");
48  bookDetectorOccupancy(booker, key2, station, "matched_pad", "Pad Cluster");
49  }
50 
51  const auto& superChamberVec = station->superChambers();
52  if (superChamberVec.empty()) {
53  edm::LogError(kLogCategory_) << "Super chambers missing for region = " << region_id
54  << " and station = " << station_id;
55  continue;
56  }
57  const GEMSuperChamber* super_chamber = superChamberVec.front();
58  if (super_chamber == nullptr) {
59  edm::LogError(kLogCategory_) << "Failed to find super chamber for region = " << region_id
60  << " and station = " << station_id;
61  continue;
62  }
63  for (const auto& chamber : super_chamber->chambers()) {
64  Int_t layer_id = chamber->id().layer();
65  ME3IdsKey key3{region_id, station_id, layer_id};
66 
67  const auto& etaPartitionVec = chamber->etaPartitions();
68  if (etaPartitionVec.empty() || etaPartitionVec.front() == nullptr) {
70  << "Eta partition missing or null for region, station, super chamber, chamber = (" << region_id << ", "
71  << station_id << ", " << super_chamber->id() << ", " << chamber->id() << ")";
72  continue;
73  }
74  Int_t num_pads = etaPartitionVec.front()->npads();
75 
76  me_total_cluster_[key3] =
77  bookHist1D(booker, key3, "total_pad_cluster", "Number of pad digi cluster per event", 21, -0.5, 20.5);
78 
79  me_pad_cluster_occ_eta_[key3] = bookHist1D(booker,
80  key3,
81  "matched_pad_occ_eta",
82  "Matched Pad Cluster Eta Occupancy",
83  16,
84  eta_range_[station_id * 2 + 0],
85  eta_range_[station_id * 2 + 1],
86  "#eta");
87 
89  booker, key3, "matched_pad_occ_phi", "Matched Pad Cluster Phi Occupancy", 36, -5, 355, "#phi [degrees]");
90 
91  if (detail_plot_) {
92  me_detail_occ_xy_[key3] = bookXYOccupancy(booker, key3, "pad", "Pad Cluster");
93 
94  me_detail_occ_phi_pad_[key3] = bookHist2D(booker,
95  key3,
96  "occ_phi_pad",
97  "Pad Cluster Occupancy",
98  280,
99  -M_PI,
100  M_PI,
101  num_pads / 2,
102  0,
103  num_pads,
104  "#phi [rad]",
105  "Pad number");
106 
107  me_detail_occ_pad_[key3] =
108  bookHist1D(booker, key3, "occ_pad", "Pad Cluster Occupancy", num_pads, 0.5, num_pads + 0.5, "Pad number");
109  }
110  } // end loop over layer ids
111  } // end loop over station ids
112  } // end loop over region ids
113 
114  // NOTE Bunch Crossing
115  if (detail_plot_) {
116  booker.setCurrentFolder("MuonGEMDigisV/GEMDigisTask/PadCluster/BunchCrossing");
117 
118  for (const auto& region : gem->regions()) {
119  Int_t region_id = region->region();
120  for (const auto& station : region->stations()) {
121  Int_t station_id = station->station();
122 
123  const auto& superChamberVec = station->superChambers();
124  if (superChamberVec.empty()) {
125  edm::LogError(kLogCategory_) << "Super chambers missing for region = " << region_id
126  << " and station = " << station_id;
127  continue;
128  }
129  const GEMSuperChamber* super_chamber = superChamberVec.front();
130  if (super_chamber == nullptr) {
131  edm::LogError(kLogCategory_) << "Failed to find super chamber for region = " << region_id
132  << " and station = " << station_id;
133  continue;
134  }
135  for (const auto& chamber : super_chamber->chambers()) {
136  Int_t layer_id = chamber->id().layer();
137  ME3IdsKey key3(region_id, station_id, layer_id);
138  me_detail_bx_[key3] =
139  bookHist1D(booker, key3, "bx", "Pad Cluster Bunch Crossing", 5, -2.5, 2.5, "Bunch crossing");
140  } // chamber loop
141  } // station loop
142  } // region loop
143  } // detail plot
144 }

References dqm::implementation::IBooker::book1D(), GEMBaseValidation::bookDetectorOccupancy(), GEMBaseValidation::bookHist1D(), GEMBaseValidation::bookHist2D(), GEMBaseValidation::bookXYOccupancy(), GEMBaseValidation::bookZROccupancy(), relativeConstraints::chamber, GEMSuperChamber::chambers(), GEMBaseValidation::detail_plot_, GEMBaseValidation::eta_range_, geomTokenBeginRun_, GEMSuperChamber::id(), GEMBaseValidation::kLogCategory_, M_PI, me_cls_, me_detail_bx_, me_detail_occ_det_, me_detail_occ_pad_, me_detail_occ_phi_pad_, me_detail_occ_xy_, me_detail_occ_zr_, me_detail_pad_cluster_occ_det_, me_pad_cluster_occ_eta_, me_pad_cluster_occ_phi_, me_total_cluster_, HLT_FULL_cff::region, dqm::implementation::NavigatorBase::setCurrentFolder(), singleTopDQM_cfi::setup, and relativeConstraints::station.

◆ matchClusterAgainstSimHit()

Bool_t GEMPadDigiClusterValidation::matchClusterAgainstSimHit ( GEMPadDigiClusterCollection::const_iterator  cluster,
Int_t  simhit_pad 
)
private

Definition at line 148 of file GEMPadDigiClusterValidation.cc.

149  {
150  for (auto pad : cluster->pads()) {
151  if (pad == simhit_pad) {
152  return true;
153  }
154  }
155  return false;
156 }

Referenced by analyze().

Member Data Documentation

◆ digisimlink_token_

edm::EDGetTokenT<edm::DetSetVector<GEMDigiSimLink> > GEMPadDigiClusterValidation::digisimlink_token_
private

Definition at line 22 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and GEMPadDigiClusterValidation().

◆ geomToken_

edm::ESGetToken<GEMGeometry, MuonGeometryRecord> GEMPadDigiClusterValidation::geomToken_
private

Definition at line 23 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and GEMPadDigiClusterValidation().

◆ geomTokenBeginRun_

edm::ESGetToken<GEMGeometry, MuonGeometryRecord> GEMPadDigiClusterValidation::geomTokenBeginRun_
private

Definition at line 24 of file GEMPadDigiClusterValidation.h.

Referenced by bookHistograms(), and GEMPadDigiClusterValidation().

◆ me_cls_

MonitorElement* GEMPadDigiClusterValidation::me_cls_
private

Definition at line 26 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_bx_

MEMap3Ids GEMPadDigiClusterValidation::me_detail_bx_
private

Definition at line 37 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_occ_det_

MEMap2Ids GEMPadDigiClusterValidation::me_detail_occ_det_
private

Definition at line 30 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_occ_pad_

MEMap3Ids GEMPadDigiClusterValidation::me_detail_occ_pad_
private

Definition at line 35 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_occ_phi_pad_

MEMap3Ids GEMPadDigiClusterValidation::me_detail_occ_phi_pad_
private

Definition at line 34 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_occ_xy_

MEMap3Ids GEMPadDigiClusterValidation::me_detail_occ_xy_
private

Definition at line 33 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_occ_zr_

MEMap1Ids GEMPadDigiClusterValidation::me_detail_occ_zr_
private

Definition at line 32 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_detail_pad_cluster_occ_det_

MEMap2Ids GEMPadDigiClusterValidation::me_detail_pad_cluster_occ_det_
private

Definition at line 31 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_pad_cluster_occ_eta_

MEMap3Ids GEMPadDigiClusterValidation::me_pad_cluster_occ_eta_
private

Definition at line 28 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_pad_cluster_occ_phi_

MEMap3Ids GEMPadDigiClusterValidation::me_pad_cluster_occ_phi_
private

Definition at line 29 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ me_total_cluster_

MEMap3Ids GEMPadDigiClusterValidation::me_total_cluster_
private

Definition at line 27 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and bookHistograms().

◆ pad_cluster_token_

edm::EDGetTokenT<GEMPadDigiClusterCollection> GEMPadDigiClusterValidation::pad_cluster_token_
private

Definition at line 20 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and GEMPadDigiClusterValidation().

◆ simhit_token_

edm::EDGetTokenT<edm::PSimHitContainer> GEMPadDigiClusterValidation::simhit_token_
private

Definition at line 21 of file GEMPadDigiClusterValidation.h.

Referenced by analyze(), and GEMPadDigiClusterValidation().

GEMPadDigiClusterValidation::me_detail_pad_cluster_occ_det_
MEMap2Ids me_detail_pad_cluster_occ_det_
Definition: GEMPadDigiClusterValidation.h:31
ME2IdsKey
std::tuple< Int_t, Int_t > ME2IdsKey
Definition: GEMValidationUtils.h:16
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
GEMDetId::isGE21
bool isGE21() const
Definition: GEMDetId.cc:11
GEMBaseValidation::bookHist1D
dqm::impl::MonitorElement * bookHist1D(DQMStore::IBooker &booker, const T &key, const char *name, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, const char *x_title="", const char *y_title="Entries")
Definition: GEMBaseValidation.h:240
GEMSuperChamber::chambers
const std::vector< const GEMChamber * > & chambers() const
Return the chambers in the super chamber.
Definition: GEMSuperChamber.cc:23
edm::Handle::product
T const * product() const
Definition: Handle.h:70
MainPageGenerator.link
link
Definition: MainPageGenerator.py:271
GEMBaseValidation::detail_plot_
Bool_t detail_plot_
Definition: GEMBaseValidation.h:95
GEMPadDigiClusterValidation::geomTokenBeginRun_
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomTokenBeginRun_
Definition: GEMPadDigiClusterValidation.h:24
GEMSuperChamber
Definition: GEMSuperChamber.h:19
GEMDetId::layer
constexpr int layer() const
Definition: GEMDetId.h:190
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
GEMDetId::region
constexpr int region() const
Definition: GEMDetId.h:171
GEMBaseValidation::bookDetectorOccupancy
dqm::impl::MonitorElement * bookDetectorOccupancy(DQMStore::IBooker &booker, const T &key, const GEMStation *station, const char *name_prfix, const char *title_prefix)
Definition: GEMBaseValidation.h:168
relativeConstraints.station
station
Definition: relativeConstraints.py:67
GEMEtaPartition
Definition: GEMEtaPartition.h:12
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
GEMPadDigiClusterValidation::digisimlink_token_
edm::EDGetTokenT< edm::DetSetVector< GEMDigiSimLink > > digisimlink_token_
Definition: GEMPadDigiClusterValidation.h:22
GEMPadDigiClusterValidation::matchClusterAgainstSimHit
Bool_t matchClusterAgainstSimHit(GEMPadDigiClusterCollection::const_iterator, Int_t)
Definition: GEMPadDigiClusterValidation.cc:148
edm::Handle< GEMPadDigiClusterCollection >
GEMDetId::nlayers
constexpr int nlayers() const
Definition: GEMDetId.h:213
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
GEMPadDigiClusterValidation::pad_cluster_token_
edm::EDGetTokenT< GEMPadDigiClusterCollection > pad_cluster_token_
Definition: GEMPadDigiClusterValidation.h:20
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
GEMPadDigiClusterValidation::me_pad_cluster_occ_eta_
MEMap3Ids me_pad_cluster_occ_eta_
Definition: GEMPadDigiClusterValidation.h:28
GEMBaseValidation::isMuonSimHit
Bool_t isMuonSimHit(const PSimHit &)
Definition: GEMBaseValidation.cc:28
GEMBaseValidation::bookZROccupancy
dqm::impl::MonitorElement * bookZROccupancy(DQMStore::IBooker &booker, Int_t region_id, const char *name_prfix, const char *title_prefix)
Definition: GEMBaseValidation.cc:42
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
GEMPadDigiClusterValidation::me_detail_bx_
MEMap3Ids me_detail_bx_
Definition: GEMPadDigiClusterValidation.h:37
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
GEMBaseValidation::bookXYOccupancy
dqm::impl::MonitorElement * bookXYOccupancy(DQMStore::IBooker &booker, const T &key, const char *name_prefix, const char *title_prefix)
Definition: GEMBaseValidation.h:141
Point3DBase< float, LocalTag >
GEMPadDigiClusterValidation::me_detail_occ_phi_pad_
MEMap3Ids me_detail_occ_phi_pad_
Definition: GEMPadDigiClusterValidation.h:34
GEMPadDigiClusterValidation::me_cls_
MonitorElement * me_cls_
Definition: GEMPadDigiClusterValidation.h:26
GEMBaseValidation::bookHist2D
dqm::impl::MonitorElement * bookHist2D(DQMStore::IBooker &booker, const T &key, const char *name, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, Int_t nbinsy, Double_t ylow, Double_t yup, const char *x_title="", const char *y_title="")
Definition: GEMBaseValidation.h:257
GEMPadDigiClusterValidation::geomToken_
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > geomToken_
Definition: GEMPadDigiClusterValidation.h:23
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
GEMDetId::chamber
constexpr int chamber() const
Definition: GEMDetId.h:183
GEMPadDigiClusterValidation::me_detail_occ_det_
MEMap2Ids me_detail_occ_det_
Definition: GEMPadDigiClusterValidation.h:30
GEMBaseValidation::GEMBaseValidation
GEMBaseValidation(const edm::ParameterSet &, std::string)
Definition: GEMBaseValidation.cc:10
GEMBaseValidation::eta_range_
std::vector< Double_t > eta_range_
Definition: GEMBaseValidation.h:94
GEMDetId
Definition: GEMDetId.h:18
GEMPadDigiClusterValidation::me_detail_occ_xy_
MEMap3Ids me_detail_occ_xy_
Definition: GEMPadDigiClusterValidation.h:33
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
universalConfigTemplate.collection
collection
Definition: universalConfigTemplate.py:81
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
GEMPadDigiClusterValidation::me_total_cluster_
MEMap3Ids me_total_cluster_
Definition: GEMPadDigiClusterValidation.h:27
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
gem
Definition: AMC13Event.h:6
GEMPadDigiClusterValidation::me_detail_occ_zr_
MEMap1Ids me_detail_occ_zr_
Definition: GEMPadDigiClusterValidation.h:32
GEMEtaPartition::centreOfPad
LocalPoint centreOfPad(int pad) const
Definition: GEMEtaPartition.cc:45
GEMBaseValidation::toDegree
Float_t toDegree(Float_t radian)
Definition: GEMBaseValidation.cc:30
BoundPlane
electronStore.links
links
Definition: electronStore.py:149
GEMPadDigiCluster::GE21SplitStrip
Definition: GEMPadDigiCluster.h:24
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
ME3IdsKey
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
Definition: GEMValidationUtils.h:19
GEMDetId::station
constexpr int station() const
Definition: GEMDetId.h:179
GEMGeometry
Definition: GEMGeometry.h:24
GEMPadDigiClusterValidation::me_detail_occ_pad_
MEMap3Ids me_detail_occ_pad_
Definition: GEMPadDigiClusterValidation.h:35
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GEMPadDigiClusterValidation::simhit_token_
edm::EDGetTokenT< edm::PSimHitContainer > simhit_token_
Definition: GEMPadDigiClusterValidation.h:21
GEMPadDigiClusterValidation::me_pad_cluster_occ_phi_
MEMap3Ids me_pad_cluster_occ_phi_
Definition: GEMPadDigiClusterValidation.h:29
GEMEtaPartition::padOfStrip
float padOfStrip(int strip) const
returns FRACTIONAL pad number [0.,npads) for an integer strip [0,nstrip-1]
Definition: GEMEtaPartition.cc:58
GEMDetId::ieta
constexpr int ieta() const
Definition: GEMDetId.h:199
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
GEMBaseValidation::getDetOccBinX
Int_t getDetOccBinX(Int_t num_layers, Int_t chamber_id, Int_t layer_id)
Definition: GEMBaseValidation.cc:24
GEMSuperChamber::id
GEMDetId id() const
Return the GEMDetId of this super chamber.
Definition: GEMSuperChamber.cc:11
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
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
GEMBaseValidation::kLogCategory_
const std::string kLogCategory_
Definition: GEMBaseValidation.h:99