CMS 3D CMS Logo

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

#include <Validation/MtdValidation/plugins/EtlSimHitsValidation.cc>

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

Public Member Functions

 EtlSimHitsValidation (const edm::ParameterSet &)
 
 ~EtlSimHitsValidation () override
 
- 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 &descriptions)
 
- 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 &)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 

Private Attributes

edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
 
const std::string folder_
 
const float hitMinEnergy1Dis_
 
const float hitMinEnergy2Dis_
 
MonitorElementmeHitEnergy_ [4]
 
MonitorElementmeHitEta_ [4]
 
MonitorElementmeHitEvsEta_ [4]
 
MonitorElementmeHitEvsPhi_ [4]
 
MonitorElementmeHitPhi_ [4]
 
MonitorElementmeHitTime_ [4]
 
MonitorElementmeHitTvsE_ [4]
 
MonitorElementmeHitTvsEta_ [4]
 
MonitorElementmeHitTvsPhi_ [4]
 
MonitorElementmeHitX_ [4]
 
MonitorElementmeHitXlocal_ [4]
 
MonitorElementmeHitY_ [4]
 
MonitorElementmeHitYlocal_ [4]
 
MonitorElementmeHitZ_ [4]
 
MonitorElementmeHitZlocal_ [4]
 
MonitorElementmeNhits_ [4]
 
MonitorElementmeNtrkPerCell_ [4]
 
MonitorElementmeOccupancy_ [4]
 

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
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description: ETL SIM hits validation

Implementation: [Notes on implementation]

Definition at line 45 of file EtlSimHitsValidation.cc.

Constructor & Destructor Documentation

◆ EtlSimHitsValidation()

EtlSimHitsValidation::EtlSimHitsValidation ( const edm::ParameterSet iConfig)
explicit

Definition at line 93 of file EtlSimHitsValidation.cc.

94  : folder_(iConfig.getParameter<std::string>("folder")),
95  hitMinEnergy1Dis_(iConfig.getParameter<double>("hitMinimumEnergy1Dis")),
96  hitMinEnergy2Dis_(iConfig.getParameter<double>("hitMinimumEnergy2Dis")) {
97  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit> >(iConfig.getParameter<edm::InputTag>("inputTag"));
98 }

References etlSimHitsToken_, and edm::ParameterSet::getParameter().

◆ ~EtlSimHitsValidation()

EtlSimHitsValidation::~EtlSimHitsValidation ( )
override

Definition at line 100 of file EtlSimHitsValidation.cc.

100 {}

Member Function Documentation

◆ analyze()

void EtlSimHitsValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 103 of file EtlSimHitsValidation.cc.

