48 std::vector<VxdID> sensors =
m_vxdGeometry.getListOfSensors();
49 for (
VxdID& avxdid : sensors) {
53 m_histos[avxdid] =
new TH2F(
"Chargemap for " + TString((std::string)avxdid),
54 "PXD Module Chargemap for " + TString((std::string)avxdid) +
" ;VCell;UCell", 768, 0, 768, 250, 0, 256);
57 m_histos_gm[avxdid] =
new TH2F(
"Chargemap for " + TString((std::string)avxdid),
58 "PXD Module Chargemap for GM " + TString((std::string)avxdid) +
" ;VCell-GM;UCell", 768, 0, 768, 250, 0, 256);
60 m_histos_gm2[avxdid] =
new TH2F(
"Chargemap for " + TString((std::string)avxdid),
61 "PXD Module Chargemap for GM2 " + TString((std::string)avxdid) +
" ;VCell+GM;UCell", 768, 0, 768, 250, 0, 256);
65 m_c =
new TCanvas(
"c1",
"c1", 4000, 3000);
66 m_l1 =
new TLine(0, 62, 768, 62);
67 m_l2 =
new TLine(0, 125, 768, 125);
68 m_l3 =
new TLine(0, 187, 768, 187);
69 m_l1->SetLineColor(kMagenta);
70 m_l2->SetLineColor(kMagenta);
71 m_l3->SetLineColor(kMagenta);
79 for (
auto h :
m_histos)
if (h.second) h.second->Reset();
80 for (
auto h :
m_histos_gm)
if (h.second) h.second->Reset();
81 for (
auto h :
m_histos_gm2)
if (h.second) h.second->Reset();
83 std::map <VxdID, bool> cm_map;
86 for (
auto& dhc : pkt) {
87 for (
auto& dhe : dhc) {
88 for (
auto cm = dhe.cm_begin(); cm < dhe.cm_end(); ++cm) {
90 if (std::get<2>(*cm) == 63) {
91 m_histos[dhe.getSensorID()]->Fill(std::get<1>(*cm), 252 + std::get<0>(*cm), std::get<2>(*cm));
93 cm_map[dhe.getSensorID()] =
true;
102 int tinj = -1, rgate = -1;
105 auto difference = it.GetTimeSinceLastInjection(0);
107 if (difference != 0x7FFFFFFF) {
109 float diff2 = difference / (508.877 / 4.);
110 int bunch_trg = it.GetBunchNumber(0);
111 int time_inj = it.GetTimeSinceLastInjection(0);
112 int bunch_inj = (bunch_trg - time_inj) % 1280;
113 if (bunch_inj < 0) bunch_inj += 1280;
114 rgate = bunch_inj / (1280. / 96.);
122 m_histos[pix.getSensorID()]->Fill(pix.getRow(), pix.getColumn(), pix.getCharge());
126 int v = int(pix.getVCellID()) - rgate * 4;
128 m_histos_gm[pix.getSensorID()]->Fill(v, pix.getColumn(), pix.getCharge());
131 int v = int(pix.getVCellID()) + rgate * 4;
132 if (v >= 768) v -= 768;
133 m_histos_gm2[pix.getSensorID()]->Fill(v, pix.getColumn(), pix.getCharge());
139 canvasname = std::string(Form(
"Run_%d_Evt_%d", evtRun, evtNr));
141 gStyle->SetPalette(55);
142 gStyle->SetOptStat(0);
149 m_c->Pad()->SetFrameLineColor(kRed);
150 m_c->Pad()->SetFrameBorderSize(4);
151 m_c->Pad()->SetFrameBorderMode(4);
152 m_c->SetFrameLineColor(kRed);
153 m_c->SetFrameBorderSize(4);
154 m_c->SetFrameBorderMode(4);
161 string abc = string(h.first);
162 auto dhe = (*m_storeDAQEvtStats).findDHE(h.first);
165 auto tg = dhe->getTriggerGate();
166 auto fn = dhe->getFrameNr();
167 auto err = dhe->getEndErrorInfo();
169 abc += Form(
" ERR: $%X TG: %d FN: %d IN: %d GA: %d", err, tg, fn, tinj, rgate);
170 for (
auto itdhp = dhe->cbegin(); itdhp != dhe->cend(); ++itdhp) {
171 abc += Form(
"(%d) %d ", itdhp->getChipID(), itdhp->getFrameNr());
174 m_c->Pad()->SetFillColor(kYellow);
176 if (cm_map[h.first]) {
177 m_c->Pad()->SetFillColor(kRed);
178 m_c->Pad()->SetFrameFillColor(kWhite);
181 h.second->SetTitle(abc.data());
182 h.second->Draw(
"colz");
189 m_c->Print((canvasname +
".png").data());
190 m_c->Print((canvasname +
".pdf").data());
191 m_c->Print((canvasname +
".root").data());
198 m_c->Pad()->SetFrameLineColor(kRed);
199 m_c->Pad()->SetFrameBorderSize(4);
200 m_c->Pad()->SetFrameBorderMode(4);
201 m_c->SetFrameLineColor(kRed);
202 m_c->SetFrameBorderSize(4);
203 m_c->SetFrameBorderMode(4);
210 string abc = string(h.first);
211 auto dhe = (*m_storeDAQEvtStats).findDHE(h.first);
214 auto tg = dhe->getTriggerGate();
215 auto fn = dhe->getFrameNr();
216 auto err = dhe->getEndErrorInfo();
218 abc += Form(
" ERR: $%X TG: %d FN: %d IN: %d GA: %d", err, tg, fn, tinj, rgate);
219 for (
auto itdhp = dhe->cbegin(); itdhp != dhe->cend(); ++itdhp) {
220 abc += Form(
"(%d) %d ", itdhp->getChipID(), itdhp->getFrameNr());
223 m_c->Pad()->SetFillColor(kYellow);
225 if (cm_map[h.first]) {
226 m_c->Pad()->SetFillColor(kRed);
227 m_c->Pad()->SetFrameFillColor(kWhite);
230 h.second->SetTitle(abc.data());
231 h.second->Draw(
"colz");
238 m_c->Print((canvasname +
"_gm.png").data());
239 m_c->Print((canvasname +
"_gm.pdf").data());
240 m_c->Print((canvasname +
"_gm.root").data());
246 m_c->Pad()->SetFrameLineColor(kRed);
247 m_c->Pad()->SetFrameBorderSize(4);
248 m_c->Pad()->SetFrameBorderMode(4);
249 m_c->SetFrameLineColor(kRed);
250 m_c->SetFrameBorderSize(4);
251 m_c->SetFrameBorderMode(4);
258 string abc = string(h.first);
259 auto dhe = (*m_storeDAQEvtStats).findDHE(h.first);
262 auto tg = dhe->getTriggerGate();
263 auto fn = dhe->getFrameNr();
264 auto err = dhe->getEndErrorInfo();
266 abc += Form(
" ERR: $%X TG: %d FN: %d IN: %d GA: %d", err, tg, fn, tinj, rgate);
267 for (
auto itdhp = dhe->cbegin(); itdhp != dhe->cend(); ++itdhp) {
268 abc += Form(
"(%d) %d ", itdhp->getChipID(), itdhp->getFrameNr());
271 m_c->Pad()->SetFillColor(kYellow);
273 if (cm_map[h.first]) {
274 m_c->Pad()->SetFillColor(kRed);
275 m_c->Pad()->SetFrameFillColor(kWhite);
278 h.second->SetTitle(abc.data());
279 h.second->Draw(
"colz");
286 m_c->Print((canvasname +
"_gm2.png").data());
287 m_c->Print((canvasname +
"_gm2.pdf").data());
288 m_c->Print((canvasname +
"_gm2.root").data());