CMS 3D CMS Logo

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

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

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

Public Member Functions

 BtlLocalRecoValidation (const edm::ParameterSet &)
 
 ~BtlLocalRecoValidation () 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< FTLClusterCollectionbtlRecCluToken_
 
edm::EDGetTokenT< FTLRecHitCollectionbtlRecHitsToken_
 
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
 
const std::string folder_
 
const double hitMinEnergy_
 
const bool LocalPosDebug_
 
MonitorElementmeCluEnergy_
 
MonitorElementmeCluEta_
 
MonitorElementmeCluHits_
 
MonitorElementmeCluPhi_
 
MonitorElementmeCluTime_
 
MonitorElementmeCluTimeError_
 
MonitorElementmeCluZvsPhi_
 
MonitorElementmeEnergyRes_
 
MonitorElementmeHitEnergy_
 
MonitorElementmeHitEta_
 
MonitorElementmeHitEvsEta_
 
MonitorElementmeHitEvsPhi_
 
MonitorElementmeHitEvsZ_
 
MonitorElementmeHitLongPos_
 
MonitorElementmeHitLongPosErr_
 
MonitorElementmeHitPhi_
 
MonitorElementmeHitTime_
 
MonitorElementmeHitTimeError_
 
MonitorElementmeHitTvsE_
 
MonitorElementmeHitTvsEta_
 
MonitorElementmeHitTvsPhi_
 
MonitorElementmeHitTvsZ_
 
MonitorElementmeHitX_
 
MonitorElementmeHitXlocal_
 
MonitorElementmeHitY_
 
MonitorElementmeHitYlocal_
 
MonitorElementmeHitZ_
 
MonitorElementmeHitZlocal_
 
MonitorElementmeLocalOccupancy_
 
MonitorElementmeLongPosPull_
 
MonitorElementmeLongPosPullvsE_
 
MonitorElementmeLongPosPullvsEta_
 
MonitorElementmeNhits_
 
MonitorElementmeOccupancy_
 
MonitorElementmeTimeRes_
 
MonitorElementmeTPullvsE_
 
MonitorElementmeTPullvsEta_
 
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 >
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: BTL RECO hits and clusters validation

Implementation: [Notes on implementation]

Definition at line 52 of file BtlLocalRecoValidation.cc.

Constructor & Destructor Documentation

◆ BtlLocalRecoValidation()

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

Definition at line 129 of file BtlLocalRecoValidation.cc.

130  : folder_(iConfig.getParameter<std::string>("folder")),
131  hitMinEnergy_(iConfig.getParameter<double>("hitMinimumEnergy")),
132  LocalPosDebug_(iConfig.getParameter<bool>("LocalPositionDebug")) {
133  btlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("recHitsTag"));
134  btlSimHitsToken_ = consumes<CrossingFrame<PSimHit> >(iConfig.getParameter<edm::InputTag>("simHitsTag"));
135  btlRecCluToken_ = consumes<FTLClusterCollection>(iConfig.getParameter<edm::InputTag>("recCluTag"));
136  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
137  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
138 }

References btlRecCluToken_, btlRecHitsToken_, btlSimHitsToken_, edm::ParameterSet::getParameter(), mtdgeoToken_, and mtdtopoToken_.

◆ ~BtlLocalRecoValidation()

BtlLocalRecoValidation::~BtlLocalRecoValidation ( )
override

Definition at line 140 of file BtlLocalRecoValidation.cc.

140 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 143 of file BtlLocalRecoValidation.cc.

