40 int recHitsEndjob(
const std::vector<MonitorElement *> &hcalMEs);
44 : nameDetector_(iConfig.getParameter<
std::
string>(
"DetectorName")),
45 verbosity_(iConfig.getUntrackedParameter<
int>(
"Verbosity", 0)) {}
67 std::vector<MonitorElement *> hgcalMEs;
68 std::vector<std::string> fullDirPath = ig.
getSubdirs();
70 for (
unsigned int i = 0;
i < fullDirPath.size();
i++) {
74 std::vector<std::string> fullSubDirPath = ig.
getSubdirs();
76 for (
unsigned int j = 0;
j < fullSubDirPath.size();
j++) {
80 if (strcmp(fullSubDirPath.at(
j).c_str(), nameDirectory.c_str()) == 0) {
83 edm::LogVerbatim(
"HGCalValidation") <<
"hgcalMES size : " << hgcalMEs.size();
92 std::vector<MonitorElement *> energy_;
93 std::vector<MonitorElement *> EtaPhi_Plus_;
94 std::vector<MonitorElement *> EtaPhi_Minus_;
95 std::vector<MonitorElement *> HitOccupancy_Plus_;
96 std::vector<MonitorElement *> HitOccupancy_Minus_;
97 std::vector<MonitorElement *> MeanHitOccupancy_Plus_;
98 std::vector<MonitorElement *> MeanHitOccupancy_Minus_;
100 std::ostringstream
name;
104 for (
unsigned int ilayer = 0; ilayer <
layers_; ilayer++) {
106 name <<
"energy_layer_" << ilayer;
107 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
108 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
109 energy_.push_back(hgcalMEs[ih]);
114 nevent = energy_.at(ilayer)->getEntries();
115 nbinsx = energy_.at(ilayer)->getNbinsX();
116 for (
int i = 1;
i <= nbinsx;
i++) {
117 double binValue = energy_.at(ilayer)->getBinContent(
i) /
nevent;
118 energy_.at(ilayer)->setBinContent(
i, binValue);
123 name <<
"EtaPhi_Plus_"
124 <<
"layer_" << ilayer;
125 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
126 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
127 EtaPhi_Plus_.push_back(hgcalMEs[ih]);
132 name <<
"EtaPhi_Minus_"
133 <<
"layer_" << ilayer;
134 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
135 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
136 EtaPhi_Minus_.push_back(hgcalMEs[ih]);
141 nevent = EtaPhi_Plus_.at(ilayer)->getEntries();
142 nbinsx = EtaPhi_Plus_.at(ilayer)->getNbinsX();
143 nbinsy = EtaPhi_Plus_.at(ilayer)->getNbinsY();
144 for (
int i = 1;
i <= nbinsx; ++
i) {
145 for (
int j = 1;
j <= nbinsy; ++
j) {
146 double binValue = EtaPhi_Plus_.at(ilayer)->getBinContent(
i,
j) /
nevent;
147 EtaPhi_Plus_.at(ilayer)->setBinContent(
i,
j, binValue);
151 nevent = EtaPhi_Minus_.at(ilayer)->getEntries();
152 nbinsx = EtaPhi_Minus_.at(ilayer)->getNbinsX();
153 nbinsy = EtaPhi_Plus_.at(ilayer)->getNbinsY();
154 for (
int i = 1;
i <= nbinsx; ++
i) {
155 for (
int j = 1;
j <= nbinsy; ++
j) {
156 double binValue = EtaPhi_Minus_.at(ilayer)->getBinContent(
i,
j) /
nevent;
157 EtaPhi_Minus_.at(ilayer)->setBinContent(
i,
j, binValue);
163 name <<
"HitOccupancy_Plus_layer_" << ilayer;
164 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
165 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
166 HitOccupancy_Plus_.push_back(hgcalMEs[ih]);
171 name <<
"HitOccupancy_Minus_layer_" << ilayer;
172 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
173 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
174 HitOccupancy_Minus_.push_back(hgcalMEs[ih]);
179 nevent = HitOccupancy_Plus_.at(ilayer)->getEntries();
180 nbinsx = HitOccupancy_Plus_.at(ilayer)->getNbinsX();
181 for (
int i = 1;
i <= nbinsx; ++
i) {
182 double binValue = HitOccupancy_Plus_.at(ilayer)->getBinContent(
i) /
nevent;
183 HitOccupancy_Plus_.at(ilayer)->setBinContent(
i, binValue);
186 nevent = HitOccupancy_Minus_.at(ilayer)->getEntries();
187 nbinsx = HitOccupancy_Minus_.at(ilayer)->getNbinsX();
188 for (
int i = 1;
i <= nbinsx; ++
i) {
189 double binValue = HitOccupancy_Minus_.at(ilayer)->getBinContent(
i) /
nevent;
190 HitOccupancy_Minus_.at(ilayer)->setBinContent(
i, binValue);
196 name <<
"SUMOfRecHitOccupancy_Plus";
197 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
198 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
199 MeanHitOccupancy_Plus_.push_back(hgcalMEs[ih]);
200 unsigned int indx = MeanHitOccupancy_Plus_.size() - 1;
201 for (
int ilayer = 0; ilayer < (
int)
layers_; ++ilayer) {
202 double meanVal = HitOccupancy_Plus_.at(ilayer)->getMean();
203 MeanHitOccupancy_Plus_[indx]->setBinContent(ilayer + 1, meanVal);
210 name <<
"SUMOfRecHitOccupancy_Plus";
211 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
212 if (strcmp(hgcalMEs[ih]->
getName().c_str(),
name.str().c_str()) == 0) {
213 MeanHitOccupancy_Minus_.push_back(hgcalMEs[ih]);
214 unsigned indx = MeanHitOccupancy_Minus_.size() - 1;
215 for (
int ilayer = 0; ilayer < (
int)
layers_; ++ilayer) {
216 double meanVal = HitOccupancy_Minus_.at(ilayer)->getMean();
217 MeanHitOccupancy_Minus_[indx]->setBinContent(ilayer + 1, meanVal);