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 () 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 41 of file HGCGeometryValidation.cc.

Constructor & Destructor Documentation

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

Definition at line 80 of file HGCGeometryValidation.cc.

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

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

86 { }

Member Function Documentation

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

Definition at line 187 of file HGCGeometryValidation.cc.

References HcalDDDSimConstants::cell(), funct::cos(), DEFINE_FWK_MODULE, egammaForCoreTracking_cff::depth, 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, HGCEE, hgcGeometry_, HGCHEF, PHGCalValidInfo::hitDets(), PHGCalValidInfo::hitIndex(), PHGCalValidInfo::hitvtxX(), PHGCalValidInfo::hitvtxY(), PHGCalValidInfo::hitvtxZ(), mps_fire::i, createfilelist::int, edm::HandleBase::isValid(), phi, rho, HcalCellType::HcalCell::rz, funct::sin(), funct::tan(), HcalTestNumbering::unpackHcalIndex(), HGCalTestNumbering::unpackHexagonIndex(), geometryCSVtoXML::xx, geometryCSVtoXML::xy, and ecaldqm::zside().

188  {
189 
190  //Accessing G4 information
192  iEvent.getByToken(g4Token_,infoLayer);
193 
194  if (infoLayer.isValid()) {
195  //step vertex information
196  std::vector<float> hitVtxX = infoLayer->hitvtxX();
197  std::vector<float> hitVtxY = infoLayer->hitvtxY();
198  std::vector<float> hitVtxZ = infoLayer->hitvtxZ();
199  std::vector<unsigned int> hitDet = infoLayer->hitDets();
200  std::vector<unsigned int> hitIdx = infoLayer->hitIndex();
201 
202  //energy information
203  std::vector<float> edepLayerEE = infoLayer->eehgcEdep();
204  std::vector<float> edepLayerHE = infoLayer->hefhgcEdep();
205  std::vector<float> edepLayerHB = infoLayer->hebhgcEdep();
206 
207  unsigned int i;
208  for(i=0; i<edepLayerEE.size(); i++) {
209  heeLayerVsEnStep->Fill(i,edepLayerEE.at(i));
210  }
211 
212  for(i=0; i<edepLayerHE.size(); i++) {
213  hefLayerVsEnStep->Fill(i,edepLayerHE.at(i));
214  }
215 
216  for(i=0; i<edepLayerHB.size(); i++) {
217  hebLayerVsEnStep->Fill(i,edepLayerHB.at(i));
218  }
219 
220  //fill total energy deposited
221  heeTotEdepStep->Fill((double)infoLayer->eeTotEdep());
222  hefTotEdepStep->Fill((double)infoLayer->hefTotEdep());
223  hebTotEdepStep->Fill((double)infoLayer->hebTotEdep());
224 
225  //loop over all hits
226  for(unsigned int i=0; i<hitVtxX.size(); i++) {
227 
228  if (hitDet.at(i) == (unsigned int)(DetId::Forward)) {
229  int subdet, zside, layer, wafer, celltype, cell;
230  HGCalTestNumbering::unpackHexagonIndex(hitIdx.at(i), subdet, zside, layer, wafer, celltype, cell);
231 
232  std::pair<float, float> xy;
233  std::pair<int,float> layerIdx;
234  double zp, xx, yx;
235 
236  if (subdet==(int)(HGCEE)) {
237  xy = hgcGeometry_[0]->locateCell(cell,layer,wafer,false); //mm
238  zp = hgcGeometry_[0]->waferZ(layer,false); //cm
239  if (zside < 0) zp = -zp;
240  xx = (zp<0) ? -xy.first/10 : xy.first/10; //mm
241  yx = xy.second/10; //mm
242  hitVtxX.at(i) = hitVtxX.at(i)/10;
243  hitVtxY.at(i) = hitVtxY.at(i)/10;
244  hitVtxZ.at(i) = hitVtxZ.at(i)/10;
245 
246  heedzVsZ->Fill(zp, (hitVtxZ.at(i)-zp));
247  heedyVsY->Fill(yx, (hitVtxY.at(i)-yx));
248  heedxVsX->Fill(xx, (hitVtxX.at(i)-xx));
249 
250  heeXG4VsId->Fill(hitVtxX.at(i),xx);
251  heeYG4VsId->Fill(hitVtxY.at(i),yx);
252  heeZG4VsId->Fill(hitVtxZ.at(i),zp);
253 
254  heedzVsLayer->Fill(layer,(hitVtxZ.at(i)-zp));
255  heedyVsLayer->Fill(layer,(hitVtxY.at(i)-yx));
256  heedxVsLayer->Fill(layer,(hitVtxX.at(i)-xx));
257 
258  heedX->Fill((hitVtxX.at(i)-xx));
259  heedZ->Fill((hitVtxZ.at(i)-zp));
260  heedY->Fill((hitVtxY.at(i)-yx));
261 
262  } else if (subdet==(int)(HGCHEF)) {
263 
264  xy = hgcGeometry_[1]->locateCell(cell,layer,wafer,false); //mm
265  zp = hgcGeometry_[1]->waferZ(layer,false); //cm
266  if (zside < 0) zp = -zp;
267  xx = (zp<0) ? -xy.first/10 : xy.first/10; //mm
268  yx = xy.second/10; //mm
269  hitVtxX.at(i) = hitVtxX.at(i)/10;
270  hitVtxY.at(i) = hitVtxY.at(i)/10;
271  hitVtxZ.at(i) = hitVtxZ.at(i)/10;
272 
273  hefdzVsZ->Fill(zp, (hitVtxZ.at(i)-zp));
274  hefdyVsY->Fill(yx, (hitVtxY.at(i)-yx));
275  hefdxVsX->Fill(xx, (hitVtxX.at(i)-xx));
276 
277  hefXG4VsId->Fill(hitVtxX.at(i),xx);
278  hefYG4VsId->Fill(hitVtxY.at(i),yx);
279  hefZG4VsId->Fill(hitVtxZ.at(i),zp);
280 
281  hefdzVsLayer->Fill(layer,(hitVtxZ.at(i)-zp));
282  hefdyVsLayer->Fill(layer,(hitVtxY.at(i)-yx));
283  hefdxVsLayer->Fill(layer,(hitVtxX.at(i)-xx));
284 
285  hefdX->Fill((hitVtxX.at(i)-xx));
286  hefdZ->Fill((hitVtxZ.at(i)-zp));
287  hefdY->Fill((hitVtxY.at(i)-yx));
288 
289  }
290 
291  } else if (hitDet.at(i) == (unsigned int)(DetId::Hcal)) {
292 
293  int subdet, zside, depth, eta, phi, lay;
294  HcalTestNumbering::unpackHcalIndex(hitIdx.at(i), subdet, zside, depth, eta, phi, lay);
295  HcalCellType::HcalCell cell = hcons_->cell(subdet, zside, lay, eta, phi);
296 
297  double zp = cell.rz/10; //mm --> cm
298  if (zside == 0) zp = -zp;
299  double rho = zp*tan(2.0*atan(exp(-cell.eta)));
300  double xp = rho * cos(cell.phi); //cm
301  double yp = rho * sin(cell.phi); //cm
302 
303  hitVtxX.at(i) = hitVtxX.at(i)/10;
304  hitVtxY.at(i) = hitVtxY.at(i)/10;
305  hitVtxZ.at(i) = hitVtxZ.at(i)/10;
306 
307  hebdzVsZ->Fill(zp, (hitVtxZ.at(i)-zp));
308  hebdyVsY->Fill(yp, (hitVtxY.at(i)-yp));
309  hebdxVsX->Fill(xp, (hitVtxX.at(i)-xp));
310 
311  hebXG4VsId->Fill(hitVtxX.at(i),xp);
312  hebYG4VsId->Fill(hitVtxY.at(i),yp);
313  hebZG4VsId->Fill(hitVtxZ.at(i),zp);
314 
315  hebdzVsLayer->Fill(lay,(hitVtxZ.at(i)-zp));
316  hebdyVsLayer->Fill(lay,(hitVtxY.at(i)-yp));
317  hebdxVsLayer->Fill(lay,(hitVtxX.at(i)-xp));
318 
319  hebdX->Fill((hitVtxX.at(i)-xp));
320  hebdZ->Fill((hitVtxZ.at(i)-zp));
321  hebdY->Fill((hitVtxY.at(i)-yp));
322  }
323 
324  }//end G4 hits
325 
326  } else {
327  edm::LogWarning("HGCalValid") << "No PHGCalInfo " << std::endl;
328  }
329 
330 }
edm::EDGetTokenT< PHGCalValidInfo > g4Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
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)
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 123 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().

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

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

