21 : g4InfoLabel(ps.getParameter<
std::
string>(
"moduleLabelG4")),
35 ib.setCurrentFolder(
"EcalHitsV/EcalSimHitsValidation");
36 ib.setScope(MonitorElementData::Scope::RUN);
41 histo =
"EcalSimHitsValidation Gun Eta";
44 histo =
"EcalSimHitsValidation Gun Phi";
47 histo =
"EcalSimHitsValidation Barrel fraction of energy";
50 histo =
"EcalSimHitsValidation Endcap fraction of energy";
53 histo =
"EcalSimHitsValidation Preshower fraction of energy";
58 edm::LogInfo(
"EventInfo") <<
" Run = " <<
e.id().run() <<
" Event = " <<
e.id().event();
60 std::vector<PCaloHit> theEBCaloHits;
61 std::vector<PCaloHit> theEECaloHits;
62 std::vector<PCaloHit> theESCaloHits;
74 for (HepMC::GenEvent::particle_const_iterator
p = MCEvt->
GetEvent()->particles_begin();
77 double htheta = (*p)->momentum().theta();
78 double heta = -99999.;
79 if (
tan(htheta * 0.5) > 0) {
80 heta = -
log(
tan(htheta * 0.5));
82 double hphi = (*p)->momentum().phi();
83 hphi = (hphi >= 0) ? hphi : hphi + 2 *
M_PI;
84 hphi = hphi /
M_PI * 180.;
86 LogDebug(
"EventInfo") <<
"Particle gun type form MC = " <<
abs((*p)->pdg_id()) <<
"\n"
87 <<
"Energy = " << (*p)->momentum().e() <<
" Eta = " << heta <<
" Phi = " << hphi;
94 double EBEnergy_ = 0.;
96 theEBCaloHits.insert(theEBCaloHits.end(), EcalHitsEB->begin(), EcalHitsEB->end());
97 for (std::vector<PCaloHit>::iterator isim = theEBCaloHits.begin(); isim != theEBCaloHits.end(); ++isim) {
98 EBEnergy_ += isim->energy();
102 double EEEnergy_ = 0.;
104 theEECaloHits.insert(theEECaloHits.end(), EcalHitsEE->begin(), EcalHitsEE->end());
105 for (std::vector<PCaloHit>::iterator isim = theEECaloHits.begin(); isim != theEECaloHits.end(); ++isim) {
106 EEEnergy_ += isim->energy();
110 double ESEnergy_ = 0.;
112 theESCaloHits.insert(theESCaloHits.end(), EcalHitsES->begin(), EcalHitsES->end());
113 for (std::vector<PCaloHit>::iterator isim = theESCaloHits.begin(); isim != theESCaloHits.end(); ++isim) {
114 ESEnergy_ += isim->energy();
118 double etot = EBEnergy_ + EEEnergy_ + ESEnergy_;
124 fracEB = EBEnergy_ / etot;
125 fracEE = EEEnergy_ / etot;
126 fracES = ESEnergy_ / etot;