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::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > 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 &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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
 
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)
 
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::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 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_
 

Additional Inherited Members

- 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 45 of file HGCGeometryValidation.cc.

Constructor & Destructor Documentation

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

Definition at line 84 of file HGCGeometryValidation.cc.

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

84  : hcons_(nullptr) {
85 
86  g4Token_ = consumes<PHGCalValidInfo>(cfg.getParameter<edm::InputTag>("g4Source"));
87  geometrySource_ = cfg.getUntrackedParameter< std::vector<std::string> >("geometrySource");
88 }
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 90 of file HGCGeometryValidation.cc.

90 { }

Member Function Documentation

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

Definition at line 191 of file HGCGeometryValidation.cc.

References HcalDDDSimConstants::cell(), funct::cos(), DEFINE_FWK_MODULE, egammaForCoreTracking_cff::depth, runTauDisplay::dtype, PHGCalValidInfo::eehgcEdep(), PHGCalValidInfo::eeTotEdep(), PVValHelper::eta, JetChargeProducer_cfi::exp, 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, edm::HandleBase::isValid(), mmtocm, phi, rho, funct::sin(), funct::tan(), HcalTestNumbering::unpackHcalIndex(), HGCalTestNumbering::unpackHexagonIndex(), geometryCSVtoXML::xx, geometryCSVtoXML::xy, geometryCSVtoXML::yy, ecaldqm::zside(), and geometryCSVtoXML::zz.

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

References DQMStore::IBooker::book1D(), 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 DQMStore::IBooker::setCurrentFolder().

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

Reimplemented from DQMEDAnalyzer.

Definition at line 98 of file HGCGeometryValidation.cc.

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

99  {
100 
101  //initiating hgcnumbering
102  for (size_t i=0; i<geometrySource_.size(); i++) {
103  if (geometrySource_[i].find("Hcal") != std::string::npos) {
105  iSetup.get<HcalSimNumberingRecord>().get(pHRNDC);
106  if (pHRNDC.isValid()) {
107  hcons_ = &(*pHRNDC);
108  hgcGeometry_.push_back(nullptr);
109  } else {
110  edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for "
111  << geometrySource_[i];
112  }
113  } else {
115  iSetup.get<IdealGeometryRecord>().get(geometrySource_[i],hgcGeom);
116  if (hgcGeom.isValid()) {
117  hgcGeometry_.push_back(hgcGeom.product());
118  } else {
119  edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for "
120  << geometrySource_[i];
121  }
122  }
123  }
124 }
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
std::vector< const HGCalDDDConstants * > hgcGeometry_
const HcalDDDSimConstants * hcons_
std::vector< std::string > geometrySource_
bool isValid() const
Definition: ESHandle.h:47
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 59 of file HGCGeometryValidation.cc.

Referenced by analyze(), and HGCGeometryValidation().

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

Definition at line 60 of file HGCGeometryValidation.cc.

Referenced by dqmBeginRun(), and HGCGeometryValidation().

const HcalDDDSimConstants* HGCGeometryValidation::hcons_
private

Definition at line 64 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().

MonitorElement* HGCGeometryValidation::hebdX
private

Definition at line 81 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsLayer
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsX
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdY
private

Definition at line 81 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsLayer
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsY
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdZ
private

Definition at line 81 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdzVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebdzVsZ
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebLayerVsEnStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebTotEdepStep
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebXG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebYG4VsId
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebZG4VsId
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedX
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedxVsLayer
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedxVsX
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedY
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedyVsLayer
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedyVsY
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedZ
private

Definition at line 79 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsZ
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heeLayerVsEnStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeTotEdepStep
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeXG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeYG4VsId
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeZG4VsId
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdX
private

Definition at line 80 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsLayer
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsX
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdY
private

Definition at line 80 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsLayer
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsY
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdZ
private

Definition at line 80 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdzVsLayer
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdzVsZ
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefLayerVsEnStep
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefTotEdepStep
private

Definition at line 78 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefXG4VsId
private

Definition at line 73 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefYG4VsId
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefZG4VsId
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

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

Definition at line 63 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().