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_
 
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_
 
const bool optionalPlots_
 

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  optionalPlots_(iConfig.getParameter<bool>("optionalPlots")) {
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 TauDecayModes::dec, ETLDetId::discSide(), etlDigiHitsToken_, MTDTopologyMode::etlLayoutFromTopoMode(), Exception, dqm::impl::MonitorElement::Fill(), ETLDetId::geographicalId(), totem::nt2::vfat::geoId(), relativeConstraints::geom, MTDTopology::getMTDTopologyMode(), edm::EventSetup::getTransientHandle(), mps_fire::i, iEvent, 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(), optionalPlots_, DetId::rawId(), ecalGpuTask_cfi::sample, GeomDet::toGlobal(), GeomDet::topology(), ETLDetId::tp, 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;
106  topo1Dis = true;
107  } else {
108  topo2Dis = true;
109  }
110 
111  auto etlDigiHitsHandle = makeValid(iEvent.getHandle(etlDigiHitsToken_));
112 
113  // --- Loop over the ETL DIGI hits
114 
115  unsigned int n_digi_etl[4] = {0, 0, 0, 0};
116 
117  for (const auto& dataFrame : *etlDigiHitsHandle) {
118  // --- Get the on-time sample
119  int isample = 2;
120  double weight = 1.0;
121  const auto& sample = dataFrame.sample(isample);
122  ETLDetId detId = dataFrame.id();
123  DetId geoId = detId.geographicalId();
124 
125  const MTDGeomDet* thedet = geom->idToDet(geoId);
126  if (thedet == nullptr)
127  throw cms::Exception("EtlDigiHitsValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
128  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
129  const PixelTopology& topo = static_cast<const PixelTopology&>(thedet->topology());
130 
131  Local3DPoint local_point(topo.localX(sample.row()), topo.localY(sample.column()), 0.);
132  const auto& global_point = thedet->toGlobal(local_point);
133 
134  // --- Fill the histograms
135 
136  int idet = 999;
137 
138  if (topo1Dis) {
139  if (detId.zside() == -1) {
140  idet = 0;
141  } else if (detId.zside() == 1) {
142  idet = 2;
143  } else {
144  continue;
145  }
146  }
147 
148  if (topo2Dis) {
149  if (detId.discSide() == 1) {
150  weight = -weight;
151  }
152  if ((detId.zside() == -1) && (detId.nDisc() == 1)) {
153  idet = 0;
154  } else if ((detId.zside() == -1) && (detId.nDisc() == 2)) {
155  idet = 1;
156  } else if ((detId.zside() == 1) && (detId.nDisc() == 1)) {
157  idet = 2;
158  } else if ((detId.zside() == 1) && (detId.nDisc() == 2)) {
159  idet = 3;
160  } else {
161  continue;
162  }
163  }
164 
165  meHitCharge_[idet]->Fill(sample.data());
166  meHitTime_[idet]->Fill(sample.toa());
167  meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight);
168 
169  if (optionalPlots_) {
170  if ((idet == 0) || (idet == 1)) {
171  meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y());
172  meHitXlocal_[0]->Fill(local_point.x());
173  meHitYlocal_[0]->Fill(local_point.y());
174 
175  } else if ((idet == 2) || (idet == 3)) {
176  meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y());
177  meHitXlocal_[1]->Fill(local_point.x());
178  meHitYlocal_[1]->Fill(local_point.y());
179  }
180  }
181 
182  meHitX_[idet]->Fill(global_point.x());
183  meHitY_[idet]->Fill(global_point.y());
184  meHitZ_[idet]->Fill(global_point.z());
185  meHitPhi_[idet]->Fill(global_point.phi());
186  meHitEta_[idet]->Fill(global_point.eta());
187 
188  meHitTvsQ_[idet]->Fill(sample.data(), sample.toa());
189  meHitQvsPhi_[idet]->Fill(global_point.phi(), sample.data());
190  meHitQvsEta_[idet]->Fill(global_point.eta(), sample.data());
191  meHitTvsPhi_[idet]->Fill(global_point.phi(), sample.toa());
192  meHitTvsEta_[idet]->Fill(global_point.eta(), sample.toa());
193 
194  n_digi_etl[idet]++;
195 
196  } // dataFrame loop
197 
198  if (topo1Dis) {
199  meNhits_[0]->Fill(n_digi_etl[0]);
200  meNhits_[2]->Fill(n_digi_etl[2]);
201  }
202 
203  if (topo2Dis) {
204  for (int i = 0; i < 4; i++) {
205  meNhits_[i]->Fill(n_digi_etl[i]);
206  }
207  }
208 }
uint8_t geoId(const VFATFrame &frame)
retrieve the GEO information for this channel
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:110
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]
ETLDetId::EtlLayout etlLayoutFromTopoMode(const int &topoMode)
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:119
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:124
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 211 of file EtlDigiHitsValidation.cc.

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

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

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

516  {
518 
519  desc.add<std::string>("folder", "MTD/ETL/DigiHits");
520  desc.add<edm::InputTag>("inputTag", edm::InputTag("mix", "FTLEndcap"));
521  desc.add<bool>("optionalPlots", false);
522 
523  descriptions.add("etlDigiHitsDefaultValid", desc);
524 }
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().

◆ 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().

◆ optionalPlots_

const bool EtlDigiHitsValidation::optionalPlots_
private

Definition at line 49 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().