CMS 3D CMS Logo

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

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

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

Public Member Functions

 EtlDigiHitsValidation (const edm::ParameterSet &)
 
 ~EtlDigiHitsValidation () 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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

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< ETLDigiCollectionetlDigiHitsToken_
 
const std::string folder_
 
const bool LocalPosDebug_
 
MonitorElementmeHitCharge_ [4]
 
MonitorElementmeHitEta_ [4]
 
MonitorElementmeHitPhi_ [4]
 
MonitorElementmeHitQvsEta_ [4]
 
MonitorElementmeHitQvsPhi_ [4]
 
MonitorElementmeHitTime_ [4]
 
MonitorElementmeHitTvsEta_ [4]
 
MonitorElementmeHitTvsPhi_ [4]
 
MonitorElementmeHitTvsQ_ [4]
 
MonitorElementmeHitX_ [4]
 
MonitorElementmeHitXlocal_ [2]
 
MonitorElementmeHitY_ [4]
 
MonitorElementmeHitYlocal_ [2]
 
MonitorElementmeHitZ_ [4]
 
MonitorElementmeLocalOccupancy_ [2]
 
MonitorElementmeNhits_ [4]
 
MonitorElementmeOccupancy_ [4]
 
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecordmtdgeoToken_
 
edm::ESGetToken< MTDTopology, MTDTopologyRcdmtdtopoToken_
 

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 >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::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 DIGI hits validation

Implementation: [Notes on implementation]

Definition at line 34 of file EtlDigiHitsValidation.cc.

Constructor & Destructor Documentation

◆ EtlDigiHitsValidation()

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

Definition at line 83 of file EtlDigiHitsValidation.cc.

References etlDigiHitsToken_, edm::ParameterSet::getParameter(), mtdgeoToken_, and mtdtopoToken_.