143  {
144  using namespace edm;
145  using namespace std;
146  using namespace geant_units::operators;
147 
148  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
149  const MTDGeometry* geom = geometryHandle.product();
150 
151  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
152  const MTDTopology* topology = topologyHandle.product();
153 
154  auto btlRecHitsHandle = makeValid(iEvent.getHandle(btlRecHitsToken_));
155  auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_));
156  auto btlRecCluHandle = makeValid(iEvent.getHandle(btlRecCluToken_));
157  MixCollection<PSimHit> btlSimHits(btlSimHitsHandle.product());
158 
159  // --- Loop over the BTL SIM hits
160  std::unordered_map<uint32_t, MTDHit> m_btlSimHits;
161  for (auto const& simHit : btlSimHits) {
162  // --- Use only hits compatible with the in-time bunch-crossing
163  if (simHit.tof() < 0 || simHit.tof() > 25.)
164  continue;
165 
166  DetId id = simHit.detUnitId();
167 
168  auto simHitIt = m_btlSimHits.emplace(id.rawId(), MTDHit()).first;
169 
170  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
171  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
172 
173  // --- Get the time of the first SIM hit in the cell
174  if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) {
175  (simHitIt->second).time = simHit.tof();
176 
177  auto hit_pos = simHit.entryPoint();
178  (simHitIt->second).x_local = hit_pos.x();
179  (simHitIt->second).y_local = hit_pos.y();
180  (simHitIt->second).z_local = hit_pos.z();
181  }
182 
183  } // simHit loop
184 
185  // --- Loop over the BTL RECO hits
186  unsigned int n_reco_btl = 0;
187 
188  for (const auto& recHit : *btlRecHitsHandle) {
189  BTLDetId detId = recHit.id();
191  const MTDGeomDet* thedet = geom->idToDet(geoId);
192  if (thedet == nullptr)
193  throw cms::Exception("BtlLocalRecoValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
194  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
195  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
196  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
197 
198  Local3DPoint local_point(0., 0., 0.);
199  local_point = topo.pixelToModuleLocalPoint(local_point, detId.row(topo.nrows()), detId.column(topo.nrows()));
200  const auto& global_point = thedet->toGlobal(local_point);
201 
202  meHitEnergy_->Fill(recHit.energy());
203  meHitTime_->Fill(recHit.time());
204  meHitTimeError_->Fill(recHit.timeError());
205  meHitLongPos_->Fill(recHit.position());
206  meHitLongPosErr_->Fill(recHit.positionError());
207 
208  meOccupancy_->Fill(global_point.z(), global_point.phi());
209 
210  if (LocalPosDebug_) {
211  meLocalOccupancy_->Fill(local_point.x() + recHit.position(), local_point.y());
212  meHitXlocal_->Fill(local_point.x());
213  meHitYlocal_->Fill(local_point.y());
214  meHitZlocal_->Fill(local_point.z());
215  }
216  meHitX_->Fill(global_point.x());
217  meHitY_->Fill(global_point.y());
218  meHitZ_->Fill(global_point.z());
219  meHitPhi_->Fill(global_point.phi());
220  meHitEta_->Fill(global_point.eta());
221 
222  meHitTvsE_->Fill(recHit.energy(), recHit.time());
223  meHitEvsPhi_->Fill(global_point.phi(), recHit.energy());
224  meHitEvsEta_->Fill(global_point.eta(), recHit.energy());
225  meHitEvsZ_->Fill(global_point.z(), recHit.energy());
226  meHitTvsPhi_->Fill(global_point.phi(), recHit.time());
227  meHitTvsEta_->Fill(global_point.eta(), recHit.time());
228  meHitTvsZ_->Fill(global_point.z(), recHit.time());
229 
230  // Resolution histograms
231  if (m_btlSimHits.count(detId.rawId()) == 1 && m_btlSimHits[detId.rawId()].energy > hitMinEnergy_) {
232  float longpos_res = recHit.position() - convertMmToCm(m_btlSimHits[detId.rawId()].x_local);
233  float time_res = recHit.time() - m_btlSimHits[detId.rawId()].time;
234  float energy_res = recHit.energy() - m_btlSimHits[detId.rawId()].energy;
235 
236  Local3DPoint local_point_sim(m_btlSimHits[detId.rawId()].x_local,
237  m_btlSimHits[detId.rawId()].y_local,
238  m_btlSimHits[detId.rawId()].z_local);
239  local_point_sim =
240  topo.pixelToModuleLocalPoint(local_point_sim, detId.row(topo.nrows()), detId.column(topo.nrows()));
241  const auto& global_point_sim = thedet->toGlobal(local_point_sim);
242 
243  meTimeRes_->Fill(time_res);
244  meEnergyRes_->Fill(energy_res);
245 
246  meLongPosPull_->Fill(longpos_res / recHit.positionError());
247  meLongPosPullvsEta_->Fill(std::abs(global_point_sim.eta()), longpos_res / recHit.positionError());
248  meLongPosPullvsE_->Fill(m_btlSimHits[detId.rawId()].energy, longpos_res / recHit.positionError());
249 
250  meTPullvsEta_->Fill(std::abs(global_point_sim.eta()), time_res / recHit.timeError());
251  meTPullvsE_->Fill(m_btlSimHits[detId.rawId()].energy, time_res / recHit.timeError());
252  }
253 
254  n_reco_btl++;
255 
256  } // recHit loop
257 
258  if (n_reco_btl > 0)
259  meNhits_->Fill(log10(n_reco_btl));
260 
261  // --- Loop over the BTL RECO clusters ---
262  for (const auto& DetSetClu : *btlRecCluHandle) {
263  for (const auto& cluster : DetSetClu) {
264  if (cluster.energy() < hitMinEnergy_)
265  continue;
266  BTLDetId cluId = cluster.id();
267  DetId detIdObject(cluId);
268  const auto& genericDet = geom->idToDetUnit(detIdObject);
269  if (genericDet == nullptr) {
270  throw cms::Exception("BtlLocalRecoValidation")
271  << "GeographicalID: " << std::hex << cluId << " is invalid!" << std::dec << std::endl;
272  }
273 
274  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(genericDet->topology());
275  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
276 
277  Local3DPoint local_point(cluster.x() * topo.pitch().first, cluster.y() * topo.pitch().second, 0.);
278  local_point = topo.pixelToModuleLocalPoint(local_point, cluId.row(topo.nrows()), cluId.column(topo.ncolumns()));
279  const auto& global_point = genericDet->toGlobal(local_point);
280 
281  meCluEnergy_->Fill(cluster.energy());
282  meCluTime_->Fill(cluster.time());
283  meCluTimeError_->Fill(cluster.timeError());
284  meCluPhi_->Fill(global_point.phi());
285  meCluEta_->Fill(global_point.eta());
286  meCluZvsPhi_->Fill(global_point.z(), global_point.phi());
287  meCluHits_->Fill(cluster.size());
288  }
289  }
290 }

