42 int recHitsEndjob(
const std::vector<MonitorElement *> &hcalMEs);
47 verbosity_(iConfig.getUntrackedParameter<
int>(
"Verbosity", 0)) {}
69 std::vector<MonitorElement *> hgcalMEs;
70 std::vector<std::string> fullDirPath = ig.
getSubdirs();
72 for (
unsigned int i = 0;
i < fullDirPath.size();
i++) {
76 std::vector<std::string> fullSubDirPath = ig.
getSubdirs();
78 for (
unsigned int j = 0;
j < fullSubDirPath.size();
j++) {
82 if (strcmp(fullSubDirPath.at(
j).c_str(), nameDirectory.c_str()) == 0) {
85 edm::LogVerbatim(
"HGCalValidation") <<
"hgcalMES size : " << hgcalMEs.size();
94 std::vector<MonitorElement *> energy_;
95 std::vector<MonitorElement *> EtaPhi_Plus_;
96 std::vector<MonitorElement *> EtaPhi_Minus_;
97 std::vector<MonitorElement *> HitOccupancy_Plus_;
98 std::vector<MonitorElement *> HitOccupancy_Minus_;
99 std::vector<MonitorElement *> MeanHitOccupancy_Plus_;
100 std::vector<MonitorElement *> MeanHitOccupancy_Minus_;
102 std::ostringstream
name;
106 for (
unsigned int ilayer = 0; ilayer <
layers_; ilayer++) {
108 name <<
"energy_layer_" << ilayer;
109 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
110 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
111 energy_.push_back(hgcalMEs[ih]);
116 nevent = energy_.at(ilayer)->getEntries();
117 nbinsx = energy_.at(ilayer)->getNbinsX();
118 for (
int i = 1;
i <= nbinsx;
i++) {
119 double binValue = energy_.at(ilayer)->getBinContent(
i) /
nevent;
120 energy_.at(ilayer)->setBinContent(
i, binValue);
125 name <<
"EtaPhi_Plus_" 126 <<
"layer_" << ilayer;
127 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
128 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
129 EtaPhi_Plus_.push_back(hgcalMEs[ih]);
134 name <<
"EtaPhi_Minus_" 135 <<
"layer_" << ilayer;
136 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
137 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
138 EtaPhi_Minus_.push_back(hgcalMEs[ih]);
143 nevent = EtaPhi_Plus_.at(ilayer)->getEntries();
144 nbinsx = EtaPhi_Plus_.at(ilayer)->getNbinsX();
145 nbinsy = EtaPhi_Plus_.at(ilayer)->getNbinsY();
146 for (
int i = 1;
i <= nbinsx; ++
i) {
147 for (
int j = 1;
j <= nbinsy; ++
j) {
148 double binValue = EtaPhi_Plus_.at(ilayer)->getBinContent(
i,
j) /
nevent;
149 EtaPhi_Plus_.at(ilayer)->setBinContent(
i,
j, binValue);
153 nevent = EtaPhi_Minus_.at(ilayer)->getEntries();
154 nbinsx = EtaPhi_Minus_.at(ilayer)->getNbinsX();
155 nbinsy = EtaPhi_Plus_.at(ilayer)->getNbinsY();
156 for (
int i = 1;
i <= nbinsx; ++
i) {
157 for (
int j = 1;
j <= nbinsy; ++
j) {
158 double binValue = EtaPhi_Minus_.at(ilayer)->getBinContent(
i,
j) /
nevent;
159 EtaPhi_Minus_.at(ilayer)->setBinContent(
i,
j, binValue);
165 name <<
"HitOccupancy_Plus_layer_" << ilayer;
166 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
167 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
168 HitOccupancy_Plus_.push_back(hgcalMEs[ih]);
173 name <<
"HitOccupancy_Minus_layer_" << ilayer;
174 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
175 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
176 HitOccupancy_Minus_.push_back(hgcalMEs[ih]);
181 nevent = HitOccupancy_Plus_.at(ilayer)->getEntries();
182 nbinsx = HitOccupancy_Plus_.at(ilayer)->getNbinsX();
183 for (
int i = 1;
i <= nbinsx; ++
i) {
184 double binValue = HitOccupancy_Plus_.at(ilayer)->getBinContent(
i) /
nevent;
185 HitOccupancy_Plus_.at(ilayer)->setBinContent(
i, binValue);
188 nevent = HitOccupancy_Minus_.at(ilayer)->getEntries();
189 nbinsx = HitOccupancy_Minus_.at(ilayer)->getNbinsX();
190 for (
int i = 1;
i <= nbinsx; ++
i) {
191 double binValue = HitOccupancy_Minus_.at(ilayer)->getBinContent(
i) /
nevent;
192 HitOccupancy_Minus_.at(ilayer)->setBinContent(
i, binValue);
198 name <<
"SUMOfRecHitOccupancy_Plus";
199 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
200 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
201 MeanHitOccupancy_Plus_.push_back(hgcalMEs[ih]);
202 unsigned int indx = MeanHitOccupancy_Plus_.size() - 1;
203 for (
int ilayer = 0; ilayer < (
int)layers_; ++ilayer) {
204 double meanVal = HitOccupancy_Plus_.at(ilayer)->getMean();
205 MeanHitOccupancy_Plus_[indx]->setBinContent(ilayer + 1, meanVal);
212 name <<
"SUMOfRecHitOccupancy_Plus";
213 for (
unsigned int ih = 0; ih < hgcalMEs.size(); ih++) {
214 if (strcmp(hgcalMEs[ih]->
getName().c_str(), name.str().c_str()) == 0) {
215 MeanHitOccupancy_Minus_.push_back(hgcalMEs[ih]);
216 unsigned indx = MeanHitOccupancy_Minus_.size() - 1;
217 for (
int ilayer = 0; ilayer < (
int)layers_; ++ilayer) {
218 double meanVal = HitOccupancy_Minus_.at(ilayer)->getMean();
219 MeanHitOccupancy_Minus_[indx]->setBinContent(ilayer + 1, meanVal);
int recHitsEndjob(const std::vector< MonitorElement * > &hcalMEs)
std::vector< MonitorElement * > getContents(Args &&...args)
void dqmEndJob(DQMStore::IBooker &ib, DQMStore::IGetter &ig) override
std::string nameDetector_
#define DEFINE_FWK_MODULE(type)
unsigned int layers(bool reco) const
~HGCalRecHitsClient() override
HGCalRecHitsClient(const edm::ParameterSet &)
TString getName(TString structure, int layer, TString geometry)
int getMaxDepth(const int &type) const
void beginRun(const edm::Run &run, const edm::EventSetup &c) override
virtual void runClient_(DQMStore::IBooker &ib, DQMStore::IGetter &ig)
void setCurrentFolder(std::string const &fullpath)
std::vector< std::string > getSubdirs()