CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes
EcalEndcapSimHitsValidation Class Reference

#include <EcalEndcapSimHitsValidation.h>

Inheritance diagram for EcalEndcapSimHitsValidation:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 EcalEndcapSimHitsValidation (const edm::ParameterSet &ps)
 Constructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 Analyze. More...
 
void bookHistograms (DQMStore::IBooker &ib, edm::Run const &, edm::EventSetup const &c) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Types

typedef std::map< uint32_t, float, std::less< uint32_t > > MapType
 

Private Member Functions

float eCluster2x2 (MapType &themap)
 
float eCluster4x4 (float e33, MapType &themap)
 
virtual float energyInMatrixEE (int nCellInX, int nCellInY, int centralX, int centralY, int centralZ, MapType &themap)
 
bool fillEEMatrix (int nCellInX, int nCellInY, int CentralX, int CentralY, int CentralZ, MapType &fillmap, MapType &themap)
 
std::vector< uint32_t > getIdsAroundMax (int nCellInX, int nCellInY, int centralX, int centralY, int centralZ, MapType &themap)
 
uint32_t getUnitWithMaxEnergy (MapType &themap)
 

Private Attributes

std::string EEHitsCollection
 
edm::EDGetTokenT< edm::PCaloHitContainerEEHitsToken
 
float eRLength [26]
 
std::string g4InfoLabel
 
MonitorElementmeEEcrystalEnergy2_
 
MonitorElementmeEEcrystalEnergy_
 
MonitorElementmeEEe16_
 
MonitorElementmeEEe16oe25_
 
MonitorElementmeEEe1_
 
MonitorElementmeEEe1oe25_
 
MonitorElementmeEEe1oe4_
 
MonitorElementmeEEe1oe9_
 
MonitorElementmeEEe25_
 
MonitorElementmeEEe4_
 
MonitorElementmeEEe4oe9_
 
MonitorElementmeEEe9_
 
MonitorElementmeEEe9oe16_
 
MonitorElementmeEEe9oe25_
 
MonitorElementmeEEHitEnergy2_
 
MonitorElementmeEEHitEnergy_
 
MonitorElementmeEEhitLog10Energy25Norm_
 
MonitorElementmeEEhitLog10Energy_
 
MonitorElementmeEEhitLog10EnergyNorm_
 
MonitorElementmeEELongitudinalShower_
 
MonitorElementmeEEzmCrystals_
 
MonitorElementmeEEzmHits_
 
MonitorElementmeEEzmOccupancy_
 
MonitorElementmeEEzpCrystals_
 
MonitorElementmeEEzpHits_
 
MonitorElementmeEEzpOccupancy_
 
int myEntries
 
std::string ValidationCollection
 
edm::EDGetTokenT< PEcalValidInfoValidationCollectionToken
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 34 of file EcalEndcapSimHitsValidation.h.

Member Typedef Documentation

◆ MapType

typedef std::map<uint32_t, float, std::less<uint32_t> > EcalEndcapSimHitsValidation::MapType
private

Definition at line 35 of file EcalEndcapSimHitsValidation.h.

Constructor & Destructor Documentation

◆ EcalEndcapSimHitsValidation()

EcalEndcapSimHitsValidation::EcalEndcapSimHitsValidation ( const edm::ParameterSet ps)

Constructor.

Definition at line 17 of file EcalEndcapSimHitsValidation.cc.

18  : g4InfoLabel(ps.getParameter<std::string>("moduleLabelG4")),
19  EEHitsCollection(ps.getParameter<std::string>("EEHitsCollection")),
20  ValidationCollection(ps.getParameter<std::string>("ValidationCollection")) {
21  EEHitsToken =
22  consumes<edm::PCaloHitContainer>(edm::InputTag(std::string(g4InfoLabel), std::string(EEHitsCollection)));
25  // verbosity switch
26  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
27 
28  myEntries = 0;
29  for (int myStep = 0; myStep < 26; myStep++) {
30  eRLength[myStep] = 0.0;
31  }
32 }

References EEHitsCollection, EEHitsToken, eRLength, g4InfoLabel, edm::ParameterSet::getUntrackedParameter(), myEntries, AlCaHLTBitMon_QueryRunRegistry::string, ValidationCollection, ValidationCollectionToken, and verbose_.

Member Function Documentation

◆ analyze()

void EcalEndcapSimHitsValidation::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

Analyze.

Reimplemented from DQMEDAnalyzer.

Definition at line 117 of file EcalEndcapSimHitsValidation.cc.