References funct::abs(), btlRecCluToken_, btlRecHitsToken_, btlSimHitsToken_, BTLDetId::column(), geant_units::operators::convertMmToCm(), geant_units::operators::convertUnitsTo(), MTDTopologyMode::crysLayoutFromTopoMode(), TauDecayModes::dec, HCALHighEnergyHPDFilter_cfi::energy, Exception, dqm::impl::MonitorElement::Fill(), BTLDetId::geographicalId(), relativeConstraints::geom, MTDTopology::getMTDTopologyMode(), edm::EventSetup::getTransientHandle(), hitMinEnergy_, iEvent, LocalPosDebug_, edm::makeValid(), meCluEnergy_, meCluEta_, meCluHits_, meCluPhi_, meCluTime_, meCluTimeError_, meCluZvsPhi_, meEnergyRes_, meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitEvsZ_, meHitLongPos_, meHitLongPosErr_, meHitPhi_, meHitTime_, meHitTimeError_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitTvsZ_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meLocalOccupancy_, meLongPosPull_, meLongPosPullvsE_, meLongPosPullvsEta_, meNhits_, meOccupancy_, meTimeRes_, meTPullvsE_, meTPullvsEta_, mtdgeoToken_, mtdtopoToken_, DetId::rawId(), rpcPointValidation_cfi::recHit, BTLDetId::row(), rpcPointValidation_cfi::simHit, ProxyMTDTopology::specificTopology(), protons_cff::time, GeomDet::toGlobal(), and GeomDet::topology().

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 293 of file BtlLocalRecoValidation.cc.

