14 LOG(debug) <<
"INIT OF SiBTHist";
16 fName = title +
"_cl";
20 const vector<Color_t> ChipColors{kRed + 2, kCyan + 2};
21 numberOfStations = sibtStationSet->GetNStations();
22 numberOfStrips = sibtStationSet->GetStation(0)->GetModule(0)->GetStripLayer(0).GetNStrips();
23 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
24 vector<vector<Double_t>> signalsInModule;
25 vector<vector<TH1F*>> rowSiBT;
26 vector<vector<vector<TH1F*>>> rowChipSignal;
27 vector<TH2F*> rowSiBT2D;
28 vector<vector<TH2F*>> firstStrip_Signal;
29 vector<vector<TH1F*>> firstStrip_Noise;
33 if (maxMods < st->GetNModules())
36 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
37 vector<TH1F*> colSiBT;
38 vector<vector<TH1F*>> colChipSignal;
39 vector<Double_t> signalsInLayers;
40 vector<TH2F*> secondStripSignal;
41 vector<TH1F*> secondStripNoise;
44 if ((Int_t)maxLayers < mod->GetNStripLayers())
48 vector<TH1F*> layerChipSignal;
50 signalsInLayers.push_back(0);
51 name = Form(fTitle +
"_Station_%d_module_%d_layer_%d", iStation, iModule, iLayer);
53 h->GetXaxis()->SetTitle(
"Strip Number");
54 h->GetYaxis()->SetTitle(
"Activation Count");
65 name = Form(fTitle +
"StripVsSignal" +
"_Station_%d_module_%d_layer_%d", iStation, iModule, iLayer);
67 hist->GetXaxis()->SetTitle(
"Strip Number");
68 hist->GetYaxis()->SetTitle(
"Signal");
69 secondStripSignal.push_back(hist);
71 name = Form(fTitle +
"StripVsNoise" +
"_Station_%d_module_%d_layer_%d", iStation, iModule, iLayer);
73 stripNoise->SetTitle(name);
74 stripNoise->GetXaxis()->SetTitle(
"Strip Number");
75 stripNoise->GetYaxis()->SetTitle(
"Noise");
76 stripNoise->SetLineWidth(2);
78 stripNoise->SetLineColor(1);
80 stripNoise->SetLineColor(2);
82 secondStripNoise.push_back(stripNoise);
83 for (Int_t iChip = 0; iChip < numberOfChips; ++iChip) {
84 name = Form(fTitle +
"ChipSignal" +
"_Station_%d_module_%d_layer_%d_chip_%d", iStation, iModule,
86 TH1F* chipSignal =
new TH1F(name, name, 500, 0, 2500);
87 chipSignal->GetXaxis()->SetTitle(
"Signal");
88 chipSignal->GetYaxis()->SetTitle(
"Count");
89 chipSignal->SetLineColor(ChipColors[iChip]);
90 chipSignal->SetLineWidth(2);
91 layerChipSignal.push_back(chipSignal);
93 colChipSignal.push_back(layerChipSignal);
95 name = Form(
"Signal_Layer0_Layer1_st%d_mod%d", iStation, iModule);
96 TH2F* h =
new TH2F(name, name, 250, 0, 2500, 250, 0, 2500);
97 h->GetXaxis()->SetTitle(
"Signal in layer 0");
98 h->GetYaxis()->SetTitle(
"Signal in layer 1");
99 rowSiBT2D.push_back(h);
100 signalsInModule.push_back(signalsInLayers);
101 rowSiBT.push_back(colSiBT);
102 rowChipSignal.push_back(colChipSignal);
103 firstStrip_Signal.push_back(secondStripSignal);
104 firstStrip_Noise.push_back(secondStripNoise);
106 signalSiBT.push_back(signalsInModule);
107 histSiBTStrip.push_back(rowSiBT);
108 histSiBTChipSignal.push_back(rowChipSignal);
109 histSiBTSignal2D.push_back(rowSiBT2D);
110 histSiBTStripSignal.push_back(firstStrip_Signal);
111 histSiBTStripNoise.push_back(firstStrip_Noise);
115 name = fTitle +
"Canvas";
117 name = fTitle +
"SignalCanvas";
119 name = fTitle +
"StripSignalCanvas";
121 name = fTitle +
"StripNoiseCanvas";
123 name = fTitle +
"ChipSignalCanvas";
126 const vector<TString> LayerNames{
"p+",
"n+"};
128 canSiBTStrip->Divide(maxMods, numberOfStations);
129 canSiBTSignal->Divide(numberOfStations, maxMods);
130 canSiBTStripSignal->Divide(maxLayers, sumMods);
131 canSiBTStripNoise->Divide(maxMods, numberOfStations);
132 canSiBTChipSignal->Divide(maxLayers, sumMods);
135 canStripPads.resize(maxMods * numberOfStations);
136 canSignalPads.resize(maxMods * numberOfStations);
137 canStripSignalPads.resize(sumMods * maxLayers);
138 canStripNoisePads.resize(maxMods * numberOfStations);
139 canChipSignalPads.resize(sumMods * maxLayers);
140 NamesStrip.resize(maxMods * numberOfStations);
141 NamesSignal.resize(maxMods * numberOfStations);
142 NamesStripSignal.resize(sumMods * maxLayers);
143 NamesStripNoise.resize(maxMods * numberOfStations);
144 NamesChipSignal.resize(sumMods * maxLayers);
146 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
148 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
152 Double_t l_x0 = 0.15;
153 Double_t l_y0 = 0.75;
156 TLegend* legend =
new TLegend(l_x0, l_y0, l_x0 + l_w, l_y0 + l_h);
157 legend->SetTextSize(0.03);
159 legend->AddEntry(histSiBTStrip[iStation][iModule][iLayer], LayerNames[iLayer]);
160 p->
aux.push_back(histSiBTStrip[iStation][iModule][iLayer]);
163 Int_t iPad = modCtr * maxMods + iModule;
164 p->
name = Form(fTitle +
"Occupancy" +
"_Station_%d_module_%d", iStation, iModule);
165 canStripPads[iPad] = p;
166 canSiBTStrip->GetPad(iPad + 1)->SetGrid();
167 NamesStrip[iPad] = canStripPads[iPad]->name;
168 canSiBTStrip->GetPad(iPad + 1)->SetTitle(NamesStripNoise[iPad]);
175 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
177 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
181 p->
current = histSiBTSignal2D[iStation][iModule];
182 Int_t iPad = modCtr * maxMods + iModule;
183 canSignalPads[iPad] = p;
184 canSiBTSignal->GetPad(iPad + 1)->SetGrid();
185 NamesSignal[iPad] = canSignalPads[iPad]->current->GetName();
192 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
194 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
199 p->
current = histSiBTStripSignal[iStation][iModule][iLayer];
200 Int_t iPad = modCtr * maxLayers + iLayer;
201 canStripSignalPads[iPad] = p;
202 canSiBTStripSignal->GetPad(iPad + 1)->SetGrid();
203 NamesStripSignal[iPad] = canStripSignalPads[iPad]->current->GetName();
210 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
212 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
217 Double_t l_x0 = 0.15;
218 Double_t l_y0 = 0.75;
221 TLegend* legend =
new TLegend(l_x0, l_y0, l_x0 + l_w, l_y0 + l_h);
222 legend->SetTextSize(0.03);
224 legend->AddEntry(histSiBTStripNoise[iStation][iModule][iLayer], LayerNames[iLayer]);
225 p->
aux.push_back(histSiBTStripNoise[iStation][iModule][iLayer]);
228 Int_t iPad = modCtr * maxMods + iModule;
229 p->
name = Form(fTitle +
"StripVsNoise" +
"_Station_%d_module_%d", iStation, iModule);
230 canStripNoisePads[iPad] = p;
231 canSiBTStripNoise->GetPad(iPad + 1)->SetGrid();
232 NamesStripNoise[iPad] = canStripNoisePads[iPad]->name;
233 canSiBTStripNoise->GetPad(iPad + 1)->SetTitle(NamesStripNoise[iPad]);
240 for (Int_t iStation = 0; iStation < numberOfStations; iStation++) {
242 for (Int_t iModule = 0; iModule < st->
GetNModules(); iModule++) {
247 Double_t l_x0 = 0.15;
251 TLegend* legend =
new TLegend(l_x0, l_y0, l_x0 + l_w, l_y0 + l_h);
252 legend->SetTextSize(0.04);
253 for (Int_t iChip = 0; iChip < numberOfChips; iChip++) {
254 legend->AddEntry(histSiBTChipSignal[iStation][iModule][iLayer][iChip], Form(
"ASIC# %d", iChip + 1));
255 p->
aux.push_back(histSiBTChipSignal[iStation][iModule][iLayer][iChip]);
258 Int_t iPad = modCtr * maxLayers + iLayer;
259 p->
name = Form(fTitle +
"ChipSignal" +
"_Station_%d_module_%d", iStation, iModule);
260 canChipSignalPads[iPad] = p;
261 canSiBTChipSignal->GetPad(iPad + 1)->SetGrid();
262 NamesChipSignal[iPad] = canChipSignalPads[iPad]->name;
263 canSiBTChipSignal->GetPad(iPad + 1)->SetTitle(NamesChipSignal[iPad]);