117  {
118  edm::LogInfo("EventInfo") << " Run = " << e.id().run() << " Event = " << e.id().event();
119 
121  e.getByToken(EEHitsToken, EcalHitsEE);
122 
123  // Do nothing if no EndCap data available
124  if (!EcalHitsEE.isValid())
125  return;
126 
127  edm::Handle<PEcalValidInfo> MyPEcalValidInfo;
128  e.getByToken(ValidationCollectionToken, MyPEcalValidInfo);
129 
130  std::vector<PCaloHit> theEECaloHits;
131  theEECaloHits.insert(theEECaloHits.end(), EcalHitsEE->begin(), EcalHitsEE->end());
132 
133  myEntries++;
134 
135  std::map<unsigned int, std::vector<PCaloHit *>, std::less<unsigned int>> CaloHitMap;
136 
137  double EEetzp_ = 0.;
138  double EEetzm_ = 0.;
139 
140  double ee1 = 0.0;
141  double ee4 = 0.0;
142  double ee9 = 0.0;
143  double ee16 = 0.0;
144  double ee25 = 0.0;
145  std::vector<double> econtr(140, 0.);
146  std::vector<double> econtr25(140, 0.);
147 
148  MapType eemap;
149  MapType eemapzp;
150  MapType eemapzm;
151  uint32_t nEEzpHits = 0;
152  uint32_t nEEzmHits = 0;
153 
154  for (std::vector<PCaloHit>::iterator isim = theEECaloHits.begin(); isim != theEECaloHits.end(); ++isim) {
155  if (isim->time() > 500.) {
156  continue;
157  }
158 
159  CaloHitMap[isim->id()].push_back(&(*isim));
160 
161  EEDetId eeid(isim->id());
162 
163  LogDebug("HitInfo") << " CaloHit " << isim->getName() << "\n"
164  << " DetID = " << isim->id() << " EEDetId = " << eeid.ix() << " " << eeid.iy() << "\n"
165  << " Time = " << isim->time() << "\n"
166  << " Track Id = " << isim->geantTrackId() << "\n"
167  << " Energy = " << isim->energy();
168 
169  uint32_t crystid = eeid.rawId();
170 
171  if (eeid.zside() > 0) {
172  nEEzpHits++;
173  EEetzp_ += isim->energy();
174  eemapzp[crystid] += isim->energy();
175  meEEzpOccupancy_->Fill(eeid.ix(), eeid.iy());
176  } else if (eeid.zside() < 0) {
177  nEEzmHits++;
178  EEetzm_ += isim->energy();
179  eemapzm[crystid] += isim->energy();
180  meEEzmOccupancy_->Fill(eeid.ix(), eeid.iy());
181  }
182 
183  meEEHitEnergy_->Fill(isim->energy());
184  if (isim->energy() > 0) {
185  meEEhitLog10Energy_->Fill(log10(isim->energy()));
186  int log10i = int((log10(isim->energy()) + 10.) * 10.);
187  if (log10i >= 0 && log10i < 140)
188  econtr[log10i] += isim->energy();
189  }
190  meEEHitEnergy2_->Fill(isim->energy());
191  eemap[crystid] += isim->energy();
192  }
193 
194  meEEzpCrystals_->Fill(eemapzp.size());
195  meEEzmCrystals_->Fill(eemapzm.size());
196 
197  for (std::map<uint32_t, float, std::less<uint32_t>>::iterator it = eemap.begin(); it != eemap.end(); ++it)
198  meEEcrystalEnergy_->Fill((*it).second);
199  for (std::map<uint32_t, float, std::less<uint32_t>>::iterator it = eemap.begin(); it != eemap.end(); ++it)
200  meEEcrystalEnergy2_->Fill((*it).second);
201 
202  meEEzpHits_->Fill(nEEzpHits);
203  meEEzmHits_->Fill(nEEzmHits);
204 
205  int nEEHits = nEEzmHits + nEEzpHits;
206  if (nEEHits > 0) {
207  uint32_t eecenterid = getUnitWithMaxEnergy(eemap);
208  EEDetId myEEid(eecenterid);
209  int bx = myEEid.ix();
210  int by = myEEid.iy();
211  int bz = myEEid.zside();
212  ee1 = energyInMatrixEE(1, 1, bx, by, bz, eemap);
213  meEEe1_->Fill(ee1);
214  ee9 = energyInMatrixEE(3, 3, bx, by, bz, eemap);
215  meEEe9_->Fill(ee9);
216  ee25 = energyInMatrixEE(5, 5, bx, by, bz, eemap);
217  meEEe25_->Fill(ee25);
218 
219  std::vector<uint32_t> ids25;
220  ids25 = getIdsAroundMax(5, 5, bx, by, bz, eemap);
221 
222  for (unsigned i = 0; i < 25; i++) {
223  for (unsigned int j = 0; j < CaloHitMap[ids25[i]].size(); j++) {
224  if (CaloHitMap[ids25[i]][j]->energy() > 0) {
225  int log10i = int((log10(CaloHitMap[ids25[i]][j]->energy()) + 10.) * 10.);
226  if (log10i >= 0 && log10i < 140)
227  econtr25[log10i] += CaloHitMap[ids25[i]][j]->energy();
228  }
229  }
230  }
231 
232  MapType neweemap;
233  if (fillEEMatrix(3, 3, bx, by, bz, neweemap, eemap)) {
234  ee4 = eCluster2x2(neweemap);
235  meEEe4_->Fill(ee4);
236  }
237  if (fillEEMatrix(5, 5, bx, by, bz, neweemap, eemap)) {
238  ee16 = eCluster4x4(ee9, neweemap);
239  meEEe16_->Fill(ee16);
240  }
241 
242  if (ee4 > 0.1)
243  meEEe1oe4_->Fill(ee1 / ee4);
244  if (ee9 > 0.1)
245  meEEe1oe9_->Fill(ee1 / ee9);
246  if (ee9 > 0.1)
247  meEEe4oe9_->Fill(ee4 / ee9);
248  if (ee16 > 0.1)
249  meEEe9oe16_->Fill(ee9 / ee16);
250  if (ee25 > 0.1)
251  meEEe16oe25_->Fill(ee16 / ee25);
252  if (ee25 > 0.1)
253  meEEe1oe25_->Fill(ee1 / ee25);
254  if (ee25 > 0.1)
255  meEEe9oe25_->Fill(ee9 / ee25);
256 
257  if ((EEetzp_ + EEetzm_) != 0) {
258  for (int i = 0; i < 140; i++) {
259  meEEhitLog10EnergyNorm_->Fill(-10. + (float(i) + 0.5) / 10., econtr[i] / (EEetzp_ + EEetzm_));
260  }
261  }
262 
263  if (ee25 != 0) {
264  for (int i = 0; i < 140; i++) {
265  meEEhitLog10Energy25Norm_->Fill(-10. + (float(i) + 0.5) / 10., econtr25[i] / ee25);
266  }
267  }
268  }
269 
270  if (MyPEcalValidInfo.isValid()) {
271  if (MyPEcalValidInfo->ee1x1() > 0.) {
272  std::vector<float> EX0 = MyPEcalValidInfo->eX0();
274  for (int myStep = 0; myStep < 26; myStep++) {
275  eRLength[myStep] += EX0[myStep];
276  meEELongitudinalShower_->Fill(float(myStep), eRLength[myStep] / myEntries);
277  }
278  }
279  }
280 }

