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]
 
MonitorElementmeNhitsPerLGAD_ [4]
 
MonitorElementmeOccupancy_ [4]
 
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecordmtdgeoToken_
 
edm::ESGetToken< MTDTopology, MTDTopologyRcdmtdtopoToken_
 
std::array< std::unordered_map< uint32_t, uint32_t >, 4 > ndigiPerLGAD_
 
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 86 of file EtlDigiHitsValidation.cc.

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

87  : folder_(iConfig.getParameter<std::string>("folder")),
88  optionalPlots_(iConfig.getParameter<bool>("optionalPlots")) {
89  etlDigiHitsToken_ = consumes<ETLDigiCollection>(iConfig.getParameter<edm::InputTag>("inputTag"));
90  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
91  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
92 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< ETLDigiCollection > etlDigiHitsToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_

◆ ~EtlDigiHitsValidation()

EtlDigiHitsValidation::~EtlDigiHitsValidation ( )
override

Definition at line 94 of file EtlDigiHitsValidation.cc.

94 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 97 of file EtlDigiHitsValidation.cc.

References TauDecayModes::dec, hcalRecHitTable_cff::detId, etlDigiHitsToken_, Exception, dqm::impl::MonitorElement::Fill(), relativeConstraints::geom, edm::EventSetup::getTransientHandle(), mps_fire::i, iEvent, PixelTopology::localX(), PixelTopology::localY(), LogDebug, edm::makeValid(), meHitCharge_, meHitEta_, meHitPhi_, meHitQvsEta_, meHitQvsPhi_, meHitTime_, meHitTvsEta_, meHitTvsPhi_, meHitTvsQ_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meLocalOccupancy_, meNhits_, meNhitsPerLGAD_, meOccupancy_, mtdgeoToken_, ndigiPerLGAD_, optionalPlots_, DetId::rawId(), ecalGpuTask_cfi::sample, GeomDet::toGlobal(), GeomDet::topology(), mps_merge::weight, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

97  {
98  using namespace edm;
99 
100  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
101  const MTDGeometry* geom = geometryHandle.product();
102 
103  auto etlDigiHitsHandle = makeValid(iEvent.getHandle(etlDigiHitsToken_));
104 
105  // --- Loop over the ETL DIGI hits
106 
107  unsigned int n_digi_etl[4] = {0, 0, 0, 0};
108  for (size_t i = 0; i < 4; i++) {
109  ndigiPerLGAD_[i].clear();
110  }
111 
112  size_t index(0);
113 
114  for (const auto& dataFrame : *etlDigiHitsHandle) {
115  // --- Get the on-time sample
116  int isample = 2;
117  double weight = 1.0;
118  const auto& sample = dataFrame.sample(isample);
119  ETLDetId detId = dataFrame.id();
120  DetId geoId = detId.geographicalId();
121 
122  const MTDGeomDet* thedet = geom->idToDet(geoId);
123  if (thedet == nullptr)
124  throw cms::Exception("EtlDigiHitsValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
125  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
126  const PixelTopology& topo = static_cast<const PixelTopology&>(thedet->topology());
127 
128  Local3DPoint local_point(topo.localX(sample.row()), topo.localY(sample.column()), 0.);
129  const auto& global_point = thedet->toGlobal(local_point);
130 
131  // --- Fill the histograms
132 
133  int idet = 999;
134  if (detId.discSide() == 1) {
135  weight = -weight;
136  }
137  if ((detId.zside() == -1) && (detId.nDisc() == 1)) {
138  idet = 0;
139  } else if ((detId.zside() == -1) && (detId.nDisc() == 2)) {
140  idet = 1;
141  } else if ((detId.zside() == 1) && (detId.nDisc() == 1)) {
142  idet = 2;
143  } else if ((detId.zside() == 1) && (detId.nDisc() == 2)) {
144  idet = 3;
145  } else {
146  edm::LogWarning("EtlDigiHitsValidation") << "Unknown ETL DetId configuration: " << detId;
147  continue;
148  }
149 
150  index++;
151  LogDebug("EtlDigiHitsValidation") << "Digi # " << index << " DetId " << detId.rawId() << " idet " << idet;
152 
153  meHitCharge_[idet]->Fill(sample.data());
154  meHitTime_[idet]->Fill(sample.toa());
155  meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight);
156 
157  if (optionalPlots_) {
158  if ((idet == 0) || (idet == 1)) {
159  meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y());
160  meHitXlocal_[0]->Fill(local_point.x());
161  meHitYlocal_[0]->Fill(local_point.y());
162 
163  } else if ((idet == 2) || (idet == 3)) {
164  meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y());
165  meHitXlocal_[1]->Fill(local_point.x());
166  meHitYlocal_[1]->Fill(local_point.y());
167  }
168  }
169 
170  meHitX_[idet]->Fill(global_point.x());
171  meHitY_[idet]->Fill(global_point.y());
172  meHitZ_[idet]->Fill(global_point.z());
173  meHitPhi_[idet]->Fill(global_point.phi());
174  meHitEta_[idet]->Fill(global_point.eta());
175 
176  meHitTvsQ_[idet]->Fill(sample.data(), sample.toa());
177  meHitQvsPhi_[idet]->Fill(global_point.phi(), sample.data());
178  meHitQvsEta_[idet]->Fill(global_point.eta(), sample.data());
179  meHitTvsPhi_[idet]->Fill(global_point.phi(), sample.toa());
180  meHitTvsEta_[idet]->Fill(global_point.eta(), sample.toa());
181 
182  n_digi_etl[idet]++;
183  size_t ncount(0);
184  ndigiPerLGAD_[idet].emplace(detId.rawId(), ncount);
185  ndigiPerLGAD_[idet].at(detId.rawId())++;
186 
187  } // dataFrame loop
188 
189  for (int i = 0; i < 4; i++) {
190  meNhits_[i]->Fill(log10(n_digi_etl[i]));
191  for (const auto& thisNdigi : ndigiPerLGAD_[i]) {
192  meNhitsPerLGAD_[i]->Fill(thisNdigi.second);
193  }
194  }
195 }
MonitorElement * meHitQvsPhi_[4]
MonitorElement * meHitXlocal_[2]
virtual const Topology & topology() const
Definition: GeomDet.cc:67
MonitorElement * meHitEta_[4]
Definition: weight.py:1
edm::EDGetTokenT< ETLDigiCollection > etlDigiHitsToken_
std::array< std::unordered_map< uint32_t, uint32_t >, 4 > ndigiPerLGAD_
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
virtual float localY(float mpY) const =0
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
MonitorElement * meHitTvsPhi_[4]
MonitorElement * meHitPhi_[4]
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:16
HLT enums.
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:141
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
MonitorElement * meNhitsPerLGAD_[4]
Log< level::Warning, false > LogWarning
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
#define LogDebug(id)

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 198 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_, meNhitsPerLGAD_, meOccupancy_, optionalPlots_, and dqm::implementation::NavigatorBase::setCurrentFolder().

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

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

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