95  {
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 "
107  << geometrySource_[i] << std::endl;
108  }
109  } else {
111  iSetup.get<IdealGeometryRecord>().get(geometrySource_[i],hgcGeom);
112  if (hgcGeom.isValid()) {
113  hgcGeometry_.push_back(hgcGeom.product());
114  } else {
115  edm::LogWarning("HGCalValid") << "Cannot initiate HGCalGeometry for "
116  << geometrySource_[i] << std::endl;
117  }
118  }
119  }
120 }
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 55 of file HGCGeometryValidation.cc.

Referenced by analyze(), and HGCGeometryValidation().

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

Definition at line 56 of file HGCGeometryValidation.cc.

Referenced by dqmBeginRun(), and HGCGeometryValidation().

const HcalDDDSimConstants* HGCGeometryValidation::hcons_
private

Definition at line 60 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().

MonitorElement* HGCGeometryValidation::hebdX
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdxVsX
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdY
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsLayer
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdyVsY
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdZ
private

Definition at line 77 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebdzVsLayer
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebdzVsZ
private

Definition at line 65 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hebLayerVsEnStep
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebTotEdepStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebXG4VsId
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebYG4VsId
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hebZG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedX
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedxVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedxVsX
private

Definition at line 63 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedY
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedyVsLayer
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedyVsY
private

Definition at line 63 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heedZ
private

Definition at line 75 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsLayer
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heedzVsZ
private

Definition at line 63 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::heeLayerVsEnStep
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeTotEdepStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeXG4VsId
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeYG4VsId
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::heeZG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdX
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsLayer
private

Definition at line 68 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdxVsX
private

Definition at line 64 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdY
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsLayer
private

Definition at line 67 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdyVsY
private

Definition at line 64 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdZ
private

Definition at line 76 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefdzVsLayer
private

Definition at line 66 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCGeometryValidation::hefdzVsZ
private

Definition at line 64 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefLayerVsEnStep
private

Definition at line 72 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefTotEdepStep
private

Definition at line 74 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefXG4VsId
private

Definition at line 69 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefYG4VsId
private

Definition at line 70 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement * HGCGeometryValidation::hefZG4VsId
private

Definition at line 71 of file HGCGeometryValidation.cc.

Referenced by analyze(), and bookHistograms().

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

Definition at line 59 of file HGCGeometryValidation.cc.

Referenced by analyze(), and dqmBeginRun().