CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
HGCGeometryValidation Class Reference
Inheritance diagram for HGCGeometryValidation:
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

 HGCGeometryValidation (const edm::ParameterSet &)
 
 ~HGCGeometryValidation () 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 &)
 
 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)
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
- 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)
 

Private Attributes

edm::EDGetTokenT< PHGCalValidInfog4Token_
 
std::vector< std::string > geometrySource_
 
const HcalDDDSimConstantshcons_
 
MonitorElementhebdX
 
MonitorElementhebdxVsLayer
 
MonitorElementhebdxVsX
 
MonitorElementhebdY
 
MonitorElementhebdyVsLayer
 
MonitorElementhebdyVsY
 
MonitorElementhebdZ
 
MonitorElementhebdzVsLayer
 
MonitorElementhebdzVsZ
 
MonitorElementhebLayerVsEnStep
 
MonitorElementhebTotEdepStep
 
MonitorElementhebXG4VsId
 
MonitorElementhebYG4VsId
 
MonitorElementhebZG4VsId
 
MonitorElementheedX
 
MonitorElementheedxVsLayer
 
MonitorElementheedxVsX
 
MonitorElementheedY
 
MonitorElementheedyVsLayer
 
MonitorElementheedyVsY
 
MonitorElementheedZ
 
MonitorElementheedzVsLayer
 
MonitorElementheedzVsZ
 
MonitorElementheeLayerVsEnStep
 
MonitorElementheeTotEdepStep
 
MonitorElementheeXG4VsId
 
MonitorElementheeYG4VsId
 
MonitorElementheeZG4VsId
 
MonitorElementhefdX
 
MonitorElementhefdxVsLayer
 
MonitorElementhefdxVsX
 
MonitorElementhefdY
 
MonitorElementhefdyVsLayer
 
MonitorElementhefdyVsY
 
MonitorElementhefdZ
 
MonitorElementhefdzVsLayer
 
MonitorElementhefdzVsZ
 
MonitorElementhefLayerVsEnStep
 
MonitorElementhefTotEdepStep
 
MonitorElementhefXG4VsId
 
MonitorElementhefYG4VsId
 
MonitorElementhefZG4VsId
 
std::vector< const HGCalDDDConstants * > hgcGeometry_
 
int verbosity_
 

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 Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 44 of file HGCGeometryValidation.cc.

Constructor & Destructor Documentation

HGCGeometryValidation::HGCGeometryValidation ( const edm::ParameterSet cfg)
explicit

Definition at line 82 of file HGCGeometryValidation.cc.

References g4Token_, geometrySource_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and verbosity_.