References l1GtPatternGenerator_cfi::bx, MillePedeFileConverter_cfg::e, eCluster2x2(), eCluster4x4(), PEcalValidInfo::ee1x1(), EEHitsToken, HCALHighEnergyHPDFilter_cfi::energy, energyInMatrixEE(), eRLength, PEcalValidInfo::eX0(), dqm::impl::MonitorElement::Fill(), fillEEMatrix(), getIdsAroundMax(), getUnitWithMaxEnergy(), mps_fire::i, createfilelist::int, edm::HandleBase::isValid(), EEDetId::ix(), EEDetId::iy(), dqmiolumiharvest::j, LogDebug, genParticles_cff::map, meEEcrystalEnergy2_, meEEcrystalEnergy_, meEEe16_, meEEe16oe25_, meEEe1_, meEEe1oe25_, meEEe1oe4_, meEEe1oe9_, meEEe25_, meEEe4_, meEEe4oe9_, meEEe9_, meEEe9oe16_, meEEe9oe25_, meEEHitEnergy2_, meEEHitEnergy_, meEEhitLog10Energy25Norm_, meEEhitLog10Energy_, meEEhitLog10EnergyNorm_, meEELongitudinalShower_, meEEzmCrystals_, meEEzmHits_, meEEzmOccupancy_, meEEzpCrystals_, meEEzpHits_, meEEzpOccupancy_, myEntries, dqm::impl::MonitorElement::Reset(), ValidationCollectionToken, and EEDetId::zside().

◆ bookHistograms()

