CMS 3D CMS Logo

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

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

Inheritance diagram for EtlSimHitsValidation:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 EtlSimHitsValidation (const edm::ParameterSet &)
 
 ~EtlSimHitsValidation () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

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< CrossingFrame< PSimHit > > etlSimHitsToken_
 
const std::string folder_
 
const float hitMinEnergy_
 
MonitorElementmeHitEnergy_ [2]
 
MonitorElementmeHitEta_ [2]
 
MonitorElementmeHitEvsEta_ [2]
 
MonitorElementmeHitEvsPhi_ [2]
 
MonitorElementmeHitPhi_ [2]
 
MonitorElementmeHitTime_ [2]
 
MonitorElementmeHitTvsE_ [2]
 
MonitorElementmeHitTvsEta_ [2]
 
MonitorElementmeHitTvsPhi_ [2]
 
MonitorElementmeHitX_ [2]
 
MonitorElementmeHitXlocal_ [2]
 
MonitorElementmeHitY_ [2]
 
MonitorElementmeHitYlocal_ [2]
 
MonitorElementmeHitZ_ [2]
 
MonitorElementmeHitZlocal_ [2]
 
MonitorElementmeNhits_ [2]
 
MonitorElementmeNtrkPerCell_ [2]
 
MonitorElementmeOccupancy_ [2]
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Description: ETL SIM hits validation

Implementation: [Notes on implementation]

Definition at line 43 of file EtlSimHitsValidation.cc.

Constructor & Destructor Documentation

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

Definition at line 90 of file EtlSimHitsValidation.cc.

References etlSimHitsToken_, and edm::ParameterSet::getParameter().

91  : folder_(iConfig.getParameter<std::string>("folder")),
92  hitMinEnergy_(iConfig.getParameter<double>("hitMinimumEnergy")) {
93  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit> >(iConfig.getParameter<edm::InputTag>("inputTag"));
94 }
T getParameter(std::string const &) const
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
const std::string folder_
EtlSimHitsValidation::~EtlSimHitsValidation ( )
override

Definition at line 96 of file EtlSimHitsValidation.cc.

96 {}

Member Function Documentation

void EtlSimHitsValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 99 of file EtlSimHitsValidation.cc.

References geant_units::operators::convertMmToCm(), geant_units::operators::convertUnitsTo(), TauDecayModes::dec, HCALHighEnergyHPDFilter_cfi::energy, etlSimHitsToken_, Exception, dqm::impl::MonitorElement::Fill(), ETLDetId::geographicalId(), relativeConstraints::geom, edm::EventSetup::get(), edm::Event::getHandle(), hitMinEnergy_, MTDGeometry::idToDet(), edm::makeValid(), meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitPhi_, meHitTime_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meNhits_, meNtrkPerCell_, meOccupancy_, edm::ESHandle< T >::product(), DetId::rawId(), rpcPointValidation_cfi::simHit, findQualityFiles::size, ntuplemaker::time, GeomDet::toGlobal(), x, y, and z.