84  : folder_(iConfig.getParameter<std::string>("folder")),
85  LocalPosDebug_(iConfig.getParameter<bool>("LocalPositionDebug")) {
86  etlDigiHitsToken_ = consumes<ETLDigiCollection>(iConfig.getParameter<edm::InputTag>("inputTag"));
87  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
88  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
89 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< ETLDigiCollection > etlDigiHitsToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_

◆ ~EtlDigiHitsValidation()

EtlDigiHitsValidation::~EtlDigiHitsValidation ( )
override

Definition at line 91 of file EtlDigiHitsValidation.cc.

91 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 94 of file EtlDigiHitsValidation.cc.

References MTDTopologyMode::barphiflat, TauDecayModes::dec, ETLDetId::discSide(), etlDigiHitsToken_, Exception, dqm::impl::MonitorElement::Fill(), ETLDetId::geographicalId(), relativeConstraints::geom, MTDTopology::getMTDTopologyMode(), edm::EventSetup::getTransientHandle(), mps_fire::i, iEvent, LocalPosDebug_, PixelTopology::localX(), PixelTopology::localY(), edm::makeValid(), meHitCharge_, meHitEta_, meHitPhi_, meHitQvsEta_, meHitQvsPhi_, meHitTime_, meHitTvsEta_, meHitTvsPhi_, meHitTvsQ_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meLocalOccupancy_, meNhits_, meOccupancy_, mtdgeoToken_, mtdtopoToken_, ETLDetId::nDisc(), DetId::rawId(), ecalGpuTask_cfi::sample, GeomDet::toGlobal(), GeomDet::topology(), mps_merge::weight, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and MTDDetId::zside().

94  {
95  using namespace edm;
96 
97  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
98  const MTDGeometry* geom = geometryHandle.product();
99 
100  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
101  const MTDTopology* topology = topologyHandle.product();
102 
103  bool topo1Dis = false;
104  bool topo2Dis = false;
105  if (topology->getMTDTopologyMode() <= static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
106  topo1Dis = true;
107  }
108  if (topology->getMTDTopologyMode() > static_cast<int>(MTDTopologyMode::Mode::barphiflat)) {
109  topo2Dis = true;
110  }
111 
112  auto etlDigiHitsHandle = makeValid(iEvent.getHandle(etlDigiHitsToken_));
113 
114  // --- Loop over the ETL DIGI hits
115 
116  unsigned int n_digi_etl[4] = {0, 0, 0, 0};
117 
118  for (const auto& dataFrame : *etlDigiHitsHandle) {
119  // --- Get the on-time sample
120  int isample = 2;
121  double weight = 1.0;
122  const auto& sample = dataFrame.sample(isample);
123  ETLDetId detId = dataFrame.id();
124  DetId geoId = detId.geographicalId();
125 
126  const MTDGeomDet* thedet = geom->idToDet(geoId);
127  if (thedet == nullptr)
128  throw cms::Exception("EtlDigiHitsValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
129  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
130  const PixelTopology& topo = static_cast<const PixelTopology&>(thedet->topology());
131 
132  Local3DPoint local_point(topo.localX(sample.row()), topo.localY(sample.column()), 0.);
133  const auto& global_point = thedet->toGlobal(local_point);
134 
135  // --- Fill the histograms
136 
137  int idet = 999;
138 
139  if (topo1Dis) {
140  if (detId.zside() == -1) {
141  idet = 0;
142  } else if (detId.zside() == 1) {
143  idet = 2;
144  } else {
145  continue;
146  }
147  }
148 
149  if (topo2Dis) {
150  if (detId.discSide() == 1) {
151  weight = -weight;
152  }
153  if ((detId.zside() == -1) && (detId.nDisc() == 1)) {
154  idet = 0;
155  } else if ((detId.zside() == -1) && (detId.nDisc() == 2)) {
156  idet = 1;
157  } else if ((detId.zside() == 1) && (detId.nDisc() == 1)) {
158  idet = 2;
159  } else if ((detId.zside() == 1) && (detId.nDisc() == 2)) {
160  idet = 3;
161  } else {
162  continue;
163  }
164  }
165 
166  meHitCharge_[idet]->Fill(sample.data());
167  meHitTime_[idet]->Fill(sample.toa());
168  meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight);
169 
170  if (LocalPosDebug_) {
171  if ((idet == 0) || (idet == 1)) {
172  meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y());
173  meHitXlocal_[0]->Fill(local_point.x());
174  meHitYlocal_[0]->Fill(local_point.y());
175 
176  } else if ((idet == 2) || (idet == 3)) {
177  meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y());
178  meHitXlocal_[1]->Fill(local_point.x());
179  meHitYlocal_[1]->Fill(local_point.y());
180  }
181  }
182 
183  meHitX_[idet]->Fill(global_point.x());
184  meHitY_[idet]->Fill(global_point.y());
185  meHitZ_[idet]->Fill(global_point.z());
186  meHitPhi_[idet]->Fill(global_point.phi());
187  meHitEta_[idet]->Fill(global_point.eta());
188 
189  meHitTvsQ_[idet]->Fill(sample.data(), sample.toa());
190  meHitQvsPhi_[idet]->Fill(global_point.phi(), sample.data());
191  meHitQvsEta_[idet]->Fill(global_point.eta(), sample.data());
192  meHitTvsPhi_[idet]->Fill(global_point.phi(), sample.toa());
193  meHitTvsEta_[idet]->Fill(global_point.eta(), sample.toa());
194 
195  n_digi_etl[idet]++;
196 
197  } // dataFrame loop
198 
199  if (topo1Dis) {
200  meNhits_[0]->Fill(n_digi_etl[0]);
201  meNhits_[2]->Fill(n_digi_etl[2]);
202  }
203 
204  if (topo2Dis) {
205  for (int i = 0; i < 4; i++) {
206  meNhits_[i]->Fill(n_digi_etl[i]);
207  }
208  }
209 }
MonitorElement * meHitQvsPhi_[4]
int getMTDTopologyMode() const
Definition: MTDTopology.h:27
MonitorElement * meHitXlocal_[2]
virtual const Topology & topology() const
Definition: GeomDet.cc:67
MonitorElement * meHitEta_[4]
Definition: weight.py:1
edm::EDGetTokenT< ETLDigiCollection > etlDigiHitsToken_
ETLDetId geographicalId() const
Definition: ETLDetId.h:108
MonitorElement * meNhits_[4]
void Fill(long long x)
virtual float localX(float mpX) const =0
MonitorElement * meOccupancy_[4]
MonitorElement * meHitTvsQ_[4]
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meLocalOccupancy_[2]
MonitorElement * meHitQvsEta_[4]
MonitorElement * meHitCharge_[4]
MonitorElement * meHitY_[4]
MonitorElement * meHitTime_[4]
MonitorElement * meHitYlocal_[2]
MonitorElement * meHitTvsEta_[4]
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
MonitorElement * meHitX_[4]
MonitorElement * meHitZ_[4]
Definition: DetId.h:17
int discSide() const
Definition: ETLDetId.h:117
virtual float localY(float mpY) const =0
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
int zside() const
Definition: MTDDetId.h:61
MonitorElement * meHitTvsPhi_[4]
MonitorElement * meHitPhi_[4]
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
HLT enums.
int nDisc() const
Definition: ETLDetId.h:122
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:162
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 212 of file EtlDigiHitsValidation.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), folder_, LocalPosDebug_, meHitCharge_, meHitEta_, meHitPhi_, meHitQvsEta_, meHitQvsPhi_, meHitTime_, meHitTvsEta_, meHitTvsPhi_, meHitTvsQ_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meLocalOccupancy_, meNhits_, meOccupancy_, and dqm::implementation::NavigatorBase::setCurrentFolder().