void EcalEndcapSimHitsValidation::bookHistograms ( DQMStore::IBooker ib,
edm::Run const &  ,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 34 of file EcalEndcapSimHitsValidation.cc.

34  {
35  ib.setCurrentFolder("EcalHitsV/EcalSimHitsValidation");
36  ib.setScope(MonitorElementData::Scope::RUN);
37 
38  std::string histo = "EE+ hits multiplicity";
39  meEEzpHits_ = ib.book1D(histo, histo, 50, 0., 5000.);
40 
41  histo = "EE- hits multiplicity";
42  meEEzmHits_ = ib.book1D(histo, histo, 50, 0., 5000.);
43 
44  histo = "EE+ crystals multiplicity";
45  meEEzpCrystals_ = ib.book1D(histo, histo, 200, 0., 2000.);
46 
47  histo = "EE- crystals multiplicity";
48  meEEzmCrystals_ = ib.book1D(histo, histo, 200, 0., 2000.);
49 
50  histo = "EE+ occupancy";
51  meEEzpOccupancy_ = ib.book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
52 
53  histo = "EE- occupancy";
54  meEEzmOccupancy_ = ib.book2D(histo, histo, 100, 0., 100., 100, 0., 100.);
55 
56  histo = "EE longitudinal shower profile";
57  meEELongitudinalShower_ = ib.bookProfile(histo, histo, 26, 0, 26, 100, 0, 20000);
58 
59  histo = "EE hits energy spectrum";
60  meEEHitEnergy_ = ib.book1D(histo, histo, 4000, 0., 400.);
61 
62  histo = "EE hits log10energy spectrum";
63  meEEhitLog10Energy_ = ib.book1D(histo, histo, 140, -10., 4.);
64 
65  histo = "EE hits log10energy spectrum vs normalized energy";
66  meEEhitLog10EnergyNorm_ = ib.bookProfile(histo, histo, 140, -10., 4., 100, 0., 1.);
67 
68  histo = "EE hits log10energy spectrum vs normalized energy25";
69  meEEhitLog10Energy25Norm_ = ib.bookProfile(histo, histo, 140, -10., 4., 100, 0., 1.);
70 
71  histo = "EE hits energy spectrum 2";
72  meEEHitEnergy2_ = ib.book1D(histo, histo, 1000, 0., 0.001);
73 
74  histo = "EE crystal energy spectrum";
75  meEEcrystalEnergy_ = ib.book1D(histo, histo, 5000, 0., 50.);
76 
77  histo = "EE crystal energy spectrum 2";
78  meEEcrystalEnergy2_ = ib.book1D(histo, histo, 1000, 0., 0.001);
79 
80  histo = "EE E1";
81  meEEe1_ = ib.book1D(histo, histo, 400, 0., 400.);
82 
83  histo = "EE E4";
84  meEEe4_ = ib.book1D(histo, histo, 400, 0., 400.);
85 
86  histo = "EE E9";
87  meEEe9_ = ib.book1D(histo, histo, 400, 0., 400.);
88 
89  histo = "EE E16";
90  meEEe16_ = ib.book1D(histo, histo, 400, 0., 400.);
91 
92  histo = "EE E25";
93  meEEe25_ = ib.book1D(histo, histo, 400, 0., 400.);
94 
95  histo = "EE E1oE4";
96  meEEe1oe4_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
97 
98  histo = "EE E1oE9";
99  meEEe1oe9_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
100 
101  histo = "EE E4oE9";
102  meEEe4oe9_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
103 
104  histo = "EE E9oE16";
105  meEEe9oe16_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
106 
107  histo = "EE E1oE25";
108  meEEe1oe25_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
109 
110  histo = "EE E9oE25";
111  meEEe9oe25_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
112 
113  histo = "EE E16oE25";
114  meEEe16oe25_ = ib.book1D(histo, histo, 100, 0.4, 1.1);
115 }

References timingPdfMaker::histo, cuy::ib, meEEcrystalEnergy2_, meEEcrystalEnergy_, meEEe16_, meEEe16oe25_, meEEe1_, meEEe1oe25_, meEEe1oe4_, meEEe1oe9_, meEEe25_, meEEe4_, meEEe4oe9_, meEEe9_, meEEe9oe16_, meEEe9oe25_, meEEHitEnergy2_, meEEHitEnergy_, meEEhitLog10Energy25Norm_, meEEhitLog10Energy_, meEEhitLog10EnergyNorm_, meEELongitudinalShower_, meEEzmCrystals_, meEEzmHits_, meEEzmOccupancy_, meEEzpCrystals_, meEEzpHits_, meEEzpOccupancy_, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ eCluster2x2()

float EcalEndcapSimHitsValidation::eCluster2x2 ( MapType themap)
private

Definition at line 369 of file EcalEndcapSimHitsValidation.cc.

369  {
370  float E22 = 0.;
371  float e012 = themap[0] + themap[1] + themap[2];
372  float e036 = themap[0] + themap[3] + themap[6];
373  float e678 = themap[6] + themap[7] + themap[8];
374  float e258 = themap[2] + themap[5] + themap[8];
375 
376  if ((e012 > e678 || e012 == e678) && (e036 > e258 || e036 == e258))
377  return E22 = themap[0] + themap[1] + themap[3] + themap[4];
378  else if ((e012 > e678 || e012 == e678) && (e036 < e258 || e036 == e258))
379  return E22 = themap[1] + themap[2] + themap[4] + themap[5];
380  else if ((e012 < e678 || e012 == e678) && (e036 > e258 || e036 == e258))
381  return E22 = themap[3] + themap[4] + themap[6] + themap[7];
382  else if ((e012 < e678 || e012 == e678) && (e036 < e258 || e036 == e258))
383  return E22 = themap[4] + themap[5] + themap[7] + themap[8];
384  else {
385  return E22;
386  }
387 }

Referenced by analyze().

◆ eCluster4x4()

float EcalEndcapSimHitsValidation::eCluster4x4 ( float  e33,
MapType themap 
)
private

Definition at line 389 of file EcalEndcapSimHitsValidation.cc.

389  {
390  float E44 = 0.;
391  float e0_4 = themap[0] + themap[1] + themap[2] + themap[3] + themap[4];
392  float e0_20 = themap[0] + themap[5] + themap[10] + themap[15] + themap[20];
393  float e4_24 = themap[4] + themap[9] + themap[14] + themap[19] + themap[24];
394  float e0_24 = themap[20] + themap[21] + themap[22] + themap[23] + themap[24];
395 
396  if ((e0_4 > e0_24 || e0_4 == e0_24) && (e0_20 > e4_24 || e0_20 == e4_24))
397  return E44 = e33 + themap[0] + themap[1] + themap[2] + themap[3] + themap[5] + themap[10] + themap[15];
398  else if ((e0_4 > e0_24 || e0_4 == e0_24) && (e0_20 < e4_24 || e0_20 == e4_24))
399  return E44 = e33 + themap[1] + themap[2] + themap[3] + themap[4] + themap[9] + themap[14] + themap[19];
400  else if ((e0_4 < e0_24 || e0_4 == e0_24) && (e0_20 > e4_24 || e0_20 == e4_24))
401  return E44 = e33 + themap[5] + themap[10] + themap[15] + themap[20] + themap[21] + themap[22] + themap[23];
402  else if ((e0_4 < e0_24 || e0_4 == e0_24) && (e0_20 < e4_24 || e0_20 == e4_24))
403  return E44 = e33 + themap[21] + themap[22] + themap[23] + themap[24] + themap[9] + themap[14] + themap[19];
404  else {
405  return E44;
406  }
407 }

Referenced by analyze().

◆ energyInMatrixEE()

float EcalEndcapSimHitsValidation::energyInMatrixEE ( int  nCellInX,
int  nCellInY,
int  centralX,
int  centralY,
int  centralZ,
MapType themap 
)
privatevirtual

Definition at line 282 of file EcalEndcapSimHitsValidation.cc.

283  {
284  int ncristals = 0;
285  float totalEnergy = 0.;
286 
287  int goBackInX = nCellInX / 2;
288  int goBackInY = nCellInY / 2;
289  int startX = centralX - goBackInX;
290  int startY = centralY - goBackInY;
291 
292  for (int ix = startX; ix < startX + nCellInX; ix++) {
293  for (int iy = startY; iy < startY + nCellInY; iy++) {
294  uint32_t index;
295 
296  if (EEDetId::validDetId(ix, iy, centralZ)) {
297  index = EEDetId(ix, iy, centralZ).rawId();
298  } else {
299  continue;
300  }
301 
302  totalEnergy += themap[index];
303  ncristals += 1;
304  }
305  }
306 
307  LogDebug("GeomInfo") << nCellInX << " x " << nCellInY << " EE matrix energy = " << totalEnergy << " for " << ncristals
308  << " crystals";
309  return totalEnergy;
310 }

References LogDebug, DetId::rawId(), and EEDetId::validDetId().

Referenced by analyze().

◆ fillEEMatrix()

bool EcalEndcapSimHitsValidation::fillEEMatrix ( int  nCellInX,
int  nCellInY,
int  CentralX,
int  CentralY,
int  CentralZ,
MapType fillmap,
MapType themap 
)
private

Definition at line 340 of file EcalEndcapSimHitsValidation.cc.

341  {
342  int goBackInX = nCellInX / 2;
343  int goBackInY = nCellInY / 2;
344 
345  int startX = CentralX - goBackInX;
346  int startY = CentralY - goBackInY;
347 
348  int i = 0;
349  for (int ix = startX; ix < startX + nCellInX; ix++) {
350  for (int iy = startY; iy < startY + nCellInY; iy++) {
351  uint32_t index;
352 
353  if (EEDetId::validDetId(ix, iy, CentralZ)) {
354  index = EEDetId(ix, iy, CentralZ).rawId();
355  } else {
356  continue;
357  }
358  fillmap[i++] = themap[index];
359  }
360  }
361  uint32_t centerid = getUnitWithMaxEnergy(themap);
362 
363  if (fillmap[i / 2] == themap[centerid])
364  return true;
365  else
366  return false;
367 }

References getUnitWithMaxEnergy(), mps_fire::i, DetId::rawId(), and EEDetId::validDetId().

Referenced by analyze().

◆ getIdsAroundMax()

std::vector< uint32_t > EcalEndcapSimHitsValidation::getIdsAroundMax ( int  nCellInX,
int  nCellInY,
int  centralX,
int  centralY,
int  centralZ,
MapType themap 
)
private

Definition at line 312 of file EcalEndcapSimHitsValidation.cc.

313  {
314  int ncristals = 0;
315  std::vector<uint32_t> ids(nCellInX * nCellInY);
316 
317  int goBackInX = nCellInX / 2;
318  int goBackInY = nCellInY / 2;
319  int startX = centralX - goBackInX;
320  int startY = centralY - goBackInY;
321 
322  for (int ix = startX; ix < startX + nCellInX; ix++) {
323  for (int iy = startY; iy < startY + nCellInY; iy++) {
324  uint32_t index;
325 
326  if (EEDetId::validDetId(ix, iy, centralZ)) {
327  index = EEDetId(ix, iy, centralZ).rawId();
328  } else {
329  continue;
330  }
331 
332  ids[ncristals] = index;
333  ncristals += 1;
334  }
335  }
336 
337  return ids;
338 }

References DetId::rawId(), and EEDetId::validDetId().

Referenced by analyze().

◆ getUnitWithMaxEnergy()

uint32_t EcalEndcapSimHitsValidation::getUnitWithMaxEnergy ( MapType themap)
private

Definition at line 409 of file EcalEndcapSimHitsValidation.cc.

409  {
410  // look for max
411  uint32_t unitWithMaxEnergy = 0;
412  float maxEnergy = 0.;
413 
414  MapType::iterator iter;
415  for (iter = themap.begin(); iter != themap.end(); iter++) {
416  if (maxEnergy < (*iter).second) {
417  maxEnergy = (*iter).second;
418  unitWithMaxEnergy = (*iter).first;
419  }
420  }
421 
422  LogDebug("GeomInfo") << " max energy of " << maxEnergy << " GeV in Unit id " << unitWithMaxEnergy;
423  return unitWithMaxEnergy;
424 }

References LogDebug, and particleFlowClusterECALTimeSelected_cfi::maxEnergy.

Referenced by analyze(), and fillEEMatrix().

Member Data Documentation

◆ EEHitsCollection

std::string EcalEndcapSimHitsValidation::EEHitsCollection
private

Definition at line 62 of file EcalEndcapSimHitsValidation.h.

Referenced by EcalEndcapSimHitsValidation().

◆ EEHitsToken

edm::EDGetTokenT<edm::PCaloHitContainer> EcalEndcapSimHitsValidation::EEHitsToken
private

Definition at line 65 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and EcalEndcapSimHitsValidation().

◆ eRLength

float EcalEndcapSimHitsValidation::eRLength[26]
private

Definition at line 71 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and EcalEndcapSimHitsValidation().

◆ g4InfoLabel

std::string EcalEndcapSimHitsValidation::g4InfoLabel
private

Definition at line 61 of file EcalEndcapSimHitsValidation.h.

Referenced by EcalEndcapSimHitsValidation().

◆ meEEcrystalEnergy2_

MonitorElement* EcalEndcapSimHitsValidation::meEEcrystalEnergy2_
private

Definition at line 95 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEcrystalEnergy_

MonitorElement* EcalEndcapSimHitsValidation::meEEcrystalEnergy_
private

Definition at line 94 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe16_

MonitorElement* EcalEndcapSimHitsValidation::meEEe16_
private

Definition at line 100 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe16oe25_

MonitorElement* EcalEndcapSimHitsValidation::meEEe16oe25_
private

Definition at line 109 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe1_

MonitorElement* EcalEndcapSimHitsValidation::meEEe1_
private

Definition at line 97 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe1oe25_

MonitorElement* EcalEndcapSimHitsValidation::meEEe1oe25_
private

Definition at line 107 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe1oe4_

MonitorElement* EcalEndcapSimHitsValidation::meEEe1oe4_
private

Definition at line 103 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe1oe9_

MonitorElement* EcalEndcapSimHitsValidation::meEEe1oe9_
private

Definition at line 104 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe25_

MonitorElement* EcalEndcapSimHitsValidation::meEEe25_
private

Definition at line 101 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe4_

MonitorElement* EcalEndcapSimHitsValidation::meEEe4_
private

Definition at line 98 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe4oe9_

MonitorElement* EcalEndcapSimHitsValidation::meEEe4oe9_
private

Definition at line 105 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe9_

MonitorElement* EcalEndcapSimHitsValidation::meEEe9_
private

Definition at line 99 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe9oe16_

MonitorElement* EcalEndcapSimHitsValidation::meEEe9oe16_
private

Definition at line 106 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEe9oe25_

MonitorElement* EcalEndcapSimHitsValidation::meEEe9oe25_
private

Definition at line 108 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEHitEnergy2_

MonitorElement* EcalEndcapSimHitsValidation::meEEHitEnergy2_
private

Definition at line 92 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEHitEnergy_

MonitorElement* EcalEndcapSimHitsValidation::meEEHitEnergy_
private

Definition at line 84 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEhitLog10Energy25Norm_

MonitorElement* EcalEndcapSimHitsValidation::meEEhitLog10Energy25Norm_
private

Definition at line 90 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEhitLog10Energy_

MonitorElement* EcalEndcapSimHitsValidation::meEEhitLog10Energy_
private

Definition at line 86 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEhitLog10EnergyNorm_

MonitorElement* EcalEndcapSimHitsValidation::meEEhitLog10EnergyNorm_
private

Definition at line 88 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEELongitudinalShower_

MonitorElement* EcalEndcapSimHitsValidation::meEELongitudinalShower_
private

Definition at line 82 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzmCrystals_

MonitorElement* EcalEndcapSimHitsValidation::meEEzmCrystals_
private

Definition at line 77 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzmHits_

MonitorElement* EcalEndcapSimHitsValidation::meEEzmHits_
private

Definition at line 74 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzmOccupancy_

MonitorElement* EcalEndcapSimHitsValidation::meEEzmOccupancy_
private

Definition at line 80 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzpCrystals_

MonitorElement* EcalEndcapSimHitsValidation::meEEzpCrystals_
private

Definition at line 76 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzpHits_

MonitorElement* EcalEndcapSimHitsValidation::meEEzpHits_
private

Definition at line 73 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ meEEzpOccupancy_

MonitorElement* EcalEndcapSimHitsValidation::meEEzpOccupancy_
private

Definition at line 79 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and bookHistograms().

◆ myEntries

int EcalEndcapSimHitsValidation::myEntries
private

Definition at line 70 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and EcalEndcapSimHitsValidation().

◆ ValidationCollection

std::string EcalEndcapSimHitsValidation::ValidationCollection
private

Definition at line 63 of file EcalEndcapSimHitsValidation.h.

Referenced by EcalEndcapSimHitsValidation().

◆ ValidationCollectionToken

edm::EDGetTokenT<PEcalValidInfo> EcalEndcapSimHitsValidation::ValidationCollectionToken
private

Definition at line 66 of file EcalEndcapSimHitsValidation.h.

Referenced by analyze(), and EcalEndcapSimHitsValidation().

◆ verbose_

bool EcalEndcapSimHitsValidation::verbose_
private

Definition at line 68 of file EcalEndcapSimHitsValidation.h.

Referenced by EcalEndcapSimHitsValidation().

EcalEndcapSimHitsValidation::meEEe1oe9_
MonitorElement * meEEe1oe9_
Definition: EcalEndcapSimHitsValidation.h:104
mps_fire.i
i
Definition: mps_fire.py:355
EcalEndcapSimHitsValidation::meEEe9oe25_
MonitorElement * meEEe9oe25_
Definition: EcalEndcapSimHitsValidation.h:108
EcalEndcapSimHitsValidation::meEEhitLog10EnergyNorm_
MonitorElement * meEEhitLog10EnergyNorm_
Definition: EcalEndcapSimHitsValidation.h:88
EcalEndcapSimHitsValidation::meEEe1_
MonitorElement * meEEe1_
Definition: EcalEndcapSimHitsValidation.h:97
EcalEndcapSimHitsValidation::meEEe1oe25_
MonitorElement * meEEe1oe25_
Definition: EcalEndcapSimHitsValidation.h:107
EcalEndcapSimHitsValidation::eRLength
float eRLength[26]
Definition: EcalEndcapSimHitsValidation.h:71
EcalEndcapSimHitsValidation::fillEEMatrix
bool fillEEMatrix(int nCellInX, int nCellInY, int CentralX, int CentralY, int CentralZ, MapType &fillmap, MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:340
EcalEndcapSimHitsValidation::meEEe4_
MonitorElement * meEEe4_
Definition: EcalEndcapSimHitsValidation.h:98
EcalEndcapSimHitsValidation::meEEcrystalEnergy_
MonitorElement * meEEcrystalEnergy_
Definition: EcalEndcapSimHitsValidation.h:94
EcalEndcapSimHitsValidation::meEEe1oe4_
MonitorElement * meEEe1oe4_
Definition: EcalEndcapSimHitsValidation.h:103
EcalEndcapSimHitsValidation::meEEzmOccupancy_
MonitorElement * meEEzmOccupancy_
Definition: EcalEndcapSimHitsValidation.h:80
edm::LogInfo
Definition: MessageLogger.h:254
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
EcalEndcapSimHitsValidation::meEELongitudinalShower_
MonitorElement * meEELongitudinalShower_
Definition: EcalEndcapSimHitsValidation.h:82
EcalEndcapSimHitsValidation::ValidationCollection
std::string ValidationCollection
Definition: EcalEndcapSimHitsValidation.h:63
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
EcalEndcapSimHitsValidation::meEEzpCrystals_
MonitorElement * meEEzpCrystals_
Definition: EcalEndcapSimHitsValidation.h:76
edm::Handle
Definition: AssociativeIterator.h:50
EcalEndcapSimHitsValidation::getIdsAroundMax
std::vector< uint32_t > getIdsAroundMax(int nCellInX, int nCellInY, int centralX, int centralY, int centralZ, MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:312
EcalEndcapSimHitsValidation::meEEzmHits_
MonitorElement * meEEzmHits_
Definition: EcalEndcapSimHitsValidation.h:74
EcalEndcapSimHitsValidation::meEEzpOccupancy_
MonitorElement * meEEzpOccupancy_
Definition: EcalEndcapSimHitsValidation.h:79
EcalEndcapSimHitsValidation::energyInMatrixEE
virtual float energyInMatrixEE(int nCellInX, int nCellInY, int centralX, int centralY, int centralZ, MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:282
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
dqm::impl::MonitorElement::Reset
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
Definition: MonitorElement.cc:354
EcalEndcapSimHitsValidation::meEEzmCrystals_
MonitorElement * meEEzmCrystals_
Definition: EcalEndcapSimHitsValidation.h:77
EcalEndcapSimHitsValidation::verbose_
bool verbose_
Definition: EcalEndcapSimHitsValidation.h:68
EcalEndcapSimHitsValidation::myEntries
int myEntries
Definition: EcalEndcapSimHitsValidation.h:70
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
EcalEndcapSimHitsValidation::meEEe25_
MonitorElement * meEEe25_
Definition: EcalEndcapSimHitsValidation.h:101
EcalEndcapSimHitsValidation::meEEe4oe9_
MonitorElement * meEEe4oe9_
Definition: EcalEndcapSimHitsValidation.h:105
EcalEndcapSimHitsValidation::eCluster2x2
float eCluster2x2(MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:369
EEDetId
Definition: EEDetId.h:14
EcalEndcapSimHitsValidation::meEEHitEnergy_
MonitorElement * meEEHitEnergy_
Definition: EcalEndcapSimHitsValidation.h:84
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalEndcapSimHitsValidation::meEEe16_
MonitorElement * meEEe16_
Definition: EcalEndcapSimHitsValidation.h:100
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
EcalEndcapSimHitsValidation::meEEzpHits_
MonitorElement * meEEzpHits_
Definition: EcalEndcapSimHitsValidation.h:73
EcalEndcapSimHitsValidation::meEEHitEnergy2_
MonitorElement * meEEHitEnergy2_
Definition: EcalEndcapSimHitsValidation.h:92
createfilelist.int
int
Definition: createfilelist.py:10
cuy.ib
ib
Definition: cuy.py:662
particleFlowClusterECALTimeSelected_cfi.maxEnergy
maxEnergy
Definition: particleFlowClusterECALTimeSelected_cfi.py:10
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
PEcalValidInfo::eX0
FloatVector eX0() const
Definition: PValidationFormats.h:1134
EcalEndcapSimHitsValidation::ValidationCollectionToken
edm::EDGetTokenT< PEcalValidInfo > ValidationCollectionToken
Definition: EcalEndcapSimHitsValidation.h:66
EcalEndcapSimHitsValidation::getUnitWithMaxEnergy
uint32_t getUnitWithMaxEnergy(MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:409
EcalEndcapSimHitsValidation::meEEcrystalEnergy2_
MonitorElement * meEEcrystalEnergy2_
Definition: EcalEndcapSimHitsValidation.h:95
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
EcalEndcapSimHitsValidation::eCluster4x4
float eCluster4x4(float e33, MapType &themap)
Definition: EcalEndcapSimHitsValidation.cc:389
EcalEndcapSimHitsValidation::meEEhitLog10Energy_
MonitorElement * meEEhitLog10Energy_
Definition: EcalEndcapSimHitsValidation.h:86
EcalEndcapSimHitsValidation::EEHitsToken
edm::EDGetTokenT< edm::PCaloHitContainer > EEHitsToken
Definition: EcalEndcapSimHitsValidation.h:65
EcalEndcapSimHitsValidation::g4InfoLabel
std::string g4InfoLabel
Definition: EcalEndcapSimHitsValidation.h:61
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
EEDetId::validDetId
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.h:248
EcalEndcapSimHitsValidation::EEHitsCollection
std::string EEHitsCollection
Definition: EcalEndcapSimHitsValidation.h:62
genParticles_cff.map
map
Definition: genParticles_cff.py:11
EcalEndcapSimHitsValidation::meEEe9_
MonitorElement * meEEe9_
Definition: EcalEndcapSimHitsValidation.h:99
PEcalValidInfo::ee1x1
float ee1x1() const
Definition: PValidationFormats.h:1095
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
MapType
MapType
Definition: SiPixelTemplateDBObject_PayloadInspector.cc:51
EcalEndcapSimHitsValidation::meEEe16oe25_
MonitorElement * meEEe16oe25_
Definition: EcalEndcapSimHitsValidation.h:109
edm::InputTag
Definition: InputTag.h:15
EcalEndcapSimHitsValidation::meEEe9oe16_
MonitorElement * meEEe9oe16_
Definition: EcalEndcapSimHitsValidation.h:106
EcalEndcapSimHitsValidation::meEEhitLog10Energy25Norm_
MonitorElement * meEEhitLog10Energy25Norm_
Definition: EcalEndcapSimHitsValidation.h:90
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37