295  {
296  ibook.setCurrentFolder(folder_);
297 
298  // --- histograms booking
299 
300  meNhits_ = ibook.book1D("BtlNhits", "Number of BTL RECO hits;log_{10}(N_{RECO})", 100, 0., 5.25);
301 
302  meHitEnergy_ = ibook.book1D("BtlHitEnergy", "BTL RECO hits energy;E_{RECO} [MeV]", 100, 0., 20.);
303  meHitTime_ = ibook.book1D("BtlHitTime", "BTL RECO hits ToA;ToA_{RECO} [ns]", 100, 0., 25.);
304  meHitTimeError_ = ibook.book1D("BtlHitTimeError", "BTL RECO hits ToA error;#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1);
305  meOccupancy_ = ibook.book2D(
306  "BtlOccupancy", "BTL RECO hits occupancy;Z_{RECO} [cm]; #phi_{RECO} [rad]", 65, -260., 260., 126, -3.2, 3.2);
307  if (LocalPosDebug_) {
308  meLocalOccupancy_ = ibook.book2D(
309  "BtlLocalOccupancy", "BTL RECO hits local occupancy;X_{RECO} [cm]; Y_{RECO} [cm]", 100, 10., 10., 60, -3., 3.);
310  meHitXlocal_ = ibook.book1D("BtlHitXlocal", "BTL RECO local X;X_{RECO}^{LOC} [cm]", 100, -10., 10.);
311  meHitYlocal_ = ibook.book1D("BtlHitYlocal", "BTL RECO local Y;Y_{RECO}^{LOC} [cm]", 60, -3, 3);
312  meHitZlocal_ = ibook.book1D("BtlHitZlocal", "BTL RECO local z;z_{RECO}^{LOC} [cm]", 10, -1, 1);
313  }
314  meHitX_ = ibook.book1D("BtlHitX", "BTL RECO hits X;X_{RECO} [cm]", 60, -120., 120.);
315  meHitY_ = ibook.book1D("BtlHitY", "BTL RECO hits Y;Y_{RECO} [cm]", 60, -120., 120.);
316  meHitZ_ = ibook.book1D("BtlHitZ", "BTL RECO hits Z;Z_{RECO} [cm]", 100, -260., 260.);
317  meHitPhi_ = ibook.book1D("BtlHitPhi", "BTL RECO hits #phi;#phi_{RECO} [rad]", 126, -3.2, 3.2);
318  meHitEta_ = ibook.book1D("BtlHitEta", "BTL RECO hits #eta;#eta_{RECO}", 100, -1.55, 1.55);
319  meHitTvsE_ =
320  ibook.bookProfile("BtlHitTvsE", "BTL RECO ToA vs energy;E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 20., 0., 100.);
321  meHitEvsPhi_ = ibook.bookProfile(
322  "BtlHitEvsPhi", "BTL RECO energy vs #phi;#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.2, 3.2, 0., 100.);
323  meHitEvsEta_ = ibook.bookProfile(
324  "BtlHitEvsEta", "BTL RECO energy vs #eta;#eta_{RECO};E_{RECO} [MeV]", 50, -1.55, 1.55, 0., 100.);
325  meHitEvsZ_ =
326  ibook.bookProfile("BtlHitEvsZ", "BTL RECO energy vs Z;Z_{RECO} [cm];E_{RECO} [MeV]", 50, -260., 260., 0., 100.);
327  meHitTvsPhi_ = ibook.bookProfile(
328  "BtlHitTvsPhi", "BTL RECO ToA vs #phi;#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.2, 3.2, 0., 100.);
329  meHitTvsEta_ =
330  ibook.bookProfile("BtlHitTvsEta", "BTL RECO ToA vs #eta;#eta_{RECO};ToA_{RECO} [ns]", 50, -1.6, 1.6, 0., 100.);
331  meHitTvsZ_ =
332  ibook.bookProfile("BtlHitTvsZ", "BTL RECO ToA vs Z;Z_{RECO} [cm];ToA_{RECO} [ns]", 50, -260., 260., 0., 100.);
333  meHitLongPos_ = ibook.book1D("BtlLongPos", "BTL RECO hits longitudinal position;long. pos._{RECO}", 100, -10, 10);
335  ibook.book1D("BtlLongPosErr", "BTL RECO hits longitudinal position error; long. pos. error_{RECO}", 100, -1, 1);
336  meTimeRes_ = ibook.book1D("BtlTimeRes", "BTL time resolution;T_{RECO}-T_{SIM}", 100, -0.5, 0.5);
337  meEnergyRes_ = ibook.book1D("BtlEnergyRes", "BTL energy resolution;E_{RECO}-E_{SIM}", 100, -0.5, 0.5);
338  meLongPosPull_ = ibook.book1D("BtlLongPosPull",
339  "BTL longitudinal position pull;X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}",
340  100,
341  -5.,
342  5.);
344  "BtlLongposPullvsE",
345  "BTL longitudinal position pull vs E;E_{SIM} [MeV];X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}",
346  20,
347  0.,
348  20.,
349  -5.,
350  5.,
351  "S");
353  "BtlLongposPullvsEta",
354  "BTL longitudinal position pull vs #eta;|#eta_{RECO}|;X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}",
355  32,
356  0,
357  1.55,
358  -5.,
359  5.,
360  "S");
361  meTPullvsE_ = ibook.bookProfile(
362  "BtlTPullvsE", "BTL time pull vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", 20, 0., 20., -5., 5., "S");
363  meTPullvsEta_ = ibook.bookProfile("BtlTPullvsEta",
364  "BTL time pull vs #eta;|#eta_{RECO}|;T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}",
365  32,
366  0,
367  1.55,
368  -5.,
369  5.,
370  "S");
371  meCluTime_ = ibook.book1D("BtlCluTime", "BTL cluster time ToA;ToA [ns]", 250, 0, 25);
372  meCluTimeError_ = ibook.book1D("BtlCluTimeError", "BTL cluster time error;#sigma_{t} [ns]", 100, 0, 0.1);
373  meCluEnergy_ = ibook.book1D("BtlCluEnergy", "BTL cluster energy;E_{RECO} [MeV]", 100, 0, 20);
374  meCluPhi_ = ibook.book1D("BtlCluPhi", "BTL cluster #phi;#phi_{RECO} [rad]", 144, -3.2, 3.2);
375  meCluEta_ = ibook.book1D("BtlCluEta", "BTL cluster #eta;#eta_{RECO}", 100, -1.55, 1.55);
376  meCluHits_ = ibook.book1D("BtlCluHitNumber", "BTL hits per cluster; Cluster size", 10, 0, 10);
377  meCluZvsPhi_ = ibook.book2D(
378  "BtlOccupancy", "BTL cluster Z vs #phi;Z_{RECO} [cm]; #phi_{RECO} [rad]", 144, -260., 260., 50, -3.2, 3.2);
379 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), folder_, LocalPosDebug_, meCluEnergy_, meCluEta_, meCluHits_, meCluPhi_, meCluTime_, meCluTimeError_, meCluZvsPhi_, meEnergyRes_, meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitEvsZ_, meHitLongPos_, meHitLongPosErr_, meHitPhi_, meHitTime_, meHitTimeError_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitTvsZ_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meLocalOccupancy_, meLongPosPull_, meLongPosPullvsE_, meLongPosPullvsEta_, meNhits_, meOccupancy_, meTimeRes_, meTPullvsE_, meTPullvsEta_, and dqm::implementation::NavigatorBase::setCurrentFolder().

◆ fillDescriptions()

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

Definition at line 382 of file BtlLocalRecoValidation.cc.

382  {
384 
385  desc.add<std::string>("folder", "MTD/BTL/LocalReco");
386  desc.add<edm::InputTag>("recHitsTag", edm::InputTag("mtdRecHits", "FTLBarrel"));
387  desc.add<edm::InputTag>("simHitsTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel"));
388  desc.add<edm::InputTag>("recCluTag", edm::InputTag("mtdClusters", "FTLBarrel"));
389  desc.add<double>("hitMinimumEnergy", 1.); // [MeV]
390  desc.add<bool>("LocalPositionDebug", false);
391 
392  descriptions.add("btlLocalReco", desc);
393 }

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

Member Data Documentation

◆ btlRecCluToken_

edm::EDGetTokenT<FTLClusterCollection> BtlLocalRecoValidation::btlRecCluToken_
private

Definition at line 72 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and BtlLocalRecoValidation().

◆ btlRecHitsToken_

edm::EDGetTokenT<FTLRecHitCollection> BtlLocalRecoValidation::btlRecHitsToken_
private

Definition at line 70 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and BtlLocalRecoValidation().

◆ btlSimHitsToken_

edm::EDGetTokenT<CrossingFrame<PSimHit> > BtlLocalRecoValidation::btlSimHitsToken_
private

Definition at line 71 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and BtlLocalRecoValidation().

◆ folder_

const std::string BtlLocalRecoValidation::folder_
private

Definition at line 66 of file BtlLocalRecoValidation.cc.

Referenced by bookHistograms().

◆ hitMinEnergy_

const double BtlLocalRecoValidation::hitMinEnergy_
private

Definition at line 67 of file BtlLocalRecoValidation.cc.

Referenced by analyze().

◆ LocalPosDebug_

const bool BtlLocalRecoValidation::LocalPosDebug_
private

Definition at line 68 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluEnergy_

MonitorElement* BtlLocalRecoValidation::meCluEnergy_
private

Definition at line 121 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluEta_

MonitorElement* BtlLocalRecoValidation::meCluEta_
private

Definition at line 123 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluHits_

MonitorElement* BtlLocalRecoValidation::meCluHits_
private

Definition at line 124 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluPhi_

MonitorElement* BtlLocalRecoValidation::meCluPhi_
private

Definition at line 122 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluTime_

MonitorElement* BtlLocalRecoValidation::meCluTime_
private

Definition at line 119 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluTimeError_

MonitorElement* BtlLocalRecoValidation::meCluTimeError_
private

Definition at line 120 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meCluZvsPhi_

MonitorElement* BtlLocalRecoValidation::meCluZvsPhi_
private

Definition at line 125 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meEnergyRes_

MonitorElement* BtlLocalRecoValidation::meEnergyRes_
private

Definition at line 110 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEnergy_

MonitorElement* BtlLocalRecoValidation::meHitEnergy_
private

Definition at line 81 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEta_

MonitorElement* BtlLocalRecoValidation::meHitEta_
private

Definition at line 97 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEvsEta_

MonitorElement* BtlLocalRecoValidation::meHitEvsEta_
private

Definition at line 101 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEvsPhi_

MonitorElement* BtlLocalRecoValidation::meHitEvsPhi_
private

Definition at line 100 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitEvsZ_

MonitorElement* BtlLocalRecoValidation::meHitEvsZ_
private

Definition at line 102 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitLongPos_

MonitorElement* BtlLocalRecoValidation::meHitLongPos_
private

Definition at line 106 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitLongPosErr_

MonitorElement* BtlLocalRecoValidation::meHitLongPosErr_
private

Definition at line 107 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitPhi_

MonitorElement* BtlLocalRecoValidation::meHitPhi_
private

Definition at line 96 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTime_

MonitorElement* BtlLocalRecoValidation::meHitTime_
private

Definition at line 82 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTimeError_

MonitorElement* BtlLocalRecoValidation::meHitTimeError_
private

Definition at line 83 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsE_

MonitorElement* BtlLocalRecoValidation::meHitTvsE_
private

Definition at line 99 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsEta_

MonitorElement* BtlLocalRecoValidation::meHitTvsEta_
private

Definition at line 104 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsPhi_

MonitorElement* BtlLocalRecoValidation::meHitTvsPhi_
private

Definition at line 103 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitTvsZ_

MonitorElement* BtlLocalRecoValidation::meHitTvsZ_
private

Definition at line 105 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitX_

MonitorElement* BtlLocalRecoValidation::meHitX_
private

Definition at line 93 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitXlocal_

MonitorElement* BtlLocalRecoValidation::meHitXlocal_
private

Definition at line 89 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitY_

MonitorElement* BtlLocalRecoValidation::meHitY_
private

Definition at line 94 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitYlocal_

MonitorElement* BtlLocalRecoValidation::meHitYlocal_
private

Definition at line 90 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZ_

MonitorElement* BtlLocalRecoValidation::meHitZ_
private

Definition at line 95 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meHitZlocal_

MonitorElement* BtlLocalRecoValidation::meHitZlocal_
private

Definition at line 91 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLocalOccupancy_

MonitorElement* BtlLocalRecoValidation::meLocalOccupancy_
private

Definition at line 88 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLongPosPull_

MonitorElement* BtlLocalRecoValidation::meLongPosPull_
private

Definition at line 112 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLongPosPullvsE_

MonitorElement* BtlLocalRecoValidation::meLongPosPullvsE_
private

Definition at line 113 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meLongPosPullvsEta_

MonitorElement* BtlLocalRecoValidation::meLongPosPullvsEta_
private

Definition at line 114 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meNhits_

MonitorElement* BtlLocalRecoValidation::meNhits_
private

Definition at line 79 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meOccupancy_

MonitorElement* BtlLocalRecoValidation::meOccupancy_
private

Definition at line 85 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTimeRes_

MonitorElement* BtlLocalRecoValidation::meTimeRes_
private

Definition at line 109 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTPullvsE_

MonitorElement* BtlLocalRecoValidation::meTPullvsE_
private

Definition at line 116 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTPullvsEta_

MonitorElement* BtlLocalRecoValidation::meTPullvsEta_
private

Definition at line 117 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mtdgeoToken_

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

Definition at line 74 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and BtlLocalRecoValidation().

◆ mtdtopoToken_

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

Definition at line 75 of file BtlLocalRecoValidation.cc.

Referenced by analyze(), and BtlLocalRecoValidation().

BtlLocalRecoValidation::meCluHits_
MonitorElement * meCluHits_
Definition: BtlLocalRecoValidation.cc:124
BtlLocalRecoValidation::meHitX_
MonitorElement * meHitX_
Definition: BtlLocalRecoValidation.cc:93
BtlLocalRecoValidation::meCluTimeError_
MonitorElement * meCluTimeError_
Definition: BtlLocalRecoValidation.cc:120
BtlLocalRecoValidation::meEnergyRes_
MonitorElement * meEnergyRes_
Definition: BtlLocalRecoValidation.cc:110
BtlLocalRecoValidation::meLocalOccupancy_
MonitorElement * meLocalOccupancy_
Definition: BtlLocalRecoValidation.cc:88
BtlLocalRecoValidation::mtdtopoToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
Definition: BtlLocalRecoValidation.cc:75
BtlLocalRecoValidation::meHitEta_
MonitorElement * meHitEta_
Definition: BtlLocalRecoValidation.cc:97
geant_units::operators::convertUnitsTo
constexpr NumType convertUnitsTo(long double desiredUnits, NumType val)
Definition: GeantUnits.h:99
edm
HLT enums.
Definition: AlignableModifier.h:19
BtlLocalRecoValidation::meHitTvsEta_
MonitorElement * meHitTvsEta_
Definition: BtlLocalRecoValidation.cc:104
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
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
BtlLocalRecoValidation::folder_
const std::string folder_
Definition: BtlLocalRecoValidation.cc:66
protons_cff.time
time
Definition: protons_cff.py:39
ProxyMTDTopology::specificTopology
virtual const PixelTopology & specificTopology() const
Definition: ProxyMTDTopology.h:89
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
BtlLocalRecoValidation::meHitEvsPhi_
MonitorElement * meHitEvsPhi_
Definition: BtlLocalRecoValidation.cc:100
BtlLocalRecoValidation::meHitZlocal_
MonitorElement * meHitZlocal_
Definition: BtlLocalRecoValidation.cc:91
geant_units::operators
Definition: GeantUnits.h:18
BtlLocalRecoValidation::meCluEnergy_
MonitorElement * meCluEnergy_
Definition: BtlLocalRecoValidation.cc:121
BtlLocalRecoValidation::btlRecHitsToken_
edm::EDGetTokenT< FTLRecHitCollection > btlRecHitsToken_
Definition: BtlLocalRecoValidation.cc:70
BtlLocalRecoValidation::meHitEvsZ_
MonitorElement * meHitEvsZ_
Definition: BtlLocalRecoValidation.cc:102
MTDTopology::getMTDTopologyMode
int getMTDTopologyMode() const
Definition: MTDTopology.h:15
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
BtlLocalRecoValidation::LocalPosDebug_
const bool LocalPosDebug_
Definition: BtlLocalRecoValidation.cc:68
BtlLocalRecoValidation::meHitEvsEta_
MonitorElement * meHitEvsEta_
Definition: BtlLocalRecoValidation.cc:101
DetId
Definition: DetId.h:17
BtlLocalRecoValidation::meHitY_
MonitorElement * meHitY_
Definition: BtlLocalRecoValidation.cc:94
BTLDetId
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0,...
Definition: BTLDetId.h:18
BtlLocalRecoValidation::meHitTvsE_
MonitorElement * meHitTvsE_
Definition: BtlLocalRecoValidation.cc:99
BtlLocalRecoValidation::btlSimHitsToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
Definition: BtlLocalRecoValidation.cc:71
BtlLocalRecoValidation::meOccupancy_
MonitorElement * meOccupancy_
Definition: BtlLocalRecoValidation.cc:85
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
MixCollection
Definition: MixCollection.h:10
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
BtlLocalRecoValidation::meTPullvsE_
MonitorElement * meTPullvsE_
Definition: BtlLocalRecoValidation.cc:116
BTLDetId::row
int row(unsigned nrows=16) const
Definition: BTLDetId.h:105
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
BtlLocalRecoValidation::meHitPhi_
MonitorElement * meHitPhi_
Definition: BtlLocalRecoValidation.cc:96
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
BtlLocalRecoValidation::meHitTvsZ_
MonitorElement * meHitTvsZ_
Definition: BtlLocalRecoValidation.cc:105
Point3DBase< float, LocalTag >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
BtlLocalRecoValidation::mtdgeoToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
Definition: BtlLocalRecoValidation.cc:74
MTDTopology
Definition: MTDTopology.h:11
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
MTDTopologyMode::crysLayoutFromTopoMode
BTLDetId::CrysLayout crysLayoutFromTopoMode(const int &topoMode)
Definition: MTDTopologyMode.h:19
BtlLocalRecoValidation::meHitXlocal_
MonitorElement * meHitXlocal_
Definition: BtlLocalRecoValidation.cc:89
BtlLocalRecoValidation::meHitEnergy_
MonitorElement * meHitEnergy_
Definition: BtlLocalRecoValidation.cc:81
BtlLocalRecoValidation::meNhits_
MonitorElement * meNhits_
Definition: BtlLocalRecoValidation.cc:79
BtlLocalRecoValidation::meHitYlocal_
MonitorElement * meHitYlocal_
Definition: BtlLocalRecoValidation.cc:90
BtlLocalRecoValidation::meHitLongPos_
MonitorElement * meHitLongPos_
Definition: BtlLocalRecoValidation.cc:106
iEvent
int iEvent
Definition: GenABIO.cc:224
BtlLocalRecoValidation::meHitZ_
MonitorElement * meHitZ_
Definition: BtlLocalRecoValidation.cc:95
BtlLocalRecoValidation::meLongPosPull_
MonitorElement * meLongPosPull_
Definition: BtlLocalRecoValidation.cc:112
BtlLocalRecoValidation::hitMinEnergy_
const double hitMinEnergy_
Definition: BtlLocalRecoValidation.cc:67
edm::makeValid
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
edm::EventSetup::getTransientHandle
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:166
BtlLocalRecoValidation::meCluZvsPhi_
MonitorElement * meCluZvsPhi_
Definition: BtlLocalRecoValidation.cc:125
BtlLocalRecoValidation::meCluEta_
MonitorElement * meCluEta_
Definition: BtlLocalRecoValidation.cc:123
RectangularMTDTopology
Definition: RectangularMTDTopology.h:39
ProxyMTDTopology
Definition: ProxyMTDTopology.h:28
MTDGeometry
Definition: MTDGeometry.h:14
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
BtlLocalRecoValidation::meCluPhi_
MonitorElement * meCluPhi_
Definition: BtlLocalRecoValidation.cc:122
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
Exception
Definition: hltDiff.cc:245
BtlLocalRecoValidation::meHitTvsPhi_
MonitorElement * meHitTvsPhi_
Definition: BtlLocalRecoValidation.cc:103
BtlLocalRecoValidation::meCluTime_
MonitorElement * meCluTime_
Definition: BtlLocalRecoValidation.cc:119
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
BtlLocalRecoValidation::meTPullvsEta_
MonitorElement * meTPullvsEta_
Definition: BtlLocalRecoValidation.cc:117
geant_units::operators::convertMmToCm
constexpr NumType convertMmToCm(NumType millimeters)
Definition: GeantUnits.h:62
BtlLocalRecoValidation::meLongPosPullvsE_
MonitorElement * meLongPosPullvsE_
Definition: BtlLocalRecoValidation.cc:113
BtlLocalRecoValidation::meLongPosPullvsEta_
MonitorElement * meLongPosPullvsEta_
Definition: BtlLocalRecoValidation.cc:114
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
BtlLocalRecoValidation::meHitTimeError_
MonitorElement * meHitTimeError_
Definition: BtlLocalRecoValidation.cc:83
BtlLocalRecoValidation::meTimeRes_
MonitorElement * meTimeRes_
Definition: BtlLocalRecoValidation.cc:109
BTLDetId::geographicalId
BTLDetId geographicalId(CrysLayout lay) const
Definition: BTLDetId.cc:171
BtlLocalRecoValidation::btlRecCluToken_
edm::EDGetTokenT< FTLClusterCollection > btlRecCluToken_
Definition: BtlLocalRecoValidation.cc:72
BtlLocalRecoValidation::meHitLongPosErr_
MonitorElement * meHitLongPosErr_
Definition: BtlLocalRecoValidation.cc:107
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
BtlLocalRecoValidation::meHitTime_
MonitorElement * meHitTime_
Definition: BtlLocalRecoValidation.cc:82
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
BTLDetId::column
int column(unsigned nrows=16) const
Definition: BTLDetId.h:110
MTDHit
Definition: BtlLocalRecoValidation.cc:44