1 #ifndef HcalObjRepresent_h 2 #define HcalObjRepresent_h 32 #include "TPaveLabel.h" 38 template <
class Items,
class Item>
47 typedef std::tuple<int, int, int>
Coord;
50 typedef std::map<std::pair<std::string, int>, TH2F*>
DepthMap;
75 std::vector<Item> itemsVec;
76 std::pair<std::string, int> depthKey;
77 const char* histLabel;
78 for (std::pair<
std::string, std::vector<Item> >
cont : (*payload_).getAllContainers()) {
79 subDetName = std::get<0>(
cont);
80 itemsVec = std::get<1>(
cont);
84 for (Item
item : itemsVec) {
91 if (subDetName[0] ==
'H' &&
depth != 0) {
92 valContainer->insert(std::pair<std::tuple<int, int, int>, Item>(coord,
item));
94 depthKey = std::make_pair(subDetName,
depth);
96 auto depthVal =
depths_.find(depthKey);
97 if (depthVal ==
depths_.end()) {
99 depths_.insert(std::make_pair(std::make_pair(subDetName,
depth),
100 new TH2F(histLabel, histLabel, 83, -42.5, 41.5, 71, 0.5, 71.5)));
111 const std::vector<std::pair<std::string, std::vector<Item> > >
getAllItems() {
112 return (*payload_).getAllContainers();
117 throw cms::Exception(
"Value definition not found") <<
"getValue definition not found for " <<
payload_->myname();
123 Item* cell =
nullptr;
127 auto it = valContainer->find(coord);
128 if (
it != valContainer->end())
134 <<
"Unavailable Conditions of type " <<
payload_->myname() <<
" for cell " << subDetName <<
" (" <<
depth 135 <<
", " <<
ieta <<
", " <<
iphi <<
")";
150 DepthMap::iterator depth1;
151 std::pair<std::string, int>
key;
153 DepthMap theirDepths = dataCont2->
GetDepths();
154 for (depth1 = myDepths.begin(); depth1 != myDepths.end(); depth1++) {
156 if (theirDepths.count(
key) != 0) {
157 myDepths.at(
key)->Divide((
const TH1*)theirDepths.at(
key));
160 <<
"trying to plot conditions for " <<
payload_->myname() <<
"; found value for " << std::get<0>(
key)
170 DepthMap::iterator depth1;
171 std::pair<std::string, int>
key;
173 DepthMap theirDepths = dataCont2->
GetDepths();
174 for (depth1 = myDepths.begin(); depth1 != myDepths.end(); depth1++) {
176 if (theirDepths.count(
key) != 0) {
177 myDepths.at(
key)->Add(myDepths.at(
key), theirDepths.at(
key), 1, -1);
180 <<
"trying to plot conditions for " <<
payload_->myname() <<
"; found value for " << std::get<0>(
key)
191 Double_t adjustMin = 1;
193 int nBinsX =
hist->GetXaxis()->GetNbins();
194 int nBinsY =
hist->GetYaxis()->GetNbins();
195 for (
int i = 0;
i < nBinsX;
i++) {
196 for (
int j = 0;
j < nBinsY;
j++) {
197 tempMin =
hist->GetBinContent(
i,
j);
198 if ((tempMin != 0) && (tempMin < adjustMin))
202 amp =
std::max((1 - adjustMin), (
hist->GetMaximum() - 1));
204 return std::make_pair(1 - amp, 1 + amp);
208 return std::make_pair((-1 * amp), amp);
210 Double_t adjustMin = 10000;
212 int nBinsX =
hist->GetXaxis()->GetNbins();
213 int nBinsY =
hist->GetYaxis()->GetNbins();
214 for (
int i = 0;
i < nBinsX;
i++) {
215 for (
int j = 0;
j < nBinsY;
j++) {
216 tempMin =
hist->GetBinContent(
i,
j);
217 if ((tempMin != 0) && (tempMin < adjustMin))
221 return std::make_pair(((adjustMin == 10000) ?
hist->GetMinimum() : adjustMin),
hist->GetMaximum());
227 gStyle->SetOptStat(0);
228 gStyle->SetPalette(1);
229 gStyle->SetOptFit(0);
230 gStyle->SetLabelFont(42);
231 gStyle->SetLabelFont(42);
232 gStyle->SetTitleFont(42);
233 gStyle->SetTitleFont(42);
234 gStyle->SetMarkerSize(0);
235 gStyle->SetTitleOffset(1.3,
"Y");
236 gStyle->SetTitleOffset(1.0,
"X");
237 gStyle->SetNdivisions(510);
238 gStyle->SetStatH(0.11);
239 gStyle->SetStatW(0.33);
240 gStyle->SetTitleW(0.4);
241 gStyle->SetTitleX(0.13);
242 gStyle->SetPadTickX(1);
243 gStyle->SetPadTickY(1);
267 for (
int j = otherMin;
j <= otherMax;
j++) {
274 if (channelVal != 0) {
275 sumVal += channelVal;
281 retHist->Fill(
i, sumVal / ((Double_t)numChannels));
294 std::pair<float, float>
range;
301 if (
depths_.count(std::make_pair(subDetName,
i)) == 0) {
305 padNum =
i + startCanv - 1;
306 if (subDetName ==
"HO")
309 canvas->GetPad(padNum)->SetGridx(1);
310 canvas->GetPad(padNum)->SetGridy(1);
312 if (plotForm ==
"2DHist") {
313 canvas->GetPad(padNum)->SetRightMargin(0.13);
315 depths_[std::make_pair(subDetName,
i)]->Draw(
"colz");
316 depths_[std::make_pair(subDetName,
i)]->SetContour(100);
317 depths_[std::make_pair(subDetName,
i)]->GetXaxis()->SetTitle(
"ieta");
318 depths_[std::make_pair(subDetName,
i)]->GetYaxis()->SetTitle(
"iphi");
319 depths_[std::make_pair(subDetName,
i)]->GetXaxis()->CenterTitle();
320 depths_[std::make_pair(subDetName,
i)]->GetYaxis()->CenterTitle();
321 depths_[std::make_pair(subDetName,
i)]->GetZaxis()->SetRangeUser(std::get<0>(
range), std::get<1>(
range));
322 depths_[std::make_pair(subDetName,
i)]->GetYaxis()->SetTitleSize(0.06);
323 depths_[std::make_pair(subDetName,
i)]->GetYaxis()->SetTitleOffset(0.80);
324 depths_[std::make_pair(subDetName,
i)]->GetXaxis()->SetTitleSize(0.06);
325 depths_[std::make_pair(subDetName,
i)]->GetXaxis()->SetTitleOffset(0.80);
326 depths_[std::make_pair(subDetName,
i)]->GetYaxis()->SetLabelSize(0.055);
327 depths_[std::make_pair(subDetName,
i)]->GetXaxis()->SetLabelSize(0.055);
329 canvas->GetPad(padNum)->SetLeftMargin(0.152);
330 canvas->GetPad(padNum)->SetRightMargin(0.02);
333 (plotForm ==
"EtaProfile" ?
"ieta" :
"iphi"))
338 projection->Draw(
"hist");
339 projection->GetXaxis()->SetTitle((plotForm ==
"EtaProfile" ?
"ieta" :
"iphi"));
340 projection->GetXaxis()->CenterTitle();
341 projection->GetYaxis()->SetTitle(
345 label.SetTextAlign(26);
346 label.SetTextSize(0.05);
349 projection->GetYaxis()->CenterTitle();
350 projection->GetXaxis()->SetTitleSize(0.06);
351 projection->GetYaxis()->SetTitleSize(0.06);
352 projection->GetXaxis()->SetTitleOffset(0.80);
353 projection->GetXaxis()->SetLabelSize(0.055);
354 projection->GetYaxis()->SetTitleOffset(1.34);
355 projection->GetYaxis()->SetLabelSize(0.055);
366 TCanvas* HAll =
new TCanvas(
"HAll",
"HAll", 1680, (
GetTopoMode() ==
"2015/2016") ? 1680 : 2500);
367 HAll->Divide(3, (
GetTopoMode() ==
"2015/2016") ? 3 : 6, 0.02, 0.01);
378 TCanvas*
HF =
new TCanvas(
"HF",
"HF", 1600, 1000);
379 HF->Divide(3, 2, 0.02, 0.01);
386 TCanvas*
HE =
new TCanvas(
"HE",
"HE", 1680, 1680);
387 HE->Divide(3, 3, 0.02, 0.01);
394 TCanvas* HBHO =
new TCanvas(
"HBHO",
"HBHO", 1680, 1680);
395 HBHO->Divide(3, 3, 0.02, 0.01);
398 FillCanv(HBHO,
"HB", 1, 4,
"EtaProfile");
399 FillCanv(HBHO,
"HO", 4, 6,
"EtaProfile");
400 FillCanv(HBHO,
"HB", 1, 7,
"PhiProfile");
401 FillCanv(HBHO,
"HO", 4, 9,
"PhiProfile");
410 return "(" +
unit +
")";
430 std::map<std::string, std::string>
units_ = {{
"HcalPedestals",
"ADC"},
432 {
"HcalL1TriggerObjects",
""},
433 {
"HcalPedestalWidths",
"ADC"},
434 {
"HcalRespCorrs",
""},
435 {
"Dark Current",
""},
441 if (subDetString ==
"HB")
443 else if (subDetString ==
"HE")
445 else if (subDetString ==
"HF")
447 else if (subDetString ==
"HO")
449 else if (subDetString ==
"HT")
451 else if (subDetString ==
"CALIB")
453 else if (subDetString ==
"CASTOR")
456 else if (subDetString ==
"ZDC_EM" || subDetString ==
"ZDC" || subDetString ==
"ZDC_HAD" ||
457 subDetString ==
"ZDC_LUM")
460 throw cms::Exception(
"subDetString " + subDetString +
" not found in Item");
465 if (
depths_.count(std::make_pair(
"HF", 4)) != 0 ||
depths_.count(std::make_pair(
"HE", 7)) != 0)
489 TLine*
l =
new TLine;
491 for (
int i = 1;
i < nbRows;
i++) {
492 double y = (double)
i;
493 l =
new TLine(0., y, nbColumns, y);
497 for (
int i = 1;
i < nbColumns;
i++) {
498 double x = (double)
i;
499 double y = (double)nbRows;
500 l =
new TLine(
x, 0.,
x, y);
507 std::ostringstream streamObj2;
521 std::stringstream
ss;
522 unsigned int mask = 1 << 31;
523 for (
unsigned short int i = 0;
i < 32; ++
i) {
536 unsigned int statadd = 0x1 << (bitnumber);
537 return (
status & statadd) ? (
true) : (
false);
541 std::stringstream
ss;
542 for (
unsigned int i = 0;
i < 9; ++
i) {
544 ss <<
"[" << bitMap[
i] <<
"]" << statusBitArray[bitMap[
i]] <<
"; ";
554 for (
unsigned int i = 0;
i <
depth.size(); ++
i) {
555 depth[
i].SetXTitle(
"i#eta");
556 depth[
i].SetYTitle(
"i#phi");
559 std::stringstream
label;
562 for (
int i = -41;
i <= -29;
i =
i + 2) {
564 depth[0].GetXaxis()->SetBinLabel(
i + 42,
label.str().c_str());
565 depth[1].GetXaxis()->SetBinLabel(
i + 42,
label.str().c_str());
568 depth[0].GetXaxis()->SetBinLabel(14,
"-29HE");
569 depth[1].GetXaxis()->SetBinLabel(14,
"-29HE");
572 for (
int i = -27;
i <= 27;
i =
i + 2) {
574 depth[0].GetXaxis()->SetBinLabel(
i + 43,
label.str().c_str());
577 depth[0].GetXaxis()->SetBinLabel(72,
"29HE");
578 for (
int i = 29;
i <= 41;
i =
i + 2) {
580 depth[0].GetXaxis()->SetBinLabel(
i + 44,
label.str().c_str());
583 for (
int i = 16;
i <= 28;
i =
i + 2) {
585 depth[1].GetXaxis()->SetBinLabel(
i,
label.str().c_str());
588 depth[1].GetXaxis()->SetBinLabel(29,
"NULL");
589 for (
int i = 15;
i <= 27;
i =
i + 2) {
591 depth[1].GetXaxis()->SetBinLabel(
i + 15,
label.str().c_str());
595 depth[1].GetXaxis()->SetBinLabel(44,
"29HE");
596 for (
int i = 29;
i <= 41;
i =
i + 2) {
598 depth[1].GetXaxis()->SetBinLabel(
i + 16,
label.str().c_str());
603 depth[2].GetXaxis()->SetBinLabel(1,
"-28");
604 depth[2].GetXaxis()->SetBinLabel(2,
"-27");
605 depth[2].GetXaxis()->SetBinLabel(3,
"Null");
606 depth[2].GetXaxis()->SetBinLabel(4,
"-16");
607 depth[2].GetXaxis()->SetBinLabel(5,
"Null");
608 depth[2].GetXaxis()->SetBinLabel(6,
"16");
609 depth[2].GetXaxis()->SetBinLabel(7,
"Null");
610 depth[2].GetXaxis()->SetBinLabel(8,
"27");
611 depth[2].GetXaxis()->SetBinLabel(9,
"28");
616 const int binmapd2[] = {-42, -41, -40, -39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28,
617 -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -9999, 15,
618 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
619 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42};
623 const int binmapd3[] = {-28, -27, -9999, -16, -9999, 16, -9999, 27, 28};
640 ieta < 0 ? etabin-- : etabin++;
644 else if (
depth == 2) {
650 }
else if (
ieta > 14) {
665 else if (
ieta == -27)
667 else if (
ieta == -16)
694 }
else if (
depth == 2) {
713 }
else if (
depth == 2) {
729 else if (
depth == 2) {
736 }
else if (
depth == 3) {
737 if (eta < 0 || eta > 8)
784 }
else if (
depth == 2) {
795 else if (
ieta <= -30)
801 }
else if (
depth == 3) {
809 }
else if (
depth == 4) {
823 std::vector<std::string>
name;
824 name.push_back(
"HB HE HF Depth 1 ");
825 name.push_back(
"HB HE HF Depth 2 ");
826 name.push_back(
"HE Depth 3 ");
827 name.push_back(
"HO Depth 4 ");
845 }
else if (
depth == 2) {
867 if (
ieta == -29 && etabin == 13)
869 if (
ieta == 29 && etabin == 71)
871 }
else if (
depth == 2) {
874 if (
ieta == -29 && etabin == 13)
876 if (
ieta == 29 && etabin == 43)
878 }
else if (
depth == 3)
894 if (
ieta == -29 && etabin == 13)
896 else if (
ieta == 29 && etabin == 71)
900 }
else if (
depth == 2) {
901 if (
ieta == -29 && etabin == 13)
903 else if (
ieta == 29 && etabin == 43)
927 if (
ieta >= 5 && ieta <= 10 && iphi >= 47 &&
iphi <= 58)
930 if (
ieta >= 11 && ieta <= 15 && iphi >= 59 &&
iphi <= 70)
941 const int ie(
abs(ies));
944 (ip >= 1) && (ip <= 72) && (
dp >= 1) && (ie >= 1) &&
945 (((sd ==
HcalBarrel) && (((ie <= 14) && (
dp == 1)) || (((ie == 15) || (ie == 16)) && (
dp <= 2)))) ||
947 (((ie == 16) && (
dp == 3)) || ((ie == 17) && (
dp == 1)) || ((ie >= 18) && (ie <= 20) && (
dp <= 2)) ||
948 ((ie >= 21) && (ie <= 26) && (
dp <= 2) && (ip % 2 == 1)) ||
949 ((ie >= 27) && (ie <= 28) && (
dp <= 3) && (ip % 2 == 1)) || ((ie == 29) && (
dp <= 2) && (ip % 2 == 1)))) ||
952 (((ie >= 29) && (ie <= 39) && (ip % 2 == 1)) || ((ie >= 40) && (ie <= 41) && (ip % 4 == 3))))));
959 std::stringstream
label;
960 for (
int i = -41;
i <= -29;
i =
i + 2) {
962 h.GetXaxis()->SetBinLabel(
i + 42,
label.str().c_str());
965 h.GetXaxis()->SetBinLabel(14,
"-29HE");
968 for (
int i = -27;
i <= 27;
i =
i + 2) {
970 h.GetXaxis()->SetBinLabel(
i + 43,
label.str().c_str());
973 h.GetXaxis()->SetBinLabel(72,
"29HE");
974 for (
int i = 29;
i <= 41;
i =
i + 2) {
976 h.GetXaxis()->SetBinLabel(
i + 44,
label.str().c_str());
987 for (
unsigned int d = 0;
d < 3; ++
d) {
995 for (
int phi = 0; phi <
hh[
d].GetNbinsY(); ++phi) {
1026 int phibins =
hh.GetNbinsY();
1034 for (
int phi = 0; phi < phibins; ++phi) {
1038 binval =
hh.GetBinContent(
eta + 1,
iphi);
1039 hh.SetBinContent(
eta + 1,
iphi + 1, binval);
1066 for (
unsigned int d = 0;
d <
depth.size();
d++)
1074 if (
units.empty()) {
1076 unittitle =
"No Units";
1078 unitname =
" " +
units;
1085 depth.push_back(TH2F((
"HB HE HF Depth 1 " +
name + unitname).c_str(),
1086 (
name +
" Depth 1 -- HB HE HF (" + unittitle +
")").c_str(),
1096 for (
int i = 0;
i <= 72;
i++)
1097 ybins[
i] = (
float)(
i + 0.5);
1098 float xbinsd2[] = {-42.5, -41.5, -40.5, -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5,
1099 -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5,
1100 -18.5, -17.5, -16.5, -15.5, -14.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5,
1101 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5,
1102 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5};
1105 depth.push_back(TH2F((
"HB HE HF Depth 2 " +
name + unitname).c_str(),
1106 (
name +
" Depth 2 -- HB HE HF (" + unittitle +
")").c_str(),
1113 float xbins[] = {-28.5, -27.5, -26.5, -16.5, -15.5, 15.5, 16.5, 26.5, 27.5, 28.5};
1115 depth.push_back(TH2F((
"HE Depth 3 " +
name + unitname).c_str(),
1116 (
name +
" Depth 3 -- HE (" + unittitle +
")").c_str(),
1124 depth.push_back(TH2F((
"HO Depth 4 " +
name + unitname).c_str(),
1125 (
name +
" Depth 4 -- HO (" + unittitle +
")").c_str(),
1133 for (
unsigned int i = 0;
i <
depth.size(); ++
i)
1146 std::stringstream
x;
1148 for (
unsigned int d = 0;
d < graphData.size(); ++
d) {
1149 graphData[
d].Reset();
1150 x <<
"Gain " <<
id <<
" for HCAL depth " <<
d + 1;
1154 graphData[
d].SetTitle(
1168 HcalGains::tAllContWithNames::const_iterator iter;
1169 std::vector<HcalGain>::const_iterator contIter;
1176 for (iter = allContainers.begin(); iter != allContainers.end(); ++iter) {
1178 for (contIter = (*iter).second.begin(); contIter != (*iter).second.end(); ++contIter) {
1179 hcal_id =
HcalDetId((uint32_t)(*contIter).rawId());
1182 if (depth < 1 || depth > 4)
1192 gain = (*contIter).getValue(
i);
1216 std::stringstream
ss(
"");
1226 for (
unsigned int d = 0;
d < graphData.size(); ++
d) {
1227 graphData[
d].Reset();
1231 ss <<
plotname.str() <<
" for HCAL depth " <<
d + 1;
1237 graphData[
d].SetTitle(
1252 draw(graphData,
ss.str());
1262 virtual void doFillIn(std::vector<TH2F>& graphData) = 0;
1268 gStyle->SetPalette(1);
1269 const Int_t NCont = 999;
1270 gStyle->SetNumberContours(NCont);
1271 TCanvas
canvas(
"CC map",
"CC map", 840, 369 * 4);
1273 TPad
pad1(
"pad1",
"pad1", 0.0, 0.75, 1.0, 1.0);
1275 TPad
pad2(
"pad2",
"pad2", 0.0, 0.5, 1.0, 0.75);
1277 TPad pad3(
"pad3",
"pad3", 0.0, 0.25, 1.0, 0.5);
1279 TPad pad4(
"pad4",
"pad4", 0.0, 0.0, 1.0, 0.25);
1283 graphData[0].SetStats(
false);
1284 graphData[0].Draw(
"colz");
1287 graphData[1].SetStats(
false);
1288 graphData[1].Draw(
"colz");
1291 graphData[2].SetStats(
false);
1292 graphData[2].Draw(
"colz");
1295 graphData[3].SetStats(
false);
1296 graphData[3].Draw(
"colz");
1303 if (
units.empty()) {
1305 unittitle =
"No Units";
1307 unitname =
" " +
units;
1314 depth.push_back(TH2F((
"HB HE HF Depth 1 " +
name + unitname).c_str(),
1315 (
name +
" Depth 1 -- HB HE HF (" + unittitle +
")").c_str(),
1325 for (
int i = 0;
i <= 72;
i++)
1326 ybins[
i] = (
float)(
i + 0.5);
1327 float xbinsd2[] = {-42.5, -41.5, -40.5, -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5,
1328 -30.5, -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5,
1329 -18.5, -17.5, -16.5, -15.5, -14.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5,
1330 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5,
1331 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5};
1334 depth.push_back(TH2F((
"HB HE HF Depth 2 " +
name + unitname).c_str(),
1335 (
name +
" Depth 2 -- HB HE HF (" + unittitle +
")").c_str(),
1342 float xbins[] = {-28.5, -27.5, -26.5, -16.5, -15.5, 15.5, 16.5, 26.5, 27.5, 28.5};
1344 depth.push_back(TH2F((
"HE Depth 3 " +
name + unitname).c_str(),
1345 (
name +
" Depth 3 -- HE (" + unittitle +
")").c_str(),
1353 depth.push_back(TH2F((
"HO Depth 4 " +
name + unitname).c_str(),
1354 (
name +
" Depth 4 -- HO (" + unittitle +
")").c_str(),
1362 for (
unsigned int i = 0;
i <
depth.size(); ++
i)
1371 for (
unsigned int i = 0;
i <
depth.size(); ++
i) {
1372 depth[
i].SetXTitle(
"i#eta");
1373 depth[
i].SetYTitle(
"i#phi");
1376 std::stringstream
label;
1379 for (
int i = -41;
i <= -29;
i =
i + 2) {
1381 depth[0].GetXaxis()->SetBinLabel(
i + 42,
label.str().c_str());
1382 depth[1].GetXaxis()->SetBinLabel(
i + 42,
label.str().c_str());
1385 depth[0].GetXaxis()->SetBinLabel(14,
"-29HE");
1386 depth[1].GetXaxis()->SetBinLabel(14,
"-29HE");
1389 for (
int i = -27;
i <= 27;
i =
i + 2) {
1391 depth[0].GetXaxis()->SetBinLabel(
i + 43,
label.str().c_str());
1394 depth[0].GetXaxis()->SetBinLabel(72,
"29HE");
1395 for (
int i = 29;
i <= 41;
i =
i + 2) {
1397 depth[0].GetXaxis()->SetBinLabel(
i + 44,
label.str().c_str());
1400 for (
int i = 16;
i <= 28;
i =
i + 2) {
1402 depth[1].GetXaxis()->SetBinLabel(
i,
label.str().c_str());
1405 depth[1].GetXaxis()->SetBinLabel(29,
"NULL");
1406 for (
int i = 15;
i <= 27;
i =
i + 2) {
1408 depth[1].GetXaxis()->SetBinLabel(
i + 15,
label.str().c_str());
1412 depth[1].GetXaxis()->SetBinLabel(44,
"29HE");
1413 for (
int i = 29;
i <= 41;
i =
i + 2) {
1415 depth[1].GetXaxis()->SetBinLabel(
i + 16,
label.str().c_str());
1420 depth[2].GetXaxis()->SetBinLabel(1,
"-28");
1421 depth[2].GetXaxis()->SetBinLabel(2,
"-27");
1422 depth[2].GetXaxis()->SetBinLabel(3,
"Null");
1423 depth[2].GetXaxis()->SetBinLabel(4,
"-16");
1424 depth[2].GetXaxis()->SetBinLabel(5,
"Null");
1425 depth[2].GetXaxis()->SetBinLabel(6,
"16");
1426 depth[2].GetXaxis()->SetBinLabel(7,
"Null");
1427 depth[2].GetXaxis()->SetBinLabel(8,
"27");
1428 depth[2].GetXaxis()->SetBinLabel(9,
"28");
std::vector< std::string > HcalEtaPhiHistNames()
tHcalValCont ZDCvalContainer
tHcalValCont HEvalContainer
TCanvas * getCanvasHBHO()
void Divide(HcalDataContainer *dataCont2)
void SetEtaPhiLabels(TH2F &h)
tHcalValCont HOvalContainer
tHcalValCont CALIBvalContainer
void Subtract(HcalDataContainer *dataCont2)
const std::vector< std::pair< std::string, std::vector< Item > > > getAllItems()
std::stringstream rootname
tHcalValCont HTvalContainer
std::string getBitsSummary(uint32_t bits, std::string statusBitArray[], short unsigned int bitMap[])
bool validDetId(HcalSubdetector sd, int ies, int ip, int dp)
void setBinLabels(std::vector< TH2F > &depth)
ADataRepr(unsigned int d)
bool isHE(int etabin, int depth)
void drawTable(int nbRows, int nbColumns)
tHcalValCont HBvalContainer
std::tuple< int, int, int > Coord
std::string IntToBinary(unsigned int number)
void setTopoModeFromValConts(bool throwOnFail=false)
bool isHB(int etabin, int depth)
std::vector< tHcalCont > tAllContWithNames
static std::string to_string(const XMLCh *ch)
void FillCanv(TCanvas *canvas, std::string subDetName, int startDepth=1, int startCanv=1, std::string plotForm="2DHist")
constexpr HcalSubdetector subdet() const
get the subdetector
std::map< std::string, int > subDetDepths_
int CalcIeta(int subdet, int eta, int depth)
bool isSiPM(int ieta, int iphi, int depth)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
virtual void doFillIn(std::vector< TH2F > &graphData)=0
constexpr int ieta() const
get the cell ieta
std::map< Coord, Item > tHcalValCont
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
std::stringstream plotname
const bool isBitSet(unsigned int bitnumber, unsigned int status)
TCanvas * getCanvasAll(std::string profile="2DHist")
Abs< T >::type abs(const T &t)
void draw(std::vector< TH2F > &graphData, std::string filename)
key
prepare the HTCondor submission files and eventually submit them
std::map< std::pair< std::string, int >, TH2F * > DepthMap
void fillOneGain(std::vector< TH2F > &graphData, std::string units="")
ALPAKA_FN_ACC ALPAKA_FN_INLINE void uint32_t const uint32_t CACellT< TrackerTraits > uint32_t CellNeighborsVector< TrackerTraits > CellTracksVector< TrackerTraits > HitsConstView< TrackerTraits > hh
Basic3DVector unit() const
int CalcEtaBin(int subdet, int ieta, int depth)
void fillOneGain(std::vector< TH2F > &graphData, HcalGains::tAllContWithNames &allContainers, std::string name, int id, std::string units="")
tHcalValCont CASTORvalContainer
std::string SciNotatStr(float num)
TH1D * GetProjection(TH2F *hist, std::string plotType, const char *newName, std::string subDetName, int depth)
HcalDataContainer(std::shared_ptr< Items > payload, unsigned int run)
Item * getItemFromValCont(std::string subDetName, int depth, int ieta, int iphi, bool throwOnFail)
bool isHF(int etabin, int depth)
void FillUnphysicalHEHFBins(std::vector< TH2F > &hh)
std::pair< float, float > GetRange(TH1 *hist)
std::stringstream filename
virtual float getValue(const Item *item)
TString units(TString variable, Char_t axis)
tHcalValCont HFvalContainer
bool isHO(int etabin, int depth)
void Reset(std::vector< TH2F > &depth)
tHcalValCont * getContFromString(std::string subDetString)
void setBinLabels(std::vector< TH2F > &depth)
std::map< std::string, std::string > units_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
virtual ~HcalDataContainer()
if(threadIdxLocalY==0 &&threadIdxLocalX==0)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
constexpr int iphi() const
get the cell iphi
cont
load Luminosity info ##
std::shared_ptr< Items > payload_
std::string GetTopoMode()
std::map< std::string, int > GetSubDetDepths()
std::string GetUnit(std::string type)
constexpr int depth() const
get the tower depth