214  {
215  ibook.setCurrentFolder(folder_);
216 
217  // --- histograms booking
218 
219  meNhits_[0] = ibook.book1D("EtlNhitsZnegD1",
220  "Number of ETL DIGI hits (-Z, Single(topo1D)/First(topo2D) disk);log_{10}(N_{DIGI})",
221  100,
222  0.,
223  5000.);
224  meNhits_[1] =
225  ibook.book1D("EtlNhitsZnegD2", "Number of ETL DIGI hits (-Z, Second disk);log_{10}(N_{DIGI})", 100, 0., 5000.);
226  meNhits_[2] = ibook.book1D("EtlNhitsZposD1",
227  "Number of ETL DIGI hits (+Z, Single(topo1D)/First(topo2D) disk);log_{10}(N_{DIGI})",
228  100,
229  0.,
230  5000.);
231  meNhits_[3] =
232  ibook.book1D("EtlNhitsZposD2", "Number of ETL DIGI hits (+Z, Second disk);log_{10}(N_{DIGI})", 100, 0., 5000.);
233 
234  meHitCharge_[0] = ibook.book1D("EtlHitChargeZnegD1",
235  "ETL DIGI hits charge (-Z, Single(topo1D)/First(topo2D) disk);Q_{DIGI} [ADC counts]",
236  100,
237  0.,
238  256.);
239  meHitCharge_[1] =
240  ibook.book1D("EtlHitChargeZnegD2", "ETL DIGI hits charge (-Z, Second disk);Q_{DIGI} [ADC counts]", 100, 0., 256.);
241  meHitCharge_[2] = ibook.book1D("EtlHitChargeZposD1",
242  "ETL DIGI hits charge (+Z, Single(topo1D)/First(topo2D) disk);Q_{DIGI} [ADC counts]",
243  100,
244  0.,
245  256.);
246  meHitCharge_[3] =
247  ibook.book1D("EtlHitChargeZposD2", "ETL DIGI hits charge (+Z, Second disk);Q_{DIGI} [ADC counts]", 100, 0., 256.);
248  meHitTime_[0] = ibook.book1D("EtlHitTimeZnegD1",
249  "ETL DIGI hits ToA (-Z, Single(topo1D)/First(topo2D) disk);ToA_{DIGI} [TDC counts]",
250  100,
251  0.,
252  2000.);
253  meHitTime_[1] =
254  ibook.book1D("EtlHitTimeZnegD2", "ETL DIGI hits ToA (-Z, Second disk);ToA_{DIGI} [TDC counts]", 100, 0., 2000.);
255  meHitTime_[2] = ibook.book1D("EtlHitTimeZposD1",
256  "ETL DIGI hits ToA (+Z, Single(topo1D)/First(topo2D) disk);ToA_{DIGI} [TDC counts]",
257  100,
258  0.,
259  2000.);
260  meHitTime_[3] =
261  ibook.book1D("EtlHitTimeZposD2", "ETL DIGI hits ToA (+Z, Second disk);ToA_{DIGI} [TDC counts]", 100, 0., 2000.);
262 
263  meOccupancy_[0] =
264  ibook.book2D("EtlOccupancyZnegD1",
265  "ETL DIGI hits occupancy (-Z, Single(topo1D)/First(topo2D) disk);X_{DIGI} [cm];Y_{DIGI} [cm]",
266  135,
267  -135.,
268  135.,
269  135,
270  -135.,
271  135.);
272  meOccupancy_[1] = ibook.book2D("EtlOccupancyZnegD2",
273  "ETL DIGI hits occupancy (-Z, Second disk);X_{DIGI} [cm];Y_{DIGI} [cm]",
274  135,
275  -135.,
276  135.,
277  135,
278  -135.,
279  135.);
280  meOccupancy_[2] =
281  ibook.book2D("EtlOccupancyZposD1",
282  "ETL DIGI hits occupancy (+Z, Single(topo1D)/First(topo2D) disk);X_{DIGI} [cm];Y_{DIGI} [cm]",
283  135,
284  -135.,
285  135.,
286  135,
287  -135.,
288  135.);
289  meOccupancy_[3] = ibook.book2D("EtlOccupancyZposD2",
290  "ETL DIGI hits occupancy (+Z, Second disk);X_{DIGI} [cm];Y_{DIGI} [cm]",
291  135,
292  -135.,
293  135.,
294  135,
295  -135.,
296  135.);
297  if (LocalPosDebug_) {
298  meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg",
299  "ETL DIGI hits local occupancy (-Z);X_{DIGI} [cm];Y_{DIGI} [cm]",
300  100,
301  -2.2,
302  2.2,
303  50,
304  -1.1,
305  1.1);
306  meLocalOccupancy_[1] = ibook.book2D("EtlLocalOccupancyZpos",
307  "ETL DIGI hits local occupancy (+Z);X_{DIGI} [cm];Y_{DIGI} [cm]",
308  100,
309  -2.2,
310  2.2,
311  50,
312  -1.1,
313  1.1);
314  meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZneg", "ETL DIGI local X (-Z);X_{DIGI}^{LOC} [cm]", 100, -2.2, 2.2);
315  meHitXlocal_[1] = ibook.book1D("EtlHitXlocalZpos", "ETL DIGI local X (+Z);X_{DIGI}^{LOC} [cm]", 100, -2.2, 2.2);
316  meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZneg", "ETL DIGI local Y (-Z);Y_{DIGI}^{LOC} [cm]", 50, -1.1, 1.1);
317  meHitYlocal_[1] = ibook.book1D("EtlHitYlocalZpos", "ETL DIGI local Y (-Z);Y_{DIGI}^{LOC} [cm]", 50, -1.1, 1.1);
318  }
319  meHitX_[0] = ibook.book1D(
320  "EtlHitXZnegD1", "ETL DIGI hits X (-Z, Single(topo1D)/First(topo2D) disk);X_{DIGI} [cm]", 100, -130., 130.);
321  meHitX_[1] = ibook.book1D("EtlHitXZnegD2", "ETL DIGI hits X (-Z, Second disk);X_{DIGI} [cm]", 100, -130., 130.);
322  meHitX_[2] = ibook.book1D(
323  "EtlHitXZposD1", "ETL DIGI hits X (+Z, Single(topo1D)/First(topo2D) disk);X_{DIGI} [cm]", 100, -130., 130.);
324  meHitX_[3] = ibook.book1D("EtlHitXZposD2", "ETL DIGI hits X (+Z, Second disk);X_{DIGI} [cm]", 100, -130., 130.);
325  meHitY_[0] = ibook.book1D(
326  "EtlHitYZnegD1", "ETL DIGI hits Y (-Z, Single(topo1D)/First(topo2D) disk);Y_{DIGI} [cm]", 100, -130., 130.);
327  meHitY_[1] = ibook.book1D("EtlHitYZnegD2", "ETL DIGI hits Y (-Z, Second disk);Y_{DIGI} [cm]", 100, -130., 130.);
328  meHitY_[2] = ibook.book1D(
329  "EtlHitYZposD1", "ETL DIGI hits Y (+Z, Single(topo1D)/First(topo2D) disk);Y_{DIGI} [cm]", 100, -130., 130.);
330  meHitY_[3] = ibook.book1D("EtlHitYZposD2", "ETL DIGI hits Y (+Z, Second disk);Y_{DIGI} [cm]", 100, -130., 130.);
331  meHitZ_[0] = ibook.book1D(
332  "EtlHitZZnegD1", "ETL DIGI hits Z (-Z, Single(topo1D)/First(topo2D) disk);Z_{DIGI} [cm]", 100, -302., -298.);
333  meHitZ_[1] = ibook.book1D("EtlHitZZnegD2", "ETL DIGI hits Z (-Z, Second disk);Z_{DIGI} [cm]", 100, -304., -300.);
334  meHitZ_[2] = ibook.book1D(
335  "EtlHitZZposD1", "ETL DIGI hits Z (+Z, Single(topo1D)/First(topo2D) disk);Z_{DIGI} [cm]", 100, 298., 302.);
336  meHitZ_[3] = ibook.book1D("EtlHitZZposD2", "ETL DIGI hits Z (+Z, Second disk);Z_{DIGI} [cm]", 100, 300., 304.);
337 
338  meHitPhi_[0] = ibook.book1D("EtlHitPhiZnegD1",
339  "ETL DIGI hits #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad]",
340  100,
341  -3.15,
342  3.15);
343  meHitPhi_[1] =
344  ibook.book1D("EtlHitPhiZnegD2", "ETL DIGI hits #phi (-Z, Second disk);#phi_{DIGI} [rad]", 100, -3.15, 3.15);
345  meHitPhi_[2] = ibook.book1D("EtlHitPhiZposD1",
346  "ETL DIGI hits #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad]",
347  100,
348  -3.15,
349  3.15);
350  meHitPhi_[3] =
351  ibook.book1D("EtlHitPhiZposD2", "ETL DIGI hits #phi (+Z, Second disk);#phi_{DIGI} [rad]", 100, -3.15, 3.15);
352  meHitEta_[0] = ibook.book1D(
353  "EtlHitEtaZnegD1", "ETL DIGI hits #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI}", 100, -3.2, -1.56);
354  meHitEta_[1] = ibook.book1D("EtlHitEtaZnegD2", "ETL DIGI hits #eta (-Z, Second disk);#eta_{DIGI}", 100, -3.2, -1.56);
355  meHitEta_[2] = ibook.book1D(
356  "EtlHitEtaZposD1", "ETL DIGI hits #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI}", 100, 1.56, 3.2);
357  meHitEta_[3] = ibook.book1D("EtlHitEtaZposD2", "ETL DIGI hits #eta (+Z, Second disk);#eta_{DIGI}", 100, 1.56, 3.2);
358  meHitTvsQ_[0] = ibook.bookProfile(
359  "EtlHitTvsQZnegD1",
360  "ETL DIGI ToA vs charge (-Z, Single(topo1D)/First(topo2D) disk);Q_{DIGI} [ADC counts];ToA_{DIGI} [TDC counts]",
361  50,
362  0.,
363  256.,
364  0.,
365  1024.);
366  meHitTvsQ_[1] =
367  ibook.bookProfile("EtlHitTvsQZnegD2",
368  "ETL DIGI ToA vs charge (-Z, Second Disk);Q_{DIGI} [ADC counts];ToA_{DIGI} [TDC counts]",
369  50,
370  0.,
371  256.,
372  0.,
373  1024.);
374  meHitTvsQ_[2] = ibook.bookProfile(
375  "EtlHitTvsQZposD1",
376  "ETL DIGI ToA vs charge (+Z, Single(topo1D)/First(topo2D) disk);Q_{DIGI} [ADC counts];ToA_{DIGI} [TDC counts]",
377  50,
378  0.,
379  256.,
380  0.,
381  1024.);
382  meHitTvsQ_[3] =
383  ibook.bookProfile("EtlHitTvsQZposD2",
384  "ETL DIGI ToA vs charge (+Z, Second disk);Q_{DIGI} [ADC counts];ToA_{DIGI} [TDC counts]",
385  50,
386  0.,
387  256.,
388  0.,
389  1024.);
390  meHitQvsPhi_[0] = ibook.bookProfile(
391  "EtlHitQvsPhiZnegD1",
392  "ETL DIGI charge vs #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad];Q_{DIGI} [ADC counts]",
393  50,
394  -3.15,
395  3.15,
396  0.,
397  1024.);
398  meHitQvsPhi_[1] =
399  ibook.bookProfile("EtlHitQvsPhiZnegD2",
400  "ETL DIGI charge vs #phi (-Z, Second disk);#phi_{DIGI} [rad];Q_{DIGI} [ADC counts]",
401  50,
402  -3.15,
403  3.15,
404  0.,
405  1024.);
406  meHitQvsPhi_[2] = ibook.bookProfile(
407  "EtlHitQvsPhiZposD1",
408  "ETL DIGI charge vs #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad];Q_{DIGI} [ADC counts]",
409  50,
410  -3.15,
411  3.15,
412  0.,
413  1024.);
414  meHitQvsPhi_[3] =
415  ibook.bookProfile("EtlHitQvsPhiZposD2",
416  "ETL DIGI charge vs #phi (+Z, Second disk);#phi_{DIGI} [rad];Q_{DIGI} [ADC counts]",
417  50,
418  -3.15,
419  3.15,
420  0.,
421  1024.);
422  meHitQvsEta_[0] = ibook.bookProfile(
423  "EtlHitQvsEtaZnegD1",
424  "ETL DIGI charge vs #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI};Q_{DIGI} [ADC counts]",
425  50,
426  -3.2,
427  -1.56,
428  0.,
429  1024.);
430  meHitQvsEta_[1] = ibook.bookProfile("EtlHitQvsEtaZnegD2",
431  "ETL DIGI charge vs #eta (-Z, Second disk);#eta_{DIGI};Q_{DIGI} [ADC counts]",
432  50,
433  -3.2,
434  -1.56,
435  0.,
436  1024.);
437  meHitQvsEta_[2] = ibook.bookProfile(
438  "EtlHitQvsEtaZposD1",
439  "ETL DIGI charge vs #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI};Q_{DIGI} [ADC counts]",
440  50,
441  1.56,
442  3.2,
443  0.,
444  1024.);
445  meHitQvsEta_[3] = ibook.bookProfile("EtlHitQvsEtaZposD2",
446  "ETL DIGI charge vs #eta (+Z, Second disk);#eta_{DIGI};Q_{DIGI} [ADC counts]",
447  50,
448  1.56,
449  3.2,
450  0.,
451  1024.);
452  meHitTvsPhi_[0] = ibook.bookProfile(
453  "EtlHitTvsPhiZnegD1",
454  "ETL DIGI ToA vs #phi (-Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad];ToA_{DIGI} [TDC counts]",
455  50,
456  -3.15,
457  3.15,
458  0.,
459  1024.);
460  meHitTvsPhi_[1] =
461  ibook.bookProfile("EtlHitTvsPhiZnegD2",
462  "ETL DIGI ToA vs #phi (-Z, Second disk);#phi_{DIGI} [rad];ToA_{DIGI} [TDC counts]",
463  50,
464  -3.15,
465  3.15,
466  0.,
467  1024.);
468  meHitTvsPhi_[2] = ibook.bookProfile(
469  "EtlHitTvsPhiZposD1",
470  "ETL DIGI ToA vs #phi (+Z, Single(topo1D)/First(topo2D) disk);#phi_{DIGI} [rad];ToA_{DIGI} [TDC counts]",
471  50,
472  -3.15,
473  3.15,
474  0.,
475  1024.);
476  meHitTvsPhi_[3] =
477  ibook.bookProfile("EtlHitTvsPhiZposD2",
478  "ETL DIGI ToA vs #phi (+Z, Second disk);#phi_{DIGI} [rad];ToA_{DIGI} [TDC counts]",
479  50,
480  -3.15,
481  3.15,
482  0.,
483  1024.);
484  meHitTvsEta_[0] = ibook.bookProfile(
485  "EtlHitTvsEtaZnegD1",
486  "ETL DIGI ToA vs #eta (-Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI};ToA_{DIGI} [TDC counts]",
487  50,
488  -3.2,
489  -1.56,
490  0.,
491  1024.);
492  meHitTvsEta_[1] = ibook.bookProfile("EtlHitTvsEtaZnegD2",
493  "ETL DIGI ToA vs #eta (-Z, Second disk);#eta_{DIGI};ToA_{DIGI} [TDC counts]",
494  50,
495  -3.2,
496  -1.56,
497  0.,
498  1024.);
499  meHitTvsEta_[2] = ibook.bookProfile(
500  "EtlHitTvsEtaZposD1",
501  "ETL DIGI ToA vs #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI};ToA_{DIGI} [TDC counts]",
502  50,
503  1.56,
504  3.2,
505  0.,
506  1024.);
507  meHitTvsEta_[3] = ibook.bookProfile("EtlHitTvsEtaZposD2",
508  "ETL DIGI ToA vs #eta (+Z, Second disk);#eta_{DIGI};ToA_{DIGI} [TDC counts]",
509  50,
510  1.56,
511  3.2,
512  0.,
513  1024.);
514 }
MonitorElement * meHitQvsPhi_[4]
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * meHitXlocal_[2]
MonitorElement * meHitEta_[4]
MonitorElement * meNhits_[4]
MonitorElement * meOccupancy_[4]
MonitorElement * meHitTvsQ_[4]
MonitorElement * meLocalOccupancy_[2]
MonitorElement * meHitQvsEta_[4]
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:399
MonitorElement * meHitCharge_[4]
MonitorElement * meHitY_[4]
MonitorElement * meHitTime_[4]
MonitorElement * meHitYlocal_[2]
MonitorElement * meHitTvsEta_[4]
MonitorElement * meHitX_[4]
MonitorElement * meHitZ_[4]
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:212
MonitorElement * meHitTvsPhi_[4]
MonitorElement * meHitPhi_[4]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ fillDescriptions()

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