Referenced by analyze(), and bookHistograms().

◆ meHitEta_

MonitorElement* EtlDigiHitsValidation::meHitEta_[4]
private

Definition at line 74 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitPhi_

MonitorElement* EtlDigiHitsValidation::meHitPhi_[4]
private

Definition at line 73 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitQvsEta_

MonitorElement* EtlDigiHitsValidation::meHitQvsEta_[4]
private

Definition at line 78 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitQvsPhi_

MonitorElement* EtlDigiHitsValidation::meHitQvsPhi_[4]
private

Definition at line 77 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTime_

MonitorElement* EtlDigiHitsValidation::meHitTime_[4]
private

Definition at line 62 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsEta_

MonitorElement* EtlDigiHitsValidation::meHitTvsEta_[4]
private

Definition at line 80 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsPhi_

MonitorElement* EtlDigiHitsValidation::meHitTvsPhi_[4]
private

Definition at line 79 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsQ_

MonitorElement* EtlDigiHitsValidation::meHitTvsQ_[4]
private

Definition at line 76 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitX_

MonitorElement* EtlDigiHitsValidation::meHitX_[4]
private

Definition at line 70 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitXlocal_

MonitorElement* EtlDigiHitsValidation::meHitXlocal_[2]
private

Definition at line 67 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitY_

MonitorElement* EtlDigiHitsValidation::meHitY_[4]
private

Definition at line 71 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitYlocal_

MonitorElement* EtlDigiHitsValidation::meHitYlocal_[2]
private

Definition at line 68 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZ_

MonitorElement* EtlDigiHitsValidation::meHitZ_[4]
private

Definition at line 72 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLocalOccupancy_

MonitorElement* EtlDigiHitsValidation::meLocalOccupancy_[2]
private

Definition at line 66 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().

◆ meNhitsPerLGAD_

MonitorElement* EtlDigiHitsValidation::meNhitsPerLGAD_[4]
private

Definition at line 59 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meOccupancy_

MonitorElement* EtlDigiHitsValidation::meOccupancy_[4]
private

Definition at line 64 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 EtlDigiHitsValidation().

◆ ndigiPerLGAD_

std::array<std::unordered_map<uint32_t, uint32_t>, 4> EtlDigiHitsValidation::ndigiPerLGAD_
private

Definition at line 82 of file EtlDigiHitsValidation.cc.

Referenced by analyze().

◆ optionalPlots_

const bool EtlDigiHitsValidation::optionalPlots_
private

Definition at line 49 of file EtlDigiHitsValidation.cc.

Referenced by analyze(), and bookHistograms().