99  {
100  using namespace edm;
101  using namespace geant_units::operators;
102 
103  edm::ESHandle<MTDGeometry> geometryHandle;
104  iSetup.get<MTDDigiGeometryRecord>().get(geometryHandle);
105  const MTDGeometry* geom = geometryHandle.product();
106 
107  auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_));
108  MixCollection<PSimHit> etlSimHits(etlSimHitsHandle.product());
109 
110  std::unordered_map<uint32_t, MTDHit> m_etlHits[2];
111  std::unordered_map<uint32_t, std::set<int> > m_etlTrkPerCell[2];
112 
113  // --- Loop over the BLT SIM hits
114  for (auto const& simHit : etlSimHits) {
115  // --- Use only hits compatible with the in-time bunch-crossing
116  if (simHit.tof() < 0 || simHit.tof() > 25.)
117  continue;
118 
119  ETLDetId id = simHit.detUnitId();
120 
121  int idet = (id.zside() + 1) / 2;
122 
123  m_etlTrkPerCell[idet][id.rawId()].insert(simHit.trackId());
124 
125  auto simHitIt = m_etlHits[idet].emplace(id.rawId(), MTDHit()).first;
126 
127  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
128  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
129 
130  // --- Get the time of the first SIM hit in the cell
131  if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) {
132  (simHitIt->second).time = simHit.tof();
133 
134  auto hit_pos = simHit.entryPoint();
135  (simHitIt->second).x = hit_pos.x();
136  (simHitIt->second).y = hit_pos.y();
137  (simHitIt->second).z = hit_pos.z();
138  }
139 
140  } // simHit loop
141 
142  // ==============================================================================
143  // Histogram filling
144  // ==============================================================================
145 
146  for (int idet = 0; idet < 2; ++idet) {
147  meNhits_[idet]->Fill(m_etlHits[idet].size());
148 
149  for (auto const& hit : m_etlTrkPerCell[idet])
150  meNtrkPerCell_[idet]->Fill((hit.second).size());
151 
152  for (auto const& hit : m_etlHits[idet]) {
153  if ((hit.second).energy < hitMinEnergy_)
154  continue;
155 
156  // --- Get the SIM hit global position
157  ETLDetId detId(hit.first);
158 
159  DetId geoId = detId.geographicalId();
160  const MTDGeomDet* thedet = geom->idToDet(geoId);
161  if (thedet == nullptr)
162  throw cms::Exception("EtlSimHitsValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
163  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
164 
165  Local3DPoint local_point(
166  convertMmToCm((hit.second).x), convertMmToCm((hit.second).y), convertMmToCm((hit.second).z));
167  const auto& global_point = thedet->toGlobal(local_point);
168 
169  // --- Fill the histograms
170 
171  meHitEnergy_[idet]->Fill((hit.second).energy);
172  meHitTime_[idet]->Fill((hit.second).time);
173 
174  meHitXlocal_[idet]->Fill((hit.second).x);
175  meHitYlocal_[idet]->Fill((hit.second).y);
176  meHitZlocal_[idet]->Fill((hit.second).z);
177 
178  meOccupancy_[idet]->Fill(global_point.x(), global_point.y());
179 
180  meHitX_[idet]->Fill(global_point.x());
181  meHitY_[idet]->Fill(global_point.y());
182  meHitZ_[idet]->Fill(global_point.z());
183  meHitPhi_[idet]->Fill(global_point.phi());
184  meHitEta_[idet]->Fill(global_point.eta());
185 
186  meHitTvsE_[idet]->Fill((hit.second).energy, (hit.second).time);
187  meHitEvsPhi_[idet]->Fill(global_point.phi(), (hit.second).energy);
188  meHitEvsEta_[idet]->Fill(global_point.eta(), (hit.second).energy);
189  meHitTvsPhi_[idet]->Fill(global_point.phi(), (hit.second).time);
190  meHitTvsEta_[idet]->Fill(global_point.eta(), (hit.second).time);
191 
192  } // hit loop
193 
194  } // idet loop
195 }
size
Write out results.
MonitorElement * meHitTime_[2]
MonitorElement * meHitXlocal_[2]
constexpr NumType convertUnitsTo(long double desiredUnits, NumType val)
Definition: GeantUnits.h:87
MonitorElement * meHitTvsPhi_[2]
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
MonitorElement * meNtrkPerCell_[2]
MonitorElement * meHitZ_[2]
MonitorElement * meHitEvsPhi_[2]
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
MonitorElement * meHitEnergy_[2]
MonitorElement * meHitZlocal_[2]
MonitorElement * meHitY_[2]
MonitorElement * meHitEta_[2]
void Fill(long long x)
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:547
const MTDGeomDet * idToDet(DetId) const override
Definition: MTDGeometry.cc:160
MonitorElement * meHitYlocal_[2]
MonitorElement * meHitTvsEta_[2]
MonitorElement * meOccupancy_[2]
MonitorElement * meHitTvsE_[2]
Definition: DetId.h:17
MonitorElement * meHitX_[2]
MonitorElement * meHitPhi_[2]
MonitorElement * meHitEvsEta_[2]
MonitorElement * meNhits_[2]
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
HLT enums.
T get() const
Definition: EventSetup.h:73
constexpr NumType convertMmToCm(NumType millimeters)
Definition: GeantUnits.h:62
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
T const * product() const
Definition: ESHandle.h:86
void EtlSimHitsValidation::bookHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 198 of file EtlSimHitsValidation.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), folder_, meHitEnergy_, meHitEta_, meHitEvsEta_, meHitEvsPhi_, meHitPhi_, meHitTime_, meHitTvsE_, meHitTvsEta_, meHitTvsPhi_, meHitX_, meHitXlocal_, meHitY_, meHitYlocal_, meHitZ_, meHitZlocal_, meNhits_, meNtrkPerCell_, meOccupancy_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