103  {
104  using namespace edm;
105  using namespace geant_units::operators;
106 
107  edm::ESHandle<MTDGeometry> geometryHandle;
108  iSetup.get<MTDDigiGeometryRecord>().get(geometryHandle);
109  const MTDGeometry* geom = geometryHandle.product();
110 
111  edm::ESHandle<MTDTopology> topologyHandle;
112  iSetup.get<MTDTopologyRcd>().get(topologyHandle);
113  const MTDTopology* topology = topologyHandle.product();
114 
115  bool topo1Dis = false;
116  bool topo2Dis = false;
117  if (topology->getMTDTopologyMode() <= static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
118  topo1Dis = true;
119  }
120  if (topology->getMTDTopologyMode() > static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
121  topo2Dis = true;
122  }
123 
124  auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_));
125  MixCollection<PSimHit> etlSimHits(etlSimHitsHandle.product());
126 
127  std::unordered_map<uint32_t, MTDHit> m_etlHits[4];
128  std::unordered_map<uint32_t, std::set<int> > m_etlTrkPerCell[4];
129 
130  // --- Loop over the ETL SIM hits
131 
132  int idet = 999;
133 
134  for (auto const& simHit : etlSimHits) {
135  // --- Use only hits compatible with the in-time bunch-crossing
136  if (simHit.tof() < 0 || simHit.tof() > 25.)
137  continue;
138 
139  ETLDetId id = simHit.detUnitId();
140  if (topo1Dis) {
141  if (id.zside() == -1) {
142  idet = 0;
143  } else if (id.zside() == 1) {
144  idet = 2;
145  } else {
146  continue;
147  }
148  }
149 
150  if (topo2Dis) {
151  if ((id.zside() == -1) && (id.nDisc() == 1)) {
152  idet = 0;
153  } else if ((id.zside() == -1) && (id.nDisc() == 2)) {
154  idet = 1;
155  } else if ((id.zside() == 1) && (id.nDisc() == 1)) {
156  idet = 2;
157  } else if ((id.zside() == 1) && (id.nDisc() == 2)) {
158  idet = 3;
159  } else {
160  continue;
161  }
162  }
163 
164  m_etlTrkPerCell[idet][id.rawId()].insert(simHit.trackId());
165 
166  auto simHitIt = m_etlHits[idet].emplace(id.rawId(), MTDHit()).first;
167 
168  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
169  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
170 
171  // --- Get the time of the first SIM hit in the cell
172  if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) {
173  (simHitIt->second).time = simHit.tof();
174 
175  auto hit_pos = simHit.entryPoint();
176  (simHitIt->second).x = hit_pos.x();
177  (simHitIt->second).y = hit_pos.y();
178  (simHitIt->second).z = hit_pos.z();
179  }
180 
181  } // simHit loop
182 
183  // ==============================================================================
184  // Histogram filling
185  // ==============================================================================
186 
187  for (int idet = 0; idet < 4; ++idet) { //two disks per side
188  if (((idet == 1) || (idet == 3)) && (topo1Dis == true))
189  continue;
190  meNhits_[idet]->Fill(m_etlHits[idet].size());
191 
192  for (auto const& hit : m_etlTrkPerCell[idet]) {
193  meNtrkPerCell_[idet]->Fill((hit.second).size());
194  }
195 
196  for (auto const& hit : m_etlHits[idet]) {
197  if (topo1Dis) {
198  if ((hit.second).energy < hitMinEnergy1Dis_)
199  continue;
200  }
201  if (topo2Dis) {
202  if ((hit.second).energy < hitMinEnergy2Dis_)
203  continue;
204  }
205  // --- Get the SIM hit global position
206  ETLDetId detId(hit.first);
207  DetId geoId = detId.geographicalId();
208  const MTDGeomDet* thedet = geom->idToDet(geoId);
209  if (thedet == nullptr)
210  throw cms::Exception("EtlSimHitsValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
211  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
212 
213  Local3DPoint local_point(
214  convertMmToCm((hit.second).x), convertMmToCm((hit.second).y), convertMmToCm((hit.second).z));
215  const auto& global_point = thedet->toGlobal(local_point);
216 
217  // --- Fill the histograms
218  meHitEnergy_[idet]->Fill((hit.second).energy);
219  meHitTime_[idet]->Fill((hit.second).time);
220  meHitXlocal_[idet]->Fill((hit.second).x);
221  meHitYlocal_[idet]->Fill((hit.second).y);
222  meHitZlocal_[idet]->Fill((hit.second).z);
223  meOccupancy_[idet]->Fill(global_point.x(), global_point.y());
224  meHitX_[idet]->Fill(global_point.x());
225  meHitY_[idet]->Fill(global_point.y());
226  meHitZ_[idet]->Fill(global_point.z());
227  meHitPhi_[idet]->Fill(global_point.phi());
228  meHitEta_[idet]->Fill(global_point.eta());
229  meHitTvsE_[idet]->Fill((hit.second).energy, (hit.second).time);
230  meHitEvsPhi_[idet]->Fill(global_point.phi(), (hit.second).energy);
231  meHitEvsEta_[idet]->Fill(global_point.eta(), (hit.second).energy);
232  meHitTvsPhi_[idet]->Fill(global_point.phi(), (hit.second).time);
233  meHitTvsEta_[idet]->Fill(global_point.eta(), (hit.second).time);
234 
235  } // hit loop
236 
237  } // idet loop
238 }

References MTDTopologyMode::barphiflat, geant_units::operators::convertMmToCm(), geant_units::operators::convertUnitsTo(), TauDecayModes::dec, HCALHighEnergyHPDFilter_cfi::energy, etlSimHitsToken_, Exception, dqm::impl::MonitorElement::Fill(), ETLDetId::geographicalId(), relativeConstraints::geom, edm::EventSetup::get(), get, hitMinEnergy1Dis_, hitMinEnergy2Dis_, iEvent, edm::makeValid(), meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitPhi_, meHitTime_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meNhits_, meNtrkPerCell_, meOccupancy_, edm::ESHandle< T >::product(), DetId::rawId(), rpcPointValidation_cfi::simHit, findQualityFiles::size, ntuplemaker::time, GeomDet::toGlobal(), ecaldqm::topology(), x, y, z, and ecaldqm::zside().