Definition at line 517 of file EtlDigiHitsValidation.cc.

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

517  {
519 
520  desc.add<std::string>("folder", "MTD/ETL/DigiHits");
521  desc.add<edm::InputTag>("inputTag", edm::InputTag("mix", "FTLEndcap"));
522  desc.add<bool>("LocalPositionDebug", false);
523 
524  descriptions.add("etlDigiHitsDefaultValid", desc);
525 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ etlDigiHitsToken_

edm::EDGetTokenT<ETLDigiCollection> EtlDigiHitsValidation::etlDigiHitsToken_
private

Definition at line 51 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and EtlDigiHitsValidation().

◆ folder_

const std::string EtlDigiHitsValidation::folder_
private

Definition at line 48 of file EtlDigiHitsValidation.cc.

Referenced by bookHistograms().

◆ LocalPosDebug_

const bool EtlDigiHitsValidation::LocalPosDebug_
private

Definition at line 49 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitCharge_

MonitorElement* EtlDigiHitsValidation::meHitCharge_[4]
private

Definition at line 60 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEta_

MonitorElement* EtlDigiHitsValidation::meHitEta_[4]
private

Definition at line 73 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitPhi_

MonitorElement* EtlDigiHitsValidation::meHitPhi_[4]
private

Definition at line 72 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitQvsEta_

MonitorElement* EtlDigiHitsValidation::meHitQvsEta_[4]
private

Definition at line 77 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitQvsPhi_

MonitorElement* EtlDigiHitsValidation::meHitQvsPhi_[4]
private

Definition at line 76 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTime_

MonitorElement* EtlDigiHitsValidation::meHitTime_[4]
private

Definition at line 61 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsEta_

MonitorElement* EtlDigiHitsValidation::meHitTvsEta_[4]
private

Definition at line 79 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsPhi_

MonitorElement* EtlDigiHitsValidation::meHitTvsPhi_[4]
private

Definition at line 78 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsQ_

MonitorElement* EtlDigiHitsValidation::meHitTvsQ_[4]
private

Definition at line 75 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitX_

MonitorElement* EtlDigiHitsValidation::meHitX_[4]
private

Definition at line 69 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitXlocal_

MonitorElement* EtlDigiHitsValidation::meHitXlocal_[2]
private

Definition at line 66 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitY_

MonitorElement* EtlDigiHitsValidation::meHitY_[4]
private

Definition at line 70 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitYlocal_

MonitorElement* EtlDigiHitsValidation::meHitYlocal_[2]
private

Definition at line 67 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZ_

MonitorElement* EtlDigiHitsValidation::meHitZ_[4]
private

Definition at line 71 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLocalOccupancy_

MonitorElement* EtlDigiHitsValidation::meLocalOccupancy_[2]
private

Definition at line 65 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meNhits_

MonitorElement* EtlDigiHitsValidation::meNhits_[4]
private

Definition at line 58 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meOccupancy_

MonitorElement* EtlDigiHitsValidation::meOccupancy_[4]
private

Definition at line 63 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mtdgeoToken_

edm::ESGetToken<MTDGeometry, MTDDigiGeometryRecord> EtlDigiHitsValidation::mtdgeoToken_
private

Definition at line 53 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and EtlDigiHitsValidation().

◆ mtdtopoToken_

edm::ESGetToken<MTDTopology, MTDTopologyRcd> EtlDigiHitsValidation::mtdtopoToken_
private

Definition at line 54 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and EtlDigiHitsValidation().