200  {
201  ibook.setCurrentFolder(folder_);
202 
203  // --- histograms booking
204 
205  meNhits_[1] = ibook.book1D("EtlNhitsZpos", "Number of ETL cells with SIM hits (+Z);N_{ETL cells}", 100, 0., 5000.);
206  meNhits_[0] = ibook.book1D("EtlNhitsZneg", "Number of ETL cells with SIM hits (-Z);N_{ETL cells}", 100, 0., 5000.);
207  meNtrkPerCell_[1] = ibook.book1D("EtlNtrkPerCellZpos", "Number of tracks per ETL sensor (+Z);N_{trk}", 10, 0., 10.);
208  meNtrkPerCell_[0] = ibook.book1D("EtlNtrkPerCellZneg", "Number of tracks per ETL sensor (-Z);N_{trk}", 10, 0., 10.);
209 
210  meHitEnergy_[1] = ibook.book1D("EtlHitEnergyZpos", "ETL SIM hits energy (+Z);E_{SIM} [MeV]", 100, 0., 3.);
211  meHitEnergy_[0] = ibook.book1D("EtlHitEnergyZneg", "ETL SIM hits energy (-Z);E_{SIM} [MeV]", 100, 0., 3.);
212  meHitTime_[1] = ibook.book1D("EtlHitTimeZpos", "ETL SIM hits ToA (+Z);ToA_{SIM} [ns]", 100, 0., 25.);
213  meHitTime_[0] = ibook.book1D("EtlHitTimeZneg", "ETL SIM hits ToA (-Z);ToA_{SIM} [ns]", 100, 0., 25.);
214 
215  meHitXlocal_[1] = ibook.book1D("EtlHitXlocalZpos", "ETL SIM local X (+Z);X_{SIM}^{LOC} [mm]", 100, -25., 25.);
216  meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZneg", "ETL SIM local X (-Z);X_{SIM}^{LOC} [mm]", 100, -25., 25.);
217  meHitYlocal_[1] = ibook.book1D("EtlHitYlocalZpos", "ETL SIM local Y (+Z);Y_{SIM}^{LOC} [mm]", 100, -48., 48.);
218  meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZneg", "ETL SIM local Y (-Z);Y_{SIM}^{LOC} [mm]", 100, -48., 48.);
219  meHitZlocal_[1] = ibook.book1D("EtlHitZlocalZpos", "ETL SIM local Z (+Z);Z_{SIM}^{LOC} [mm]", 80, -0.16, 0.16);
220  meHitZlocal_[0] = ibook.book1D("EtlHitZlocalZneg", "ETL SIM local Z (-Z);Z_{SIM}^{LOC} [mm]", 80, -0.16, 0.16);
221 
222  meOccupancy_[1] = ibook.book2D(
223  "EtlOccupancyZpos", "ETL SIM hits occupancy (+Z);X_{SIM} [cm];Y_{SIM} [cm]", 135, -135., 135., 135, -135., 135.);
224  meOccupancy_[0] = ibook.book2D(
225  "EtlOccupancyZneg", "ETL SIM hits occupancy (-Z);X_{SIM} [cm];Y_{SIM} [cm]", 135, -135., 135., 135, -135., 135.);
226 
227  meHitX_[1] = ibook.book1D("EtlHitXZpos", "ETL SIM hits X (+Z);X_{SIM} [cm]", 100, -130., 130.);
228  meHitX_[0] = ibook.book1D("EtlHitXZneg", "ETL SIM hits X (-Z);X_{SIM} [cm]", 100, -130., 130.);
229  meHitY_[1] = ibook.book1D("EtlHitYZpos", "ETL SIM hits Y (+Z);Y_{SIM} [cm]", 100, -130., 130.);
230  meHitY_[0] = ibook.book1D("EtlHitYZneg", "ETL SIM hits Y (-Z);Y_{SIM} [cm]", 100, -130., 130.);
231  meHitZ_[1] = ibook.book1D("EtlHitZZpos", "ETL SIM hits Z (+Z);Z_{SIM} [cm]", 100, 303.4, 304.2);
232  meHitZ_[0] = ibook.book1D("EtlHitZZneg", "ETL SIM hits Z (-Z);Z_{SIM} [cm]", 100, -304.2, -303.4);
233 
234  meHitPhi_[1] = ibook.book1D("EtlHitPhiZpos", "ETL SIM hits #phi (+Z);#phi_{SIM} [rad]", 100, -3.15, 3.15);
235  meHitPhi_[0] = ibook.book1D("EtlHitPhiZneg", "ETL SIM hits #phi (-Z);#phi_{SIM} [rad]", 100, -3.15, 3.15);
236  meHitEta_[1] = ibook.book1D("EtlHitEtaZpos", "ETL SIM hits #eta (+Z);#eta_{SIM}", 100, 1.56, 3.2);
237  meHitEta_[0] = ibook.book1D("EtlHitEtaZneg", "ETL SIM hits #eta (-Z);#eta_{SIM}", 100, -3.2, -1.56);
238 
239  meHitTvsE_[1] = ibook.bookProfile(
240  "EtlHitTvsEZpos", "ETL SIM time vs energy (+Z);E_{SIM} [MeV];T_{SIM} [ns]", 50, 0., 2., 0., 100.);
241  meHitTvsE_[0] = ibook.bookProfile(
242  "EtlHitTvsEZneg", "ETL SIM time vs energy (-Z);E_{SIM} [MeV];T_{SIM} [ns]", 50, 0., 2., 0., 100.);
243  meHitEvsPhi_[1] = ibook.bookProfile(
244  "EtlHitEvsPhiZpos", "ETL SIM energy vs #phi (+Z);#phi_{SIM} [rad];E_{SIM} [MeV]", 50, -3.15, 3.15, 0., 100.);
245  meHitEvsPhi_[0] = ibook.bookProfile(
246  "EtlHitEvsPhiZneg", "ETL SIM energy vs #phi (-Z);#phi_{SIM} [rad];E_{SIM} [MeV]", 50, -3.15, 3.15, 0., 100.);
247  meHitEvsEta_[1] = ibook.bookProfile(
248  "EtlHitEvsEtaZpos", "ETL SIM energy vs #eta (+Z);#eta_{SIM};E_{SIM} [MeV]", 50, 1.56, 3.2, 0., 100.);
249  meHitEvsEta_[0] = ibook.bookProfile(
250  "EtlHitEvsEtaZneg", "ETL SIM energy vs #eta (-Z);#eta_{SIM};E_{SIM} [MeV]", 50, -3.2, -1.56, 0., 100.);
251  meHitTvsPhi_[1] = ibook.bookProfile(
252  "EtlHitTvsPhiZpos", "ETL SIM time vs #phi (+Z);#phi_{SIM} [rad];T_{SIM} [ns]", 50, -3.15, 3.15, 0., 100.);
253  meHitTvsPhi_[0] = ibook.bookProfile(
254  "EtlHitTvsPhiZneg", "ETL SIM time vs #phi (-Z);#phi_{SIM} [rad];T_{SIM} [ns]", 50, -3.15, 3.15, 0., 100.);
255  meHitTvsEta_[1] = ibook.bookProfile(
256  "EtlHitTvsEtaZpos", "ETL SIM time vs #eta (+Z);#eta_{SIM};T_{SIM} [ns]", 50, 1.56, 3.2, 0., 100.);
257  meHitTvsEta_[0] = ibook.bookProfile(
258  "EtlHitTvsEtaZneg", "ETL SIM time vs #eta (-Z);#eta_{SIM};T_{SIM} [ns]", 50, -3.2, -1.56, 0., 100.);
259 }
MonitorElement * meHitTime_[2]
MonitorElement * meHitXlocal_[2]
MonitorElement * meHitTvsPhi_[2]
MonitorElement * meNtrkPerCell_[2]
MonitorElement * meHitZ_[2]
MonitorElement * meHitEvsPhi_[2]
MonitorElement * meHitEnergy_[2]
MonitorElement * meHitZlocal_[2]
MonitorElement * meHitY_[2]
MonitorElement * meHitEta_[2]
MonitorElement * meHitYlocal_[2]
MonitorElement * meHitTvsEta_[2]
MonitorElement * meOccupancy_[2]
MonitorElement * meHitTvsE_[2]
MonitorElement * meHitX_[2]
MonitorElement * meHitPhi_[2]
MonitorElement * meHitEvsEta_[2]
MonitorElement * meNhits_[2]
const std::string folder_
void EtlSimHitsValidation::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 262 of file EtlSimHitsValidation.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), DEFINE_FWK_MODULE, HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

