CMS 3D CMS Logo

BtlLocalRecoValidation.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Validation/MtdValidation
4 // Class: BtlLocalRecoValidation
5 //
14 #include <string>
15 
20 
23 
29 
33 
38 
41 
43 
44 struct MTDHit {
45  float energy;
46  float time;
47  float x_local;
48  float y_local;
49  float z_local;
50 };
51 
53 public:
55  ~BtlLocalRecoValidation() override;
56 
57  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
58 
59 private:
60  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
61 
62  void analyze(const edm::Event&, const edm::EventSetup&) override;
63 
64  // ------------ member data ------------
65 
67  const float hitMinEnergy_;
68 
72 
73  // --- histograms declaration
74 
76 
79 
81 
87 
95 
100 
107 };
108 
109 // ------------ constructor and destructor --------------
111  : folder_(iConfig.getParameter<std::string>("folder")),
112  hitMinEnergy_(iConfig.getParameter<double>("hitMinimumEnergy")) {
113  btlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("recHitsTag"));
114  btlSimHitsToken_ = consumes<CrossingFrame<PSimHit> >(iConfig.getParameter<edm::InputTag>("simHitsTag"));
115  btlRecCluToken_ = consumes<FTLClusterCollection>(iConfig.getParameter<edm::InputTag>("recCluTag"));
116 }
117 
119 
120 // ------------ method called for each event ------------
122  using namespace edm;
123  using namespace geant_units::operators;
124 
125  edm::ESHandle<MTDGeometry> geometryHandle;
126  iSetup.get<MTDDigiGeometryRecord>().get(geometryHandle);
127  const MTDGeometry* geom = geometryHandle.product();
128 
129  edm::ESHandle<MTDTopology> topologyHandle;
130  iSetup.get<MTDTopologyRcd>().get(topologyHandle);
131  const MTDTopology* topology = topologyHandle.product();
132 
133  auto btlRecHitsHandle = makeValid(iEvent.getHandle(btlRecHitsToken_));
134  auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_));
135  auto btlRecCluHandle = makeValid(iEvent.getHandle(btlRecCluToken_));
136  MixCollection<PSimHit> btlSimHits(btlSimHitsHandle.product());
137 
138  // --- Loop over the BLT SIM hits
139  std::unordered_map<uint32_t, MTDHit> m_btlSimHits;
140  for (auto const& simHit : btlSimHits) {
141  // --- Use only hits compatible with the in-time bunch-crossing
142  if (simHit.tof() < 0 || simHit.tof() > 25.)
143  continue;
144 
145  DetId id = simHit.detUnitId();
146 
147  auto simHitIt = m_btlSimHits.emplace(id.rawId(), MTDHit()).first;
148 
149  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
150  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
151 
152  // --- Get the time of the first SIM hit in the cell
153  if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) {
154  (simHitIt->second).time = simHit.tof();
155 
156  auto hit_pos = simHit.entryPoint();
157  (simHitIt->second).x_local = hit_pos.x();
158  (simHitIt->second).y_local = hit_pos.y();
159  (simHitIt->second).z_local = hit_pos.z();
160  }
161 
162  } // simHit loop
163 
164  // --- Loop over the BLT RECO hits
165  unsigned int n_reco_btl = 0;
166 
167  for (const auto& recHit : *btlRecHitsHandle) {
168  BTLDetId detId = recHit.id();
169  DetId geoId = detId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(topology->getMTDTopologyMode()));
170  const MTDGeomDet* thedet = geom->idToDet(geoId);
171  if (thedet == nullptr)
172  throw cms::Exception("BtlLocalRecoValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
173  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
174  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
175  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
176 
177  Local3DPoint local_point(0., 0., 0.);
178  local_point = topo.pixelToModuleLocalPoint(local_point, detId.row(topo.nrows()), detId.column(topo.nrows()));
179  const auto& global_point = thedet->toGlobal(local_point);
180 
181  meHitEnergy_->Fill(recHit.energy());
182  meHitTime_->Fill(recHit.time());
183 
184  meOccupancy_->Fill(global_point.z(), global_point.phi());
185 
186  meHitX_->Fill(global_point.x());
187  meHitY_->Fill(global_point.y());
188  meHitZ_->Fill(global_point.z());
189  meHitPhi_->Fill(global_point.phi());
190  meHitEta_->Fill(global_point.eta());
191 
192  meHitTvsE_->Fill(recHit.energy(), recHit.time());
193  meHitEvsPhi_->Fill(global_point.phi(), recHit.energy());
194  meHitEvsEta_->Fill(global_point.eta(), recHit.energy());
195  meHitEvsZ_->Fill(global_point.z(), recHit.energy());
196  meHitTvsPhi_->Fill(global_point.phi(), recHit.time());
197  meHitTvsEta_->Fill(global_point.eta(), recHit.time());
198  meHitTvsZ_->Fill(global_point.z(), recHit.time());
199 
200  // Resolution histograms
201  if (m_btlSimHits.count(detId.rawId()) == 1 && m_btlSimHits[detId.rawId()].energy > hitMinEnergy_) {
202  float time_res = recHit.time() - m_btlSimHits[detId.rawId()].time;
203  float energy_res = recHit.energy() - m_btlSimHits[detId.rawId()].energy;
204 
205  meTimeRes_->Fill(time_res);
206  meEnergyRes_->Fill(energy_res);
207 
208  meTresvsE_->Fill(m_btlSimHits[detId.rawId()].energy, time_res);
209  meEresvsE_->Fill(m_btlSimHits[detId.rawId()].energy, energy_res);
210  }
211 
212  n_reco_btl++;
213 
214  } // recHit loop
215 
216  if (n_reco_btl > 0)
217  meNhits_->Fill(log10(n_reco_btl));
218 
219  // --- Loop over the BTL RECO clusters ---
220  for (const auto& DetSetClu : *btlRecCluHandle) {
221  for (const auto& cluster : DetSetClu) {
222  if (cluster.energy() < hitMinEnergy_)
223  continue;
224  BTLDetId cluId = cluster.id();
225  DetId detIdObject(cluId);
226  const auto& genericDet = geom->idToDetUnit(detIdObject);
227  if (genericDet == nullptr) {
228  throw cms::Exception("BtlLocalRecoValidation")
229  << "GeographicalID: " << std::hex << cluId << " is invalid!" << std::dec << std::endl;
230  }
231 
232  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(genericDet->topology());
233  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
234 
235  Local3DPoint local_point(cluster.x() * 5.7, cluster.y() * 0.3, 0.);
236  local_point = topo.pixelToModuleLocalPoint(local_point, cluId.row(topo.nrows()), cluId.column(topo.ncolumns()));
237  const auto& global_point = genericDet->toGlobal(local_point);
238 
239  meCluEnergy_->Fill(cluster.energy());
240  meCluTime_->Fill(cluster.time());
241  meCluPhi_->Fill(global_point.phi());
242  meCluEta_->Fill(global_point.eta());
243  meCluZvsPhi_->Fill(global_point.z(), global_point.phi());
244  meCluHits_->Fill(cluster.size());
245  }
246  }
247 }
248 
249 // ------------ method for histogram booking ------------
251  edm::Run const& run,
252  edm::EventSetup const& iSetup) {
253  ibook.setCurrentFolder(folder_);
254 
255  // --- histograms booking
256 
257  meNhits_ = ibook.book1D("BtlNhits", "Number of BTL RECO hits;log_{10}(N_{RECO})", 100, 0., 5.25);
258 
259  meHitEnergy_ = ibook.book1D("BtlHitEnergy", "BTL RECO hits energy;E_{RECO} [MeV]", 100, 0., 20.);
260  meHitTime_ = ibook.book1D("BtlHitTime", "BTL RECO hits ToA;ToA_{RECO} [ns]", 100, 0., 25.);
261 
262  meOccupancy_ = ibook.book2D(
263  "BtlOccupancy", "BTL RECO hits occupancy;Z_{RECO} [cm]; #phi_{RECO} [rad]", 65, -260., 260., 126, -3.2, 3.2);
264 
265  meHitX_ = ibook.book1D("BtlHitX", "BTL RECO hits X;X_{RECO} [cm]", 60, -120., 120.);
266  meHitY_ = ibook.book1D("BtlHitY", "BTL RECO hits Y;Y_{RECO} [cm]", 60, -120., 120.);
267  meHitZ_ = ibook.book1D("BtlHitZ", "BTL RECO hits Z;Z_{RECO} [cm]", 100, -260., 260.);
268  meHitPhi_ = ibook.book1D("BtlHitPhi", "BTL RECO hits #phi;#phi_{RECO} [rad]", 126, -3.2, 3.2);
269  meHitEta_ = ibook.book1D("BtlHitEta", "BTL RECO hits #eta;#eta_{RECO}", 100, -1.55, 1.55);
270 
271  meHitTvsE_ =
272  ibook.bookProfile("BtlHitTvsE", "BTL RECO ToA vs energy;E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 20., 0., 100.);
273  meHitEvsPhi_ = ibook.bookProfile(
274  "BtlHitEvsPhi", "BTL RECO energy vs #phi;#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.2, 3.2, 0., 100.);
275  meHitEvsEta_ = ibook.bookProfile(
276  "BtlHitEvsEta", "BTL RECO energy vs #eta;#eta_{RECO};E_{RECO} [MeV]", 50, -1.55, 1.55, 0., 100.);
277  meHitEvsZ_ =
278  ibook.bookProfile("BtlHitEvsZ", "BTL RECO energy vs Z;Z_{RECO} [cm];E_{RECO} [MeV]", 50, -260., 260., 0., 100.);
279  meHitTvsPhi_ = ibook.bookProfile(
280  "BtlHitTvsPhi", "BTL RECO ToA vs #phi;#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.2, 3.2, 0., 100.);
281  meHitTvsEta_ =
282  ibook.bookProfile("BtlHitTvsEta", "BTL RECO ToA vs #eta;#eta_{RECO};ToA_{RECO} [ns]", 50, -1.6, 1.6, 0., 100.);
283  meHitTvsZ_ =
284  ibook.bookProfile("BtlHitTvsZ", "BTL RECO ToA vs Z;Z_{RECO} [cm];ToA_{RECO} [ns]", 50, -260., 260., 0., 100.);
285 
286  meTimeRes_ = ibook.book1D("BtlTimeRes", "BTL time resolution;T_{RECO} - T_{SIM} [ns]", 100, -0.5, 0.5);
287  meEnergyRes_ = ibook.book1D("BtlEnergyRes", "BTL energy resolution;E_{RECO} - E_{SIM} [MeV]", 100, -0.5, 0.5);
288 
289  meTresvsE_ = ibook.bookProfile(
290  "BtlTresvsE", "BTL time resolution vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM} [ns]", 50, 0., 20., 0., 100.);
291  meEresvsE_ = ibook.bookProfile(
292  "BtlEresvsE", "BTL energy resolution vs E;E_{SIM} [MeV];E_{RECO}-E_{SIM} [MeV]", 50, 0., 20., 0., 100.);
293  meCluTime_ = ibook.book1D("BtlCluTime", "BTL cluster time ToA;ToA [ns]", 250, 0, 25);
294  meCluEnergy_ = ibook.book1D("BtlCluEnergy", "BTL cluster energy;E_{RECO} [MeV]", 100, 0, 20);
295  meCluPhi_ = ibook.book1D("BtlCluPhi", "BTL cluster #phi;#phi_{RECO} [rad]", 144, -3.2, 3.2);
296  meCluEta_ = ibook.book1D("BtlCluEta", "BTL cluster #eta;#eta_{RECO}", 100, -1.6, 1.6);
297  meCluHits_ = ibook.book1D("BtlCluHitNumber", "BTL hits per cluster; Cluster size", 10, 0, 10);
298  meCluZvsPhi_ = ibook.book2D(
299  "BtlOccupancy", "BTL cluster Z vs #phi;Z_{RECO} [cm]; #phi_{RECO} [rad]", 144, -260., 260., 50, -3.2, 3.2);
300 }
301 
302 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
305 
306  desc.add<std::string>("folder", "MTD/BTL/LocalReco");
307  desc.add<edm::InputTag>("recHitsTag", edm::InputTag("mtdRecHits", "FTLBarrel"));
308  desc.add<edm::InputTag>("simHitsTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel"));
309  desc.add<edm::InputTag>("recCluTag", edm::InputTag("mtdClusters", "FTLBarrel"));
310  desc.add<double>("hitMinimumEnergy", 1.); // [MeV]
311 
312  descriptions.add("btlLocalReco", desc);
313 }
314 
MTDDigiGeometryRecord
Definition: MTDDigiGeometryRecord.h:15
BtlLocalRecoValidation::meCluHits_
MonitorElement * meCluHits_
Definition: BtlLocalRecoValidation.cc:105
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
BtlLocalRecoValidation::meHitX_
MonitorElement * meHitX_
Definition: BtlLocalRecoValidation.cc:82
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
BTLDetId.h
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
BtlLocalRecoValidation::BtlLocalRecoValidation
BtlLocalRecoValidation(const edm::ParameterSet &)
Definition: BtlLocalRecoValidation.cc:110
BtlLocalRecoValidation::meTresvsE_
MonitorElement * meTresvsE_
Definition: BtlLocalRecoValidation.cc:98
BtlLocalRecoValidation::meEnergyRes_
MonitorElement * meEnergyRes_
Definition: BtlLocalRecoValidation.cc:97
edm::Run
Definition: Run.h:45
BtlLocalRecoValidation::meHitEta_
MonitorElement * meHitEta_
Definition: BtlLocalRecoValidation.cc:86
edm::EDGetTokenT
Definition: EDGetToken.h:33
geant_units::operators::convertUnitsTo
constexpr NumType convertUnitsTo(long double desiredUnits, NumType val)
Definition: GeantUnits.h:87
edm
HLT enums.
Definition: AlignableModifier.h:19
CrossingFrame.h
BtlLocalRecoValidation::meHitTvsEta_
MonitorElement * meHitTvsEta_
Definition: BtlLocalRecoValidation.cc:93
MTDGeometry.h
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
MTDDigiGeometryRecord.h
BtlLocalRecoValidation::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: BtlLocalRecoValidation.cc:121
BtlLocalRecoValidation::folder_
const std::string folder_
Definition: BtlLocalRecoValidation.cc:66
ProxyMTDTopology::specificTopology
virtual const PixelTopology & specificTopology() const
Definition: ProxyMTDTopology.h:89
BtlLocalRecoValidation::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: BtlLocalRecoValidation.cc:250
DQMStore.h
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
BtlLocalRecoValidation::meHitEvsPhi_
MonitorElement * meHitEvsPhi_
Definition: BtlLocalRecoValidation.cc:89
geant_units::operators
Definition: GeantUnits.h:18
BtlLocalRecoValidation::meCluEnergy_
MonitorElement * meCluEnergy_
Definition: BtlLocalRecoValidation.cc:102
MTDTopologyMode.h
BtlLocalRecoValidation::btlRecHitsToken_
edm::EDGetTokenT< FTLRecHitCollection > btlRecHitsToken_
Definition: BtlLocalRecoValidation.cc:69
BtlLocalRecoValidation::meHitEvsZ_
MonitorElement * meHitEvsZ_
Definition: BtlLocalRecoValidation.cc:91
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
BtlLocalRecoValidation::meEresvsE_
MonitorElement * meEresvsE_
Definition: BtlLocalRecoValidation.cc:99
BtlLocalRecoValidation::meHitEvsEta_
MonitorElement * meHitEvsEta_
Definition: BtlLocalRecoValidation.cc:90
DetId
Definition: DetId.h:17
MakerMacros.h
BtlLocalRecoValidation::meHitY_
MonitorElement * meHitY_
Definition: BtlLocalRecoValidation.cc:83
BTLDetId
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0,...
Definition: BTLDetId.h:18
PSimHit.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
BtlLocalRecoValidation::meHitTvsE_
MonitorElement * meHitTvsE_
Definition: BtlLocalRecoValidation.cc:88
BtlLocalRecoValidation::btlSimHitsToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
Definition: BtlLocalRecoValidation.cc:70
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BtlLocalRecoValidation::meOccupancy_
MonitorElement * meOccupancy_
Definition: BtlLocalRecoValidation.cc:80
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
MixCollection.h
MixCollection
Definition: MixCollection.h:11
ecaldqm::topology
const CaloTopology * topology(nullptr)
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
BtlLocalRecoValidation
Definition: BtlLocalRecoValidation.cc:52
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
BTLDetId::row
int row(unsigned nrows=16) const
Definition: BTLDetId.h:105
edm::ESHandle
Definition: DTSurvey.h:22
MTDHit::time
float time
Definition: BtlLocalRecoValidation.cc:46
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:85
RectangularMTDTopology.h
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
BtlLocalRecoValidation::meHitTvsZ_
MonitorElement * meHitTvsZ_
Definition: BtlLocalRecoValidation.cc:94
Point3DBase< float, LocalTag >
DQMEDAnalyzer.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
ValidHandle.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
folder_
std::string folder_
Definition: DQMEDAnalyzer.cc:60
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
MTDTopology
Definition: MTDTopology.h:16
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
MTDTopologyRcd
Definition: MTDTopologyRcd.h:10
Event.h
MTDTopologyMode::crysLayoutFromTopoMode
BTLDetId::CrysLayout crysLayoutFromTopoMode(const int &topoMode)
Definition: MTDTopologyMode.h:19
MTDHit::energy
float energy
Definition: BtlLocalRecoValidation.cc:45
BtlLocalRecoValidation::meHitEnergy_
MonitorElement * meHitEnergy_
Definition: BtlLocalRecoValidation.cc:77
GeantUnits.h
BtlLocalRecoValidation::meNhits_
MonitorElement * meNhits_
Definition: BtlLocalRecoValidation.cc:75
iEvent
int iEvent
Definition: GenABIO.cc:224
BtlLocalRecoValidation::meHitZ_
MonitorElement * meHitZ_
Definition: BtlLocalRecoValidation.cc:84
BtlLocalRecoValidation::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: BtlLocalRecoValidation.cc:303
edm::EventSetup
Definition: EventSetup.h:57
MTDHit::z_local
float z_local
Definition: BtlLocalRecoValidation.cc:49
edm::makeValid
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
get
#define get
BtlLocalRecoValidation::meCluZvsPhi_
MonitorElement * meCluZvsPhi_
Definition: BtlLocalRecoValidation.cc:106
BtlLocalRecoValidation::meCluEta_
MonitorElement * meCluEta_
Definition: BtlLocalRecoValidation.cc:104
RectangularMTDTopology
Definition: RectangularMTDTopology.h:39
FTLRecHitCollections.h
ProxyMTDTopology
Definition: ProxyMTDTopology.h:28
ProxyMTDTopology.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
MTDGeometry
Definition: MTDGeometry.h:14
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
writedatasetfile.run
run
Definition: writedatasetfile.py:27
MTDHit::y_local
float y_local
Definition: BtlLocalRecoValidation.cc:48
MTDTopologyRcd.h
Frameworkfwd.h
BtlLocalRecoValidation::meCluPhi_
MonitorElement * meCluPhi_
Definition: BtlLocalRecoValidation.cc:103
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:246
BtlLocalRecoValidation::meHitTvsPhi_
MonitorElement * meHitTvsPhi_
Definition: BtlLocalRecoValidation.cc:92
BtlLocalRecoValidation::meCluTime_
MonitorElement * meCluTime_
Definition: BtlLocalRecoValidation.cc:101
dqm::implementation::IBooker
Definition: DQMStore.h:43
BtlLocalRecoValidation::hitMinEnergy_
const float hitMinEnergy_
Definition: BtlLocalRecoValidation.cc:67
ParameterSet.h
BtlLocalRecoValidation::meTimeRes_
MonitorElement * meTimeRes_
Definition: BtlLocalRecoValidation.cc:96
BTLDetId::geographicalId
BTLDetId geographicalId(CrysLayout lay) const
Definition: BTLDetId.cc:171
ntuplemaker.time
time
Definition: ntuplemaker.py:310
edm::Event
Definition: Event.h:73
FTLClusterCollections.h
BtlLocalRecoValidation::btlRecCluToken_
edm::EDGetTokenT< FTLClusterCollection > btlRecCluToken_
Definition: BtlLocalRecoValidation.cc:71
BtlLocalRecoValidation::~BtlLocalRecoValidation
~BtlLocalRecoValidation() override
Definition: BtlLocalRecoValidation.cc:118
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
BtlLocalRecoValidation::meHitTime_
MonitorElement * meHitTime_
Definition: BtlLocalRecoValidation.cc:78
MTDHit::x_local
float x_local
Definition: BtlLocalRecoValidation.cc:47
MTDTopology.h
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