◆ bookHistograms()

void EtlSimHitsValidation::bookHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 241 of file EtlSimHitsValidation.cc.

243  {
244  ibook.setCurrentFolder(folder_);
245 
246  // --- histograms booking
247 
248  meNhits_[0] = ibook.book1D("EtlNhitsZnegD1",
249  "Number of ETL cells with SIM hits (-Z, Single(topo1D)/First(topo2D) disk);N_{ETL cells}",
250  100,
251  0.,
252  5000.);
253  meNhits_[1] = ibook.book1D(
254  "EtlNhitsZnegD2", "Number of ETL cells with SIM hits (-Z, Second disk);N_{ETL cells}", 100, 0., 5000.);
255  meNhits_[2] = ibook.book1D("EtlNhitsZposD1",
256  "Number of ETL cells with SIM hits (+Z, Single(topo1D)/First(topo2D) disk);N_{ETL cells}",
257  100,
258  0.,
259  5000.);
260  meNhits_[3] = ibook.book1D(
261  "EtlNhitsZposD2", "Number of ETL cells with SIM hits (+Z, Second Disk);N_{ETL cells}", 100, 0., 5000.);
262  meNtrkPerCell_[0] = ibook.book1D("EtlNtrkPerCellZnegD1",
263  "Number of tracks per ETL sensor (-Z, Single(topo1D)/First(topo2D) disk);N_{trk}",
264  10,
265  0.,
266  10.);
267  meNtrkPerCell_[1] =
268  ibook.book1D("EtlNtrkPerCellZnegD2", "Number of tracks per ETL sensor (-Z, Second disk);N_{trk}", 10, 0., 10.);
269  meNtrkPerCell_[2] = ibook.book1D("EtlNtrkPerCellZposD1",
270  "Number of tracks per ETL sensor (+Z, Single(topo1D)/First(topo2D) disk);N_{trk}",
271  10,
272  0.,
273  10.);
274  meNtrkPerCell_[3] =
275  ibook.book1D("EtlNtrkPerCellZposD2", "Number of tracks per ETL sensor (+Z, Second disk);N_{trk}", 10, 0., 10.);
276 
277  meHitEnergy_[0] = ibook.book1D(
278  "EtlHitEnergyZnegD1", "ETL SIM hits energy (-Z, Single(topo1D)/First(topo2D) disk);E_{SIM} [MeV]", 100, 0., 3.);
279  meHitEnergy_[1] =
280  ibook.book1D("EtlHitEnergyZnegD2", "ETL SIM hits energy (-Z, Second disk);E_{SIM} [MeV]", 100, 0., 3.);
281  meHitEnergy_[2] = ibook.book1D(
282  "EtlHitEnergyZposD1", "ETL SIM hits energy (+Z, Single(topo1D)/First(topo2D) disk);E_{SIM} [MeV]", 100, 0., 3.);
283  meHitEnergy_[3] =
284  ibook.book1D("EtlHitEnergyZposD2", "ETL SIM hits energy (+Z, Second disk);E_{SIM} [MeV]", 100, 0., 3.);
285  meHitTime_[0] = ibook.book1D(
286  "EtlHitTimeZnegD1", "ETL SIM hits ToA (-Z, Single(topo1D)/First(topo2D) disk);ToA_{SIM} [ns]", 100, 0., 25.);
287  meHitTime_[1] = ibook.book1D("EtlHitTimeZnegD2", "ETL SIM hits ToA (-Z, Second disk);ToA_{SIM} [ns]", 100, 0., 25.);
288  meHitTime_[2] = ibook.book1D(
289  "EtlHitTimeZposD1", "ETL SIM hits ToA (+Z, Single(topo1D)/First(topo2D) disk);ToA_{SIM} [ns]", 100, 0., 25.);
290  meHitTime_[3] = ibook.book1D("EtlHitTimeZposD2", "ETL SIM hits ToA (+Z, Second disk);ToA_{SIM} [ns]", 100, 0., 25.);
291 
292  meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZnegD1",
293  "ETL SIM local X (-Z, Single(topo1D)/First(topo2D) disk);X_{SIM}^{LOC} [mm]",
294  100,
295  -25.,
296  25.);
297  meHitXlocal_[1] =
298  ibook.book1D("EtlHitXlocalZnegD2", "ETL SIM local X (-Z, Second disk);X_{SIM}^{LOC} [mm]", 100, -25., 25.);
299  meHitXlocal_[2] = ibook.book1D("EtlHitXlocalZposD1",
300  "ETL SIM local X (+Z, Single(topo1D)/First(topo2D) disk);X_{SIM}^{LOC} [mm]",
301  100,
302  -25.,
303  25.);
304  meHitXlocal_[3] =
305  ibook.book1D("EtlHitXlocalZposD2", "ETL SIM local X (+Z, Second disk);X_{SIM}^{LOC} [mm]", 100, -25., 25.);
306 
307  meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZnegD1",
308  "ETL SIM local Y (-Z, Single(topo1D)/First(topo2D) disk);Y_{SIM}^{LOC} [mm]",
309  100,
310  -48.,
311  48.);
312  meHitYlocal_[1] =
313  ibook.book1D("EtlHitYlocalZnegD2", "ETL SIM local Y (-Z, Second Disk);Y_{SIM}^{LOC} [mm]", 100, -48., 48.);
314  meHitYlocal_[2] = ibook.book1D("EtlHitYlocalZposD1",
315  "ETL SIM local Y (+Z, Single(topo1D)/First(topo2D) disk);Y_{SIM}^{LOC} [mm]",
316  100,
317  -48.,
318  48.);
319  meHitYlocal_[3] =
320  ibook.book1D("EtlHitYlocalZposD2", "ETL SIM local Y (+Z, Second disk);Y_{SIM}^{LOC} [mm]", 100, -48., 48.);
321  meHitZlocal_[0] = ibook.book1D("EtlHitZlocalZnegD1",
322  "ETL SIM local Z (-Z, Single(topo1D)/First(topo2D) disk);Z_{SIM}^{LOC} [mm]",
323  80,
324  -0.16,
325  0.16);
326  meHitZlocal_[1] =
327  ibook.book1D("EtlHitZlocalZnegD2", "ETL SIM local Z (-Z, Second disk);Z_{SIM}^{LOC} [mm]", 80, -0.16, 0.16);
328  meHitZlocal_[2] = ibook.book1D("EtlHitZlocalZposD1",
329  "ETL SIM local Z (+Z, Single(topo1D)/First(topo2D) disk);Z_{SIM}^{LOC} [mm]",
330  80,
331  -0.16,
332  0.16);
333  meHitZlocal_[3] =
334  ibook.book1D("EtlHitZlocalZposD2", "ETL SIM local Z (+Z, Second disk);Z_{SIM}^{LOC} [mm]", 80, -0.16, 0.16);
335 
336  meOccupancy_[0] =
337  ibook.book2D("EtlOccupancyZnegD1",
338  "ETL SIM hits occupancy (-Z, Single(topo1D)/First(topo2D) disk);X_{SIM} [cm];Y_{SIM} [cm]",
339  135,
340  -135.,
341  135.,
342  135,
343  -135.,
344  135.);
345  meOccupancy_[1] = ibook.book2D("EtlOccupancyZnegD2",
346  "ETL SIM hits occupancy (-Z, Second disk);X_{SIM} [cm];Y_{SIM} [cm]",
347  135,
348  -135.,
349  135.,
350  135,
351  -135.,
352  135.);
353  meOccupancy_[2] =
354  ibook.book2D("EtlOccupancyZposD1",
355  "ETL SIM hits occupancy (+Z, Single(topo1D)/First(topo2D) disk);X_{SIM} [cm];Y_{SIM} [cm]",
356  135,
357  -135.,
358  135.,
359  135,
360  -135.,
361  135.);
362  meOccupancy_[3] = ibook.book2D("EtlOccupancyZposD2",
363  "ETL SIM hits occupancy (+Z, Second disk);X_{SIM} [cm];Y_{SIM} [cm]",
364  135,
365  -135.,
366  135.,
367  135,
368  -135.,
369  135.);
370 
371  meHitX_[0] = ibook.book1D(
372  "EtlHitXZnegD1", "ETL SIM hits X (+Z, Single(topo1D)/First(topo2D) disk);X_{SIM} [cm]", 100, -130., 130.);
373  meHitX_[1] = ibook.book1D("EtlHitXZnegD2", "ETL SIM hits X (-Z, Second disk);X_{SIM} [cm]", 100, -130., 130.);
374  meHitX_[2] = ibook.book1D(
375  "EtlHitXZposD1", "ETL SIM hits X (+Z, Single(topo1D)/First(topo2D) disk);X_{SIM} [cm]", 100, -130., 130.);
376  meHitX_[3] = ibook.book1D("EtlHitXZposD2", "ETL SIM hits X (+Z, Second disk);X_{SIM} [cm]", 100, -130., 130.);
377  meHitY_[0] = ibook.book1D(
378  "EtlHitYZnegD1", "ETL SIM hits Y (-Z, Single(topo1D)/First(topo2D) disk);Y_{SIM} [cm]", 100, -130., 130.);
379  meHitY_[1] = ibook.book1D("EtlHitYZnegD2", "ETL SIM hits Y (-Z, Second disk);Y_{SIM} [cm]", 100, -130., 130.);
380  meHitY_[2] = ibook.book1D(
381  "EtlHitYZposD1", "ETL SIM hits Y (+Z, Single(topo1D)/First(topo2D) disk);Y_{SIM} [cm]", 100, -130., 130.);
382  meHitY_[3] = ibook.book1D("EtlHitYZposD2", "ETL SIM hits Y (+Z, Second disk);Y_{SIM} [cm]", 100, -130., 130.);
383  meHitZ_[0] = ibook.book1D(
384  "EtlHitZZnegD1", "ETL SIM hits Z (-Z, Single(topo1D)/First(topo2D) disk);Z_{SIM} [cm]", 100, -304.2, -303.4);
385  meHitZ_[1] = ibook.book1D("EtlHitZZnegD2", "ETL SIM hits Z (-Z, Second disk);Z_{SIM} [cm]", 100, -304.2, -303.4);
386  meHitZ_[2] = ibook.book1D(
387  "EtlHitZZposD1", "ETL SIM hits Z (+Z, Single(topo1D)/First(topo2D) disk);Z_{SIM} [cm]", 100, 303.4, 304.2);
388  meHitZ_[3] = ibook.book1D("EtlHitZZposD2", "ETL SIM hits Z (+Z, Second disk);Z_{SIM} [cm]", 100, 303.4, 304.2);
389 
390  meHitPhi_[0] = ibook.book1D(
391  "EtlHitPhiZnegD1", "ETL SIM hits #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad]", 100, -3.15, 3.15);
392  meHitPhi_[1] =
393  ibook.book1D("EtlHitPhiZnegD2", "ETL SIM hits #phi (-Z, Second disk);#phi_{SIM} [rad]", 100, -3.15, 3.15);
394  meHitPhi_[2] = ibook.book1D(
395  "EtlHitPhiZposD1", "ETL SIM hits #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad]", 100, -3.15, 3.15);
396  meHitPhi_[3] =
397  ibook.book1D("EtlHitPhiZposD2", "ETL SIM hits #phi (+Z, Second disk);#phi_{SIM} [rad]", 100, -3.15, 3.15);
398  meHitEta_[0] = ibook.book1D(
399  "EtlHitEtaZnegD1", "ETL SIM hits #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM}", 100, -3.2, -1.56);
400  meHitEta_[1] = ibook.book1D("EtlHitEtaZnegD2", "ETL SIM hits #eta (-Z, Second disk);#eta_{SIM}", 100, -3.2, -1.56);
401  meHitEta_[2] = ibook.book1D(
402  "EtlHitEtaZposD1", "ETL SIM hits #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM}", 100, 1.56, 3.2);
403  meHitEta_[3] = ibook.book1D("EtlHitEtaZposD2", "ETL SIM hits #eta (+Z, Second disk);#eta_{SIM}", 100, 1.56, 3.2);
404 
405  meHitTvsE_[0] =
406  ibook.bookProfile("EtlHitTvsEZnegD1",
407  "ETL SIM time vs energy (-Z, Single(topo1D)/First(topo2D) disk);E_{SIM} [MeV];T_{SIM} [ns]",
408  50,
409  0.,
410  2.,
411  0.,
412  100.);
413  meHitTvsE_[1] = ibook.bookProfile(
414  "EtlHitTvsEZnegD2", "ETL SIM time vs energy (-Z, Second disk);E_{SIM} [MeV];T_{SIM} [ns]", 50, 0., 2., 0., 100.);
415  meHitTvsE_[2] =
416  ibook.bookProfile("EtlHitTvsEZposD1",
417  "ETL SIM time vs energy (+Z, Single(topo1D)/First(topo2D) disk);E_{SIM} [MeV];T_{SIM} [ns]",
418  50,
419  0.,
420  2.,
421  0.,
422  100.);
423  meHitTvsE_[3] = ibook.bookProfile(
424  "EtlHitTvsEZposD2", "ETL SIM time vs energy (+Z, Second disk);E_{SIM} [MeV];T_{SIM} [ns]", 50, 0., 2., 0., 100.);
425  meHitEvsPhi_[0] =
426  ibook.bookProfile("EtlHitEvsPhiZnegD1",
427  "ETL SIM energy vs #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad];E_{SIM} [MeV]",
428  50,
429  -3.15,
430  3.15,
431  0.,
432  100.);
433  meHitEvsPhi_[1] = ibook.bookProfile("EtlHitEvsPhiZnegD2",
434  "ETL SIM energy vs #phi (-Z, Second disk);#phi_{SIM} [rad];E_{SIM} [MeV]",
435  50,
436  -3.15,
437  3.15,
438  0.,
439  100.);
440  meHitEvsPhi_[2] =
441  ibook.bookProfile("EtlHitEvsPhiZposD1",
442  "ETL SIM energy vs #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad];E_{SIM} [MeV]",
443  50,
444  -3.15,
445  3.15,
446  0.,
447  100.);
448  meHitEvsPhi_[3] = ibook.bookProfile("EtlHitEvsPhiZposD2",
449  "ETL SIM energy vs #phi (+Z, Second disk);#phi_{SIM} [rad];E_{SIM} [MeV]",
450  50,
451  -3.15,
452  3.15,
453  0.,
454  100.);
455  meHitEvsEta_[0] =
456  ibook.bookProfile("EtlHitEvsEtaZnegD1",
457  "ETL SIM energy vs #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM};E_{SIM} [MeV]",
458  50,
459  -3.2,
460  -1.56,
461  0.,
462  100.);
463  meHitEvsEta_[1] = ibook.bookProfile("EtlHitEvsEtaZnegD2",
464  "ETL SIM energy vs #eta (-Z, Second disk);#eta_{SIM};E_{SIM} [MeV]",
465  50,
466  -3.2,
467  -1.56,
468  0.,
469  100.);
470  meHitEvsEta_[2] =
471  ibook.bookProfile("EtlHitEvsEtaZposD1",
472  "ETL SIM energy vs #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM};E_{SIM} [MeV]",
473  50,
474  1.56,
475  3.2,
476  0.,
477  100.);
478  meHitEvsEta_[3] = ibook.bookProfile("EtlHitEvsEtaZposD2",
479  "ETL SIM energy vs #eta (+Z, Second disk);#eta_{SIM};E_{SIM} [MeV]",
480  50,
481  1.56,
482  3.2,
483  0.,
484  100.);
485  meHitTvsPhi_[0] =
486  ibook.bookProfile("EtlHitTvsPhiZnegD1",
487  "ETL SIM time vs #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad];T_{SIM} [ns]",
488  50,
489  -3.15,
490  3.15,
491  0.,
492  100.);
493  meHitTvsPhi_[1] = ibook.bookProfile("EtlHitTvsPhiZnegD2",
494  "ETL SIM time vs #phi (-Z, Second disk);#phi_{SIM} [rad];T_{SIM} [ns]",
495  50,
496  -3.15,
497  3.15,
498  0.,
499  100.);
500  meHitTvsPhi_[2] =
501  ibook.bookProfile("EtlHitTvsPhiZposD1",
502  "ETL SIM time vs #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{SIM} [rad];T_{SIM} [ns]",
503  50,
504  -3.15,
505  3.15,
506  0.,
507  100.);
508  meHitTvsPhi_[3] = ibook.bookProfile("EtlHitTvsPhiZposD2",
509  "ETL SIM time vs #phi (+Z, Second disk);#phi_{SIM} [rad];T_{SIM} [ns]",
510  50,
511  -3.15,
512  3.15,
513  0.,
514  100.);
515  meHitTvsEta_[0] =
516  ibook.bookProfile("EtlHitTvsEtaZnegD1",
517  "ETL SIM time vs #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM};T_{SIM} [ns]",
518  50,
519  -3.2,
520  -1.56,
521  0.,
522  100.);
523  meHitTvsEta_[1] = ibook.bookProfile(
524  "EtlHitTvsEtaZnegD2", "ETL SIM time vs #eta (-Z, Second disk);#eta_{SIM};T_{SIM} [ns]", 50, -3.2, -1.56, 0., 100.);
525  meHitTvsEta_[2] =
526  ibook.bookProfile("EtlHitTvsEtaZposD1",
527  "ETL SIM time vs #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{SIM};T_{SIM} [ns]",
528  50,
529  1.56,
530  3.2,
531  0.,
532  100.);
533  meHitTvsEta_[3] = ibook.bookProfile(
534  "EtlHitTvsEtaZposD2", "ETL SIM time vs #eta (+Z, Second disk);#eta_{SIM};T_{SIM} [ns]", 50, 1.56, 3.2, 0., 100.);
535 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), folder_, meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitPhi_, meHitTime_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meNhits_, meNtrkPerCell_, meOccupancy_, and dqm::implementation::NavigatorBase::setCurrentFolder().