262  {
264 
265  desc.add<std::string>("folder", "MTD/ETL/SimHits");
266  desc.add<edm::InputTag>("inputTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
267  desc.add<double>("hitMinimumEnergy", 0.1); // [MeV]
268 
269  descriptions.add("etlSimHits", desc);
270 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

edm::EDGetTokenT<CrossingFrame<PSimHit> > EtlSimHitsValidation::etlSimHitsToken_
private

Definition at line 60 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and EtlSimHitsValidation().

const std::string EtlSimHitsValidation::folder_
private

Definition at line 57 of file EtlSimHitsValidation.cc.

Referenced by bookHistograms().

const float EtlSimHitsValidation::hitMinEnergy_
private

Definition at line 58 of file EtlSimHitsValidation.cc.

Referenced by analyze().

MonitorElement* EtlSimHitsValidation::meHitEnergy_[2]
private

Definition at line 67 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitEta_[2]
private

Definition at line 80 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitEvsEta_[2]
private

Definition at line 84 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitEvsPhi_[2]
private

Definition at line 83 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitPhi_[2]
private

Definition at line 79 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitTime_[2]
private

Definition at line 68 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitTvsE_[2]
private

Definition at line 82 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitTvsEta_[2]
private

Definition at line 86 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitTvsPhi_[2]
private

Definition at line 85 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitX_[2]
private

Definition at line 76 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitXlocal_[2]
private

Definition at line 70 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitY_[2]
private

Definition at line 77 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitYlocal_[2]
private

Definition at line 71 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitZ_[2]
private

Definition at line 78 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meHitZlocal_[2]
private

Definition at line 72 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meNhits_[2]
private

Definition at line 64 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meNtrkPerCell_[2]
private

Definition at line 65 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* EtlSimHitsValidation::meOccupancy_[2]
private

Definition at line 74 of file EtlSimHitsValidation.cc.

Referenced by analyze(), and bookHistograms().