82  : hcons_(nullptr) {
83  g4Token_ = consumes<PHGCalValidInfo>(cfg.getParameter<edm::InputTag>("g4Source"));
84  geometrySource_ = cfg.getUntrackedParameter<std::vector<std::string> >("geometrySource");
85  verbosity_ = cfg.getUntrackedParameter<int>("verbosity", 0);
86 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< PHGCalValidInfo > g4Token_
const HcalDDDSimConstants * hcons_
std::vector< std::string > geometrySource_
HGCGeometryValidation::~HGCGeometryValidation ( )
override

Definition at line 88 of file HGCGeometryValidation.cc.

88 {}

Member Function Documentation

void HGCGeometryValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 181 of file HGCGeometryValidation.cc.

References HcalDDDSimConstants::cell(), funct::cos(), DEFINE_FWK_MODULE, LEDCalibrationChannels::depth, runTauDisplay::dtype, PHGCalValidInfo::eehgcEdep(), PHGCalValidInfo::eeTotEdep(), PVValHelper::eta, JetChargeProducer_cfi::exp, dqm::impl::MonitorElement::Fill(), DetId::Forward, g4Token_, edm::Event::getByToken(), DetId::Hcal, hcons_, hebdX, hebdxVsLayer, hebdxVsX, hebdY, hebdyVsLayer, hebdyVsY, hebdZ, hebdzVsLayer, hebdzVsZ, PHGCalValidInfo::hebhgcEdep(), hebLayerVsEnStep, PHGCalValidInfo::hebTotEdep(), hebTotEdepStep, hebXG4VsId, hebYG4VsId, hebZG4VsId, heedX, heedxVsLayer, heedxVsX, heedY, heedyVsLayer, heedyVsY, heedZ, heedzVsLayer, heedzVsZ, heeLayerVsEnStep, heeTotEdepStep, heeXG4VsId, heeYG4VsId, heeZG4VsId, hefdX, hefdxVsLayer, hefdxVsX, hefdY, hefdyVsLayer, hefdyVsY, hefdZ, hefdzVsLayer, hefdzVsZ, PHGCalValidInfo::hefhgcEdep(), hefLayerVsEnStep, PHGCalValidInfo::hefTotEdep(), hefTotEdepStep, hefXG4VsId, hefYG4VsId, hefZG4VsId, DetId::HGCalEE, DetId::HGCalHSc, DetId::HGCalHSi, HGCEE, hgcGeometry_, PHGCalValidInfo::hitDets(), PHGCalValidInfo::hitIndex(), PHGCalValidInfo::hitvtxX(), PHGCalValidInfo::hitvtxY(), PHGCalValidInfo::hitvtxZ(), mps_fire::i, triggerObjects_cff::id, createfilelist::int, LEDCalibrationChannels::iphi, edm::HandleBase::isValid(), mmtocm, phi, rho, funct::sin(), funct::tan(), HcalTestNumbering::unpackHcalIndex(), HGCalTestNumbering::unpackHexagonIndex(), verbosity_, geometryCSVtoXML::xx, geometryCSVtoXML::xy, geometryCSVtoXML::yy, ecaldqm::zside(), and geometryCSVtoXML::zz.

181  {
182  //Accessing G4 information
184  iEvent.getByToken(g4Token_, infoLayer);
185 
186  if (infoLayer.isValid()) {
187  //step vertex information
188  std::vector<float> hitVtxX = infoLayer->hitvtxX();
189  std::vector<float> hitVtxY = infoLayer->hitvtxY();
190  std::vector<float> hitVtxZ = infoLayer->hitvtxZ();
191  std::vector<unsigned int> hitDet = infoLayer->hitDets();
192  std::vector<unsigned int> hitIdx = infoLayer->hitIndex();
193 
194  //energy information
195  std::vector<float> edepLayerEE = infoLayer->eehgcEdep();
196  std::vector<float> edepLayerHE = infoLayer->hefhgcEdep();
197  std::vector<float> edepLayerHB = infoLayer->hebhgcEdep();
198 
199  unsigned int i;
200  for (i = 0; i < edepLayerEE.size(); i++) {
201  heeLayerVsEnStep->Fill(i, edepLayerEE.at(i));
202  }
203 
204  for (i = 0; i < edepLayerHE.size(); i++) {
205  hefLayerVsEnStep->Fill(i, edepLayerHE.at(i));
206  }
207 
208  for (i = 0; i < edepLayerHB.size(); i++) {
209  hebLayerVsEnStep->Fill(i, edepLayerHB.at(i));
210  }
211 
212  //fill total energy deposited
213  heeTotEdepStep->Fill((double)infoLayer->eeTotEdep());
214  hefTotEdepStep->Fill((double)infoLayer->hefTotEdep());
215  hebTotEdepStep->Fill((double)infoLayer->hebTotEdep());
216 
217  //loop over all hits
218  for (unsigned int i = 0; i < hitVtxX.size(); i++) {
219  hitVtxX.at(i) = mmtocm * hitVtxX.at(i);
220  hitVtxY.at(i) = mmtocm * hitVtxY.at(i);
221  hitVtxZ.at(i) = mmtocm * hitVtxZ.at(i);
222 
223  if ((hitDet.at(i) == (unsigned int)(DetId::Forward)) || (hitDet.at(i) == (unsigned int)(DetId::HGCalEE)) ||
224  (hitDet.at(i) == (unsigned int)(DetId::HGCalHSi)) || (hitDet.at(i) == (unsigned int)(DetId::HGCalHSc))) {
225  double xx, yy;
226  int dtype(0), layer(0), zside(1);
227  std::pair<float, float> xy;
228  if (hitDet.at(i) == (unsigned int)(DetId::Forward)) {
229  int subdet, wafer, celltype, cell;
230  HGCalTestNumbering::unpackHexagonIndex(hitIdx.at(i), subdet, zside, layer, wafer, celltype, cell);
231  dtype = (subdet == (int)(HGCEE)) ? 0 : 1;
232  xy = hgcGeometry_[dtype]->locateCell(cell, layer, wafer, true); //cm
233  } else if ((hitDet.at(i) == (unsigned int)(DetId::HGCalEE)) ||
234  (hitDet.at(i) == (unsigned int)(DetId::HGCalHSi))) {
235  HGCSiliconDetId id(hitIdx.at(i));
236  dtype = (id.det() == DetId::HGCalEE) ? 0 : 1;
237  layer = id.layer();
238  zside = id.zside();
239  xy = hgcGeometry_[dtype]->locateCell(layer, id.waferU(), id.waferV(), id.cellU(), id.cellV(), true, true);
240  } else {
241  HGCScintillatorDetId id(hitIdx.at(i));
242  dtype = 2;
243  layer = id.layer();
244  zside = id.zside();
245  xy = hgcGeometry_[dtype]->locateCellTrap(layer, id.ietaAbs(), id.iphi(), true);
246  }
247  double zz = hgcGeometry_[dtype]->waferZ(layer, true); //cm
248  if (zside < 0)
249  zz = -zz;
250  xx = (zside < 0) ? -xy.first : xy.first;
251  yy = xy.second;
252 
253  if (dtype == 0) {
254  heedzVsZ->Fill(zz, (hitVtxZ.at(i) - zz));
255  heedyVsY->Fill(yy, (hitVtxY.at(i) - yy));
256  heedxVsX->Fill(xx, (hitVtxX.at(i) - xx));
257 
258  heeXG4VsId->Fill(hitVtxX.at(i), xx);
259  heeYG4VsId->Fill(hitVtxY.at(i), yy);
260  heeZG4VsId->Fill(hitVtxZ.at(i), zz);
261 
262  heedzVsLayer->Fill(layer, (hitVtxZ.at(i) - zz));
263  heedyVsLayer->Fill(layer, (hitVtxY.at(i) - yy));
264  heedxVsLayer->Fill(layer, (hitVtxX.at(i) - xx));
265 
266  heedX->Fill((hitVtxX.at(i) - xx));
267  heedZ->Fill((hitVtxZ.at(i) - zz));
268  heedY->Fill((hitVtxY.at(i) - yy));
269 
270  } else if (dtype == 1) {
271  hefdzVsZ->Fill(zz, (hitVtxZ.at(i) - zz));
272  hefdyVsY->Fill(yy, (hitVtxY.at(i) - yy));
273  hefdxVsX->Fill(xx, (hitVtxX.at(i) - xx));
274 
275  hefXG4VsId->Fill(hitVtxX.at(i), xx);
276  hefYG4VsId->Fill(hitVtxY.at(i), yy);
277  hefZG4VsId->Fill(hitVtxZ.at(i), zz);
278 
279  hefdzVsLayer->Fill(layer, (hitVtxZ.at(i) - zz));
280  hefdyVsLayer->Fill(layer, (hitVtxY.at(i) - yy));
281  hefdxVsLayer->Fill(layer, (hitVtxX.at(i) - xx));
282 
283  hefdX->Fill((hitVtxX.at(i) - xx));
284  hefdZ->Fill((hitVtxZ.at(i) - zz));
285  hefdY->Fill((hitVtxY.at(i) - yy));
286 
287  } else {
288  hebdzVsZ->Fill(zz, (hitVtxZ.at(i) - zz));
289  hebdyVsY->Fill(yy, (hitVtxY.at(i) - yy));
290  hebdxVsX->Fill(xx, (hitVtxX.at(i) - xx));
291 
292  hebXG4VsId->Fill(hitVtxX.at(i), xx);
293  hebYG4VsId->Fill(hitVtxY.at(i), yy);
294  hebZG4VsId->Fill(hitVtxZ.at(i), zz);
295 
296  hebdzVsLayer->Fill(layer, (hitVtxZ.at(i) - zz));
297  hebdyVsLayer->Fill(layer, (hitVtxY.at(i) - yy));
298  hebdxVsLayer->Fill(layer, (hitVtxX.at(i) - xx));
299 
300  hebdX->Fill((hitVtxX.at(i) - xx));
301  hebdZ->Fill((hitVtxZ.at(i) - zz));
302  hebdY->Fill((hitVtxY.at(i) - yy));
303  }
304 
305  } else if (hitDet.at(i) == (unsigned int)(DetId::Hcal)) {
306  int subdet, zside, depth, eta, phi, lay;
307  HcalTestNumbering::unpackHcalIndex(hitIdx.at(i), subdet, zside, depth, eta, phi, lay);
308  HcalCellType::HcalCell cell = hcons_->cell(subdet, zside, lay, eta, phi);
309 
310  double zz = mmtocm * cell.rz; //mm --> cm
311  if (zside == 0)
312  zz = -zz;
313  double rho = zz * tan(2.0 * atan(exp(-cell.eta)));
314  double xx = rho * cos(cell.phi); //cm
315  double yy = rho * sin(cell.phi); //cm
316 
317  hebdzVsZ->Fill(zz, (hitVtxZ.at(i) - zz));
318  hebdyVsY->Fill(yy, (hitVtxY.at(i) - yy));
319  hebdxVsX->Fill(xx, (hitVtxX.at(i) - xx));
320 
321  hebXG4VsId->Fill(hitVtxX.at(i), xx);
322  hebYG4VsId->Fill(hitVtxY.at(i), yy);
323  hebZG4VsId->Fill(hitVtxZ.at(i), zz);
324 
325  hebdzVsLayer->Fill(lay, (hitVtxZ.at(i) - zz));
326  hebdyVsLayer->Fill(lay, (hitVtxY.at(i) - yy));
327  hebdxVsLayer->Fill(lay, (hitVtxX.at(i) - xx));
328 
329  hebdX->Fill((hitVtxX.at(i) - xx));
330  hebdZ->Fill((hitVtxZ.at(i) - zz));
331  hebdY->Fill((hitVtxY.at(i) - yy));
332  }
333 
334  } //end G4 hits
335 
336  } else {
337  if (verbosity_ > 0)
338  edm::LogVerbatim("HGCalValid") << "HGCGeometryValidation::No PHGCalInfo";
339  }
340 }
edm::EDGetTokenT< PHGCalValidInfo > g4Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
int zside(DetId const &)
HcalCellType::HcalCell cell(const int &det, const int &zside, const int &depth, const int &etaR, const int &iphi) const
float eeTotEdep() const
std::vector< float > hitvtxZ() const
void Fill(long long x)
float hefTotEdep() const
MonitorElement * hefTotEdepStep
std::vector< float > eehgcEdep() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
MonitorElement * hefLayerVsEnStep
MonitorElement * heeLayerVsEnStep
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
static void unpackHcalIndex(const uint32_t &idx, int &det, int &z, int &depth, int &eta, int &phi, int &lay)
const double mmtocm
bool isValid() const
Definition: HandleBase.h:70
std::vector< float > hitvtxX() const
MonitorElement * hebTotEdepStep
std::vector< float > hitvtxY() const
std::vector< float > hebhgcEdep() const
MonitorElement * hebLayerVsEnStep
const HcalDDDSimConstants * hcons_
std::vector< const HGCalDDDConstants * > hgcGeometry_
float hebTotEdep() const
std::vector< unsigned int > hitIndex() const
MonitorElement * heeTotEdepStep
std::vector< unsigned int > hitDets() const
std::vector< float > hefhgcEdep() const
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
void HGCGeometryValidation::bookHistograms ( DQMStore::IBooker iB,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 120 of file HGCGeometryValidation.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), hebdX, hebdxVsLayer, hebdxVsX, hebdY, hebdyVsLayer, hebdyVsY, hebdZ, hebdzVsLayer, hebdzVsZ, hebLayerVsEnStep, hebTotEdepStep, hebXG4VsId, hebYG4VsId, hebZG4VsId, heedX, heedxVsLayer, heedxVsX, heedY, heedyVsLayer, heedyVsY, heedZ, heedzVsLayer, heedzVsZ, heeLayerVsEnStep, heeTotEdepStep, heeXG4VsId, heeYG4VsId, heeZG4VsId, hefdX, hefdxVsLayer, hefdxVsX, hefdY, hefdyVsLayer, hefdyVsY, hefdZ, hefdzVsLayer, hefdzVsZ, hefLayerVsEnStep, hefTotEdepStep, hefXG4VsId, hefYG4VsId, hefZG4VsId, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

120  {
121  iB.setCurrentFolder("HGCAL/HGCalSimHitsV/Geometry");
122 
123  //initiating histograms
124  heeTotEdepStep = iB.book1D("heeTotEdepStep", "", 100, 0, 100);
125  hefTotEdepStep = iB.book1D("hefTotEdepStep", "", 100, 0, 100);
126  hebTotEdepStep = iB.book1D("hebTotEdepStep", "", 100, 0, 100);
127 
128  hebLayerVsEnStep = iB.book2D("hebLayerVsEnStep", "", 25, 0, 25, 100, 0, 0.01);
129  hefLayerVsEnStep = iB.book2D("hefLayerVsEnStep", "", 36, 0, 36, 100, 0, 0.01);
130  heeLayerVsEnStep = iB.book2D("heeLayerVsEnStep", "", 84, 0, 84, 100, 0, 0.01);
131 
132  heeXG4VsId = iB.book2D("heeXG4VsId", "", 600, -300, 300, 600, -300, 300);
133  heeYG4VsId = iB.book2D("heeYG4VsId", "", 600, -300, 300, 600, -300, 300);
134  heeZG4VsId = iB.book2D("heeZG4VsId", "", 3000, 320, 350, 3000, 320, 350);
135 
136  hefXG4VsId = iB.book2D("hefXG4VsId", "", 600, -300, 300, 600, -300, 300);
137  hefYG4VsId = iB.book2D("hefYG4VsId", "", 600, -300, 300, 600, -300, 300);
138  hefZG4VsId = iB.book2D("hefZG4VsId", "", 6000, 350, 410, 6000, 350, 410);
139 
140  hebXG4VsId = iB.book2D("hebXG4VsId", "", 600, -300, 300, 600, -300, 300);
141  hebYG4VsId = iB.book2D("hebYG4VsId", "", 600, -300, 300, 600, -300, 300);
142  hebZG4VsId = iB.book2D("hebZG4VsId", "", 220, 400, 620, 220, 400, 620);
143 
144  heedzVsZ = iB.book2D("heedzVsZ", "", 600, 320, 350, 100, -1, 1);
145  heedyVsY = iB.book2D("heedyVsY", "", 400, -200, 200, 100, -1, 1);
146  heedxVsX = iB.book2D("heedxVsX", "", 400, -200, 200, 100, -1, 1);
147 
148  hefdzVsZ = iB.book2D("hefdzVsZ", "", 1200, 350, 410, 100, -1, 1);
149  hefdyVsY = iB.book2D("hefdyVsY", "", 400, -200, 200, 100, -1, 1);
150  hefdxVsX = iB.book2D("hefdxVsX", "", 400, -200, 200, 100, -1, 1);
151 
152  hebdzVsZ = iB.book2D("hebdzVsZ", "", 220, 400, 620, 100, -5, 5);
153  hebdyVsY = iB.book2D("hebdyVsY", "", 400, -200, 200, 100, -5, 5);
154  hebdxVsX = iB.book2D("hebdxVsX", "", 400, -200, 200, 100, -5, 5);
155 
156  heedzVsLayer = iB.book2D("heedzVsLayer", "", 100, 0, 100, 100, -1, 1);
157  hefdzVsLayer = iB.book2D("hefdzVsLayer", "", 40, 0, 40, 100, -1, 1);
158  hebdzVsLayer = iB.book2D("hebdzVsLayer", "", 50, 0, 25, 100, -5, 5);
159 
160  heedyVsLayer = iB.book2D("heedyVsLayer", "", 100, 0, 100, 100, -1, 1);
161  hefdyVsLayer = iB.book2D("hefdyVsLayer", "", 40, 0, 40, 100, -1, 1);
162  hebdyVsLayer = iB.book2D("hebdyVsLayer", "", 50, 0, 25, 100, -5, 5);
163 
164  heedxVsLayer = iB.book2D("heedxVsLayer", "", 100, 0, 100, 100, -1, 1);
165  hefdxVsLayer = iB.book2D("hefdxVsLayer", "", 40, 0, 40, 500, -1, 1);
166  hebdxVsLayer = iB.book2D("hebdxVsLayer", "", 50, 0, 25, 500, -5, 5.0);
167 
168  heedX = iB.book1D("heedX", "", 100, -1, 1);
169  heedY = iB.book1D("heedY", "", 100, -1, 1);
170  heedZ = iB.book1D("heedZ", "", 100, -1, 1);
171 
172  hefdX = iB.book1D("hefdX", "", 100, -1, 1);
173  hefdY = iB.book1D("hefdY", "", 100, -1, 1);
174  hefdZ = iB.book1D("hefdZ", "", 100, -1, 1);
175 
176  hebdX = iB.book1D("hebdX", "", 100, -1, 1);
177  hebdY = iB.book1D("hebdY", "", 100, -1, 1);
178  hebdZ = iB.book1D("hebdZ", "", 100, -1, 1);
179 }
MonitorElement * hefTotEdepStep
MonitorElement * hefLayerVsEnStep
MonitorElement * heeLayerVsEnStep
MonitorElement * hebTotEdepStep
MonitorElement * hebLayerVsEnStep
MonitorElement * heeTotEdepStep
void HGCGeometryValidation::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 96 of file HGCGeometryValidation.cc.

References spr::find(), geometrySource_, edm::EventSetup::get(), hcons_, hgcGeometry_, mps_fire::i, edm::ESHandleBase::isValid(), and edm::ESHandle< T >::product().

96  {
97  //initiating hgcnumbering
98  for (size_t i = 0; i < geometrySource_.size(); i++) {
99  if (geometrySource_[i].find("Hcal") != std::string::npos) {
101  iSetup.get<HcalSimNumberingRecord>().get(pHRNDC);
102  if (pHRNDC.isValid()) {
103  hcons_ = &(*pHRNDC);
104  hgcGeometry_.push_back(nullptr);
105  } else {
106  edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for " << geometrySource_[i];
107  }
108  } else {
110  iSetup.get<IdealGeometryRecord>().get(geometrySource_[i], hgcGeom);
111  if (hgcGeom.isValid()) {
112  hgcGeometry_.push_back(hgcGeom.product());
113  } else {
114  edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for " << geometrySource_[i];
115  }
116  }
117  }
118 }
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const HcalDDDSimConstants * hcons_
std::vector< const HGCalDDDConstants * > hgcGeometry_
std::vector< std::string > geometrySource_
bool isValid() const
Definition: ESHandle.h:44
T const * product() const
Definition: ESHandle.h:86
void HGCGeometryValidation::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Member Data Documentation

edm::EDGetTokenT<PHGCalValidInfo> HGCGeometryValidation::g4Token_
private

Definition at line 56 of file HGCGeometryValidation.cc.

Referenced by analyze(), and HGCGeometryValidation().

std::vector<std::string> HGCGeometryValidation::geometrySource_
private

Definition at line 57 of file HGCGeometryValidation.cc.

Referenced by dqmBeginRun(), and HGCGeometryValidation().

const HcalDDDSimConstants* HGCGeometryValidation::hcons_
private

Definition at line 62 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().

MonitorElement* HGCGeometryValidation::hebdX
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsX
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdY
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsLayer
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsY
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdZ
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdzVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebdzVsZ
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebLayerVsEnStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebTotEdepStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebXG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebYG4VsId
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebZG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedX
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedxVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedxVsX
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedY
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedyVsLayer
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedyVsY
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedZ
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsZ
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heeLayerVsEnStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeTotEdepStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeXG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeYG4VsId
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeZG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdX
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsX
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdY
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsLayer
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsY
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdZ
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdzVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdzVsZ
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefLayerVsEnStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefTotEdepStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefXG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefYG4VsId
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefZG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

std::vector<const HGCalDDDConstants *> HGCGeometryValidation::hgcGeometry_
private

Definition at line 61 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().

int HGCGeometryValidation::verbosity_
private

Definition at line 58 of file HGCGeometryValidation.cc.

Referenced by analyze(), and HGCGeometryValidation().