◆ fillDescriptions()

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

Definition at line 538 of file EtlSimHitsValidation.cc.

538  {
540 
541  desc.add<std::string>("folder", "MTD/ETL/SimHits");
542  desc.add<edm::InputTag>("inputTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
543  desc.add<double>("hitMinimumEnergy1Dis", 0.1); // [MeV]
544  desc.add<double>("hitMinimumEnergy2Dis", 0.001); // [MeV]
545 
546  descriptions.add("etlSimHits", desc);
547 }

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

Member Data Documentation

◆ etlSimHitsToken_

edm::EDGetTokenT<CrossingFrame<PSimHit> > EtlSimHitsValidation::etlSimHitsToken_
private

Definition at line 63 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and EtlSimHitsValidation().

◆ folder_

const std::string EtlSimHitsValidation::folder_
private

Definition at line 59 of file EtlSimHitsValidation.cc.

Referenced by bookHistograms().

◆ hitMinEnergy1Dis_

const float EtlSimHitsValidation::hitMinEnergy1Dis_
private

Definition at line 60 of file EtlSimHitsValidation.cc.

Referenced by analyze().

◆ hitMinEnergy2Dis_

const float EtlSimHitsValidation::hitMinEnergy2Dis_
private

Definition at line 61 of file EtlSimHitsValidation.cc.

Referenced by analyze().

◆ meHitEnergy_

MonitorElement* EtlSimHitsValidation::meHitEnergy_[4]
private

Definition at line 70 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEta_

MonitorElement* EtlSimHitsValidation::meHitEta_[4]
private

Definition at line 83 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEvsEta_

MonitorElement* EtlSimHitsValidation::meHitEvsEta_[4]
private

Definition at line 87 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEvsPhi_

MonitorElement* EtlSimHitsValidation::meHitEvsPhi_[4]
private

Definition at line 86 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitPhi_

MonitorElement* EtlSimHitsValidation::meHitPhi_[4]
private

Definition at line 82 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTime_

MonitorElement* EtlSimHitsValidation::meHitTime_[4]
private

Definition at line 71 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsE_

MonitorElement* EtlSimHitsValidation::meHitTvsE_[4]
private

Definition at line 85 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsEta_

MonitorElement* EtlSimHitsValidation::meHitTvsEta_[4]
private

Definition at line 89 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsPhi_

MonitorElement* EtlSimHitsValidation::meHitTvsPhi_[4]
private

Definition at line 88 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitX_

MonitorElement* EtlSimHitsValidation::meHitX_[4]
private

Definition at line 79 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitXlocal_

MonitorElement* EtlSimHitsValidation::meHitXlocal_[4]
private

Definition at line 73 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitY_

MonitorElement* EtlSimHitsValidation::meHitY_[4]
private

Definition at line 80 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitYlocal_

MonitorElement* EtlSimHitsValidation::meHitYlocal_[4]
private

Definition at line 74 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZ_

MonitorElement* EtlSimHitsValidation::meHitZ_[4]
private

Definition at line 81 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZlocal_

MonitorElement* EtlSimHitsValidation::meHitZlocal_[4]
private

Definition at line 75 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meNhits_

MonitorElement* EtlSimHitsValidation::meNhits_[4]
private

Definition at line 67 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meNtrkPerCell_

MonitorElement* EtlSimHitsValidation::meNtrkPerCell_[4]
private

Definition at line 68 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meOccupancy_

MonitorElement* EtlSimHitsValidation::meOccupancy_[4]
private

Definition at line 77 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MTDDigiGeometryRecord
Definition: MTDDigiGeometryRecord.h:15
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
DDAxes::y
EtlSimHitsValidation::meNhits_
MonitorElement * meNhits_[4]
Definition: EtlSimHitsValidation.cc:67
EtlSimHitsValidation::etlSimHitsToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
Definition: EtlSimHitsValidation.cc:63
EtlSimHitsValidation::folder_
const std::string folder_
Definition: EtlSimHitsValidation.cc:59
EtlSimHitsValidation::meHitZlocal_
MonitorElement * meHitZlocal_[4]
Definition: EtlSimHitsValidation.cc:75
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
EtlSimHitsValidation::meHitX_
MonitorElement * meHitX_[4]
Definition: EtlSimHitsValidation.cc:79
EtlSimHitsValidation::meHitTvsEta_
MonitorElement * meHitTvsEta_[4]
Definition: EtlSimHitsValidation.cc:89
geant_units::operators::convertUnitsTo
constexpr NumType convertUnitsTo(long double desiredUnits, NumType val)
Definition: GeantUnits.h:87
edm
HLT enums.
Definition: AlignableModifier.h:19
EtlSimHitsValidation::meHitY_
MonitorElement * meHitY_[4]
Definition: EtlSimHitsValidation.cc:80
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrackerGeomDet
Definition: TrackerGeomDet.h:6
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MTDTopologyMode::Mode::barphiflat
EtlSimHitsValidation::meHitXlocal_
MonitorElement * meHitXlocal_[4]
Definition: EtlSimHitsValidation.cc:73
EtlSimHitsValidation::meHitEvsEta_
MonitorElement * meHitEvsEta_[4]
Definition: EtlSimHitsValidation.cc:87
ETLDetId
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
DDAxes::x
EtlSimHitsValidation::meHitEvsPhi_
MonitorElement * meHitEvsPhi_[4]
Definition: EtlSimHitsValidation.cc:86
geant_units::operators
Definition: GeantUnits.h:18
EtlSimHitsValidation::meHitZ_
MonitorElement * meHitZ_[4]
Definition: EtlSimHitsValidation.cc:81
DetId
Definition: DetId.h:17
EtlSimHitsValidation::meOccupancy_
MonitorElement * meOccupancy_[4]
Definition: EtlSimHitsValidation.cc:77
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
EtlSimHitsValidation::meHitPhi_
MonitorElement * meHitPhi_[4]
Definition: EtlSimHitsValidation.cc:82
MixCollection
Definition: MixCollection.h:11
ecaldqm::topology
const CaloTopology * topology(nullptr)
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
DDAxes::z
EtlSimHitsValidation::meHitYlocal_
MonitorElement * meHitYlocal_[4]
Definition: EtlSimHitsValidation.cc:74
edm::ESHandle
Definition: DTSurvey.h:22
EtlSimHitsValidation::hitMinEnergy2Dis_
const float hitMinEnergy2Dis_
Definition: EtlSimHitsValidation.cc:61
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
EtlSimHitsValidation::meHitEta_
MonitorElement * meHitEta_[4]
Definition: EtlSimHitsValidation.cc:83
EtlSimHitsValidation::meHitTvsPhi_
MonitorElement * meHitTvsPhi_[4]
Definition: EtlSimHitsValidation.cc:88
Point3DBase< float, LocalTag >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MTDTopology
Definition: MTDTopology.h:16
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
MTDTopologyRcd
Definition: MTDTopologyRcd.h:10
iEvent
int iEvent
Definition: GenABIO.cc:224
EtlSimHitsValidation::meNtrkPerCell_
MonitorElement * meNtrkPerCell_[4]
Definition: EtlSimHitsValidation.cc:68
EtlSimHitsValidation::meHitTime_
MonitorElement * meHitTime_[4]
Definition: EtlSimHitsValidation.cc:71
edm::makeValid
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
get
#define get
MTDGeometry
Definition: MTDGeometry.h:14
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
EtlSimHitsValidation::meHitEnergy_
MonitorElement * meHitEnergy_[4]
Definition: EtlSimHitsValidation.cc:70
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
EtlSimHitsValidation::hitMinEnergy1Dis_
const float hitMinEnergy1Dis_
Definition: EtlSimHitsValidation.cc:60
Exception
Definition: hltDiff.cc:246
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
geant_units::operators::convertMmToCm
constexpr NumType convertMmToCm(NumType millimeters)
Definition: GeantUnits.h:62
ntuplemaker.time
time
Definition: ntuplemaker.py:310
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
hit
Definition: SiStripHitEffFromCalibTree.cc:88
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
EtlSimHitsValidation::meHitTvsE_
MonitorElement * meHitTvsE_[4]
Definition: EtlSimHitsValidation.cc:85
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MTDHit
Definition: BtlLocalRecoValidation.cc:44