7 #include "boost/format.hpp" 27 #include <TProfile2D.h> 34 #include <TLegendEntry.h> 42 std::vector<const DDsvalues_type *>
result;
44 for (std::vector<const DDsvalues_type *>::iterator it = result.begin(); it != result.end(); ++it) {
47 if (parameter.
strings().size() == 1) {
48 value = parameter.
strings().front();
51 throw cms::Exception(
"Configuration")<<
" ERROR: multiple " << name <<
" tags encountered";
82 return out <<
"(" << v.rho() <<
", " << v.z() <<
", " << v.phi() <<
")";
116 std::map<std::string, std::pair<float, float> >
m_diff;
117 std::map<std::string, std::pair<float, float> >
m_values;
124 TColor::InitializeColors();
140 m_diff[
"TrackerRecMaterialTIBLayer0_Z20"] = std::make_pair<float, float>(0.000000, 0.000000);
141 m_diff[
"TrackerRecMaterialTECDisk0_R60"] = std::make_pair<float, float>(0.000000, 0.000000);
142 m_diff[
"TrackerRecMaterialTOBLayer1_Z80"] = std::make_pair<float, float>(0.000000, 0.000000);
143 m_diff[
"TrackerRecMaterialTOBLayer4_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
144 m_diff[
"TrackerRecMaterialTOBLayer2_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
145 m_diff[
"TrackerRecMaterialTOBLayer0_Z70"] = std::make_pair<float, float>(0.000000, 0.000000);
146 m_diff[
"TrackerRecMaterialTECDisk0_R20"] = std::make_pair<float, float>(0.000000, 0.000000);
147 m_diff[
"TrackerRecMaterialTOBLayer5_Z80"] = std::make_pair<float, float>(338.028085, 425.909863);
148 m_diff[
"TrackerRecMaterialPixelEndcapDisk1Fw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
149 m_diff[
"TrackerRecMaterialTECDisk1_R20"] = std::make_pair<float, float>(19.426752, 17.294518);
150 m_diff[
"TrackerRecMaterialTOBLayer5_Z0"] = std::make_pair<float, float>(510.125226, 651.305054);
151 m_diff[
"TrackerRecMaterialTECDisk8"] = std::make_pair<float, float>(1098.073793, 778.542517);
152 m_diff[
"TrackerRecMaterialTIDDisk3_R24"] = std::make_pair<float, float>(0.000000, 0.000000);
153 m_diff[
"TrackerRecMaterialTECDisk4_R33"] = std::make_pair<float, float>(51.925713, 42.900250);
154 m_diff[
"TrackerRecMaterialTIBLayer1_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
155 m_diff[
"TrackerRecMaterialPixelEndcapDisk1Bw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
156 m_diff[
"TrackerRecMaterialTIDDisk2_R25"] = std::make_pair<float, float>(0.000000, 0.000000);
157 m_diff[
"TrackerRecMaterialTIBLayer0_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
158 m_diff[
"TrackerRecMaterialTOBLayer3_Z25"] = std::make_pair<float, float>(0.000000, 0.000000);
159 m_diff[
"TrackerRecMaterialTIBLayer1_Z30"] = std::make_pair<float, float>(0.000000, 0.000000);
160 m_diff[
"TrackerRecMaterialTIDDisk2_R40"] = std::make_pair<float, float>(0.000000, 0.000000);
161 m_diff[
"TrackerRecMaterialTIBLayer2_Z40"] = std::make_pair<float, float>(0.000000, 0.000000);
162 m_diff[
"TrackerRecMaterialTOBLayer1_Z20"] = std::make_pair<float, float>(0.000000, 0.000000);
163 m_diff[
"TrackerRecMaterialPixelEndcapDisk2Bw_Inner"] = std::make_pair<float, float>(0.000000, 0.000000);
164 m_diff[
"TrackerRecMaterialTOBLayer0_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
165 m_diff[
"TrackerRecMaterialPixelBarrelLayer0"] = std::make_pair<float, float>(0.000000, 0.000000);
166 m_diff[
"TrackerRecMaterialPixelBarrelLayer3"] = std::make_pair<float, float>(0.000000, 0.000000);
167 m_diff[
"TrackerRecMaterialTIBLayer3_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
168 m_diff[
"TrackerRecMaterialTOBLayer3_Z80"] = std::make_pair<float, float>(118.048766, 116.983451);
169 m_diff[
"TrackerRecMaterialTOBLayer4_Z80"] = std::make_pair<float, float>(210.657923, 218.401623);
170 m_diff[
"TrackerRecMaterialTECDisk5_R33"] = std::make_pair<float, float>(69.556218, 54.695749);
171 m_diff[
"TrackerRecMaterialTOBLayer0_Z20"] = std::make_pair<float, float>(0.000000, 0.000000);
172 m_diff[
"TrackerRecMaterialTIBLayer2_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
173 m_diff[
"TrackerRecMaterialTECDisk2_R20"] = std::make_pair<float, float>(43.042551, 39.124220);
174 m_diff[
"TrackerRecMaterialPixelEndcapDisk1Bw_Inner"] = std::make_pair<float, float>(0.000000, 0.000000);
175 m_diff[
"TrackerRecMaterialTIDDisk1_R30"] = std::make_pair<float, float>(0.000000, 0.000000);
176 m_diff[
"TrackerRecMaterialTECDisk0_R50"] = std::make_pair<float, float>(0.000000, 0.000000);
177 m_diff[
"TrackerRecMaterialTOBLayer5_Z25"] = std::make_pair<float, float>(308.073141, 389.306637);
178 m_diff[
"TrackerRecMaterialPixelEndcapDisk2Bw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
179 m_diff[
"TrackerRecMaterialTIBLayer3_Z50"] = std::make_pair<float, float>(0.000000, 0.000000);
180 m_diff[
"TrackerRecMaterialTECDisk3"] = std::make_pair<float, float>(40.109901, 34.382246);
181 m_diff[
"TrackerRecMaterialPixelBarrelLayer1"] = std::make_pair<float, float>(0.000000, 0.000000);
182 m_diff[
"TrackerRecMaterialPixelBarrelLayer2_External"] = std::make_pair<float, float>(0.000000, 0.000000);
183 m_diff[
"TrackerRecMaterialPixelEndcapDisk2Fw_Inner"] = std::make_pair<float, float>(0.000000, 0.000000);
184 m_diff[
"TrackerRecMaterialTECDisk7_R40"] = std::make_pair<float, float>(219.144902, 162.590326);
185 m_diff[
"TrackerRecMaterialPixelEndcapDisk3Bw_Inner"] = std::make_pair<float, float>(594.908414, 558.979032);
186 m_diff[
"TrackerRecMaterialPixelEndcapDisk2Fw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
187 m_diff[
"TrackerRecMaterialPixelEndcapDisk3Fw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
188 m_diff[
"TrackerRecMaterialTECDisk6"] = std::make_pair<float, float>(85.692825, 67.990698);
189 m_diff[
"TrackerRecMaterialTOBLayer3_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
190 m_diff[
"TrackerRecMaterialPixelBarrelLayer2"] = std::make_pair<float, float>(0.000000, 0.000000);
191 m_diff[
"TrackerRecMaterialPixelBarrelLayer3_External"] = std::make_pair<float, float>(0.000000, 0.000000);
192 m_diff[
"TrackerRecMaterialPixelEndcapDisk3Fw_Inner"] = std::make_pair<float, float>(607.142137, 570.407286);
193 m_diff[
"TrackerRecMaterialTOBLayer2_Z25"] = std::make_pair<float, float>(0.000000, 0.000000);
194 m_diff[
"TrackerRecMaterialPixelEndcapDisk3Bw_Outer"] = std::make_pair<float, float>(0.000000, 0.000000);
195 m_diff[
"TrackerRecMaterialPixelBarrelLayer0_External"] = std::make_pair<float, float>(0.000000, 0.000000);
196 m_diff[
"TrackerRecMaterialTECDisk0_R90"] = std::make_pair<float, float>(59.694180, 74.636115);
197 m_diff[
"TrackerRecMaterialTOBLayer1_Z0"] = std::make_pair<float, float>(0.000000, 0.000000);
198 m_diff[
"TrackerRecMaterialTIDDisk1_R0"] = std::make_pair<float, float>(0.000000, 0.000000);
199 m_diff[
"TrackerRecMaterialPixelBarrelLayer1_External"] = std::make_pair<float, float>(0.000000, 0.000000);
200 m_diff[
"TrackerRecMaterialTOBLayer4_Z25"] = std::make_pair<float, float>(0.000000, 0.000000);
201 m_diff[
"TrackerRecMaterialTOBLayer2_Z80"] = std::make_pair<float, float>(2.291492, 2.290657);
202 m_diff[
"TrackerRecMaterialPixelEndcapDisk1Fw_Inner"] = std::make_pair<float, float>(0.000000, 0.000000);
203 m_diff[
"TrackerRecMaterialTECDisk0_R40"] = std::make_pair<float, float>(0.000000, 0.000000);
204 m_diff[
"TrackerRecMaterialTIDDisk2_R30"] = std::make_pair<float, float>(0.000000, 0.000000);
205 m_values[
"TrackerRecMaterialTIBLayer0_Z20"] = std::make_pair<float, float>(0.076264, 0.000162);
206 m_values[
"TrackerRecMaterialTECDisk0_R60"] = std::make_pair<float, float>(0.199482, 0.000368);
207 m_values[
"TrackerRecMaterialTOBLayer1_Z80"] = std::make_pair<float, float>(0.075550, 0.000145);
208 m_values[
"TrackerRecMaterialTOBLayer4_Z0"] = std::make_pair<float, float>(0.014804, 0.000033);
209 m_values[
"TrackerRecMaterialTOBLayer2_Z0"] = std::make_pair<float, float>(0.014947, 0.000033);
210 m_values[
"TrackerRecMaterialTOBLayer0_Z70"] = std::make_pair<float, float>(0.104496, 0.000208);
211 m_values[
"TrackerRecMaterialTECDisk0_R20"] = std::make_pair<float, float>(0.177496, 0.000419);
212 m_values[
"TrackerRecMaterialTOBLayer5_Z80"] = std::make_pair<float, float>(0.095700, 0.000224);
213 m_values[
"TrackerRecMaterialPixelEndcapDisk1Fw_Outer"] = std::make_pair<float, float>(0.063054, 0.000139);
214 m_values[
"TrackerRecMaterialTECDisk1_R20"] = std::make_pair<float, float>(0.086704, 0.000189);
215 m_values[
"TrackerRecMaterialTOBLayer5_Z0"] = std::make_pair<float, float>(0.060576, 0.000155);
216 m_values[
"TrackerRecMaterialTECDisk8"] = std::make_pair<float, float>(0.329777, 0.000532);
217 m_values[
"TrackerRecMaterialTIDDisk3_R24"] = std::make_pair<float, float>(0.154447, 0.000366);
218 m_values[
"TrackerRecMaterialTECDisk4_R33"] = std::make_pair<float, float>(0.072594, 0.000158);
219 m_values[
"TrackerRecMaterialTIBLayer1_Z0"] = std::make_pair<float, float>(0.049604, 0.000102);
220 m_values[
"TrackerRecMaterialPixelEndcapDisk1Bw_Outer"] = std::make_pair<float, float>(0.065873, 0.000145);
221 m_values[
"TrackerRecMaterialTIDDisk2_R25"] = std::make_pair<float, float>(0.067206, 0.000166);
222 m_values[
"TrackerRecMaterialTIBLayer0_Z0"] = std::make_pair<float, float>(0.056395, 0.000125);
223 m_values[
"TrackerRecMaterialTOBLayer3_Z25"] = std::make_pair<float, float>(0.035290, 0.000071);
224 m_values[
"TrackerRecMaterialTIBLayer1_Z30"] = std::make_pair<float, float>(0.068299, 0.000137);
225 m_values[
"TrackerRecMaterialTIDDisk2_R40"] = std::make_pair<float, float>(0.143121, 0.000310);
226 m_values[
"TrackerRecMaterialTIBLayer2_Z40"] = std::make_pair<float, float>(0.077840, 0.000155);
227 m_values[
"TrackerRecMaterialTOBLayer1_Z20"] = std::make_pair<float, float>(0.051913, 0.000103);
228 m_values[
"TrackerRecMaterialPixelEndcapDisk2Bw_Inner"] = std::make_pair<float, float>(0.039093, 0.000090);
229 m_values[
"TrackerRecMaterialTOBLayer0_Z0"] = std::make_pair<float, float>(0.029002, 0.000069);
230 m_values[
"TrackerRecMaterialPixelBarrelLayer0"] = std::make_pair<float, float>(0.018043, 0.000038);
231 m_values[
"TrackerRecMaterialPixelBarrelLayer3"] = std::make_pair<float, float>(0.020661, 0.000042);
232 m_values[
"TrackerRecMaterialTIBLayer3_Z0"] = std::make_pair<float, float>(0.048101, 0.000110);
233 m_values[
"TrackerRecMaterialTOBLayer3_Z80"] = std::make_pair<float, float>(0.093979, 0.000181);
234 m_values[
"TrackerRecMaterialTOBLayer4_Z80"] = std::make_pair<float, float>(0.101240, 0.000203);
235 m_values[
"TrackerRecMaterialTECDisk5_R33"] = std::make_pair<float, float>(0.092564, 0.000201);
236 m_values[
"TrackerRecMaterialTOBLayer0_Z20"] = std::make_pair<float, float>(0.063558, 0.000138);
237 m_values[
"TrackerRecMaterialTIBLayer2_Z0"] = std::make_pair<float, float>(0.036854, 0.000078);
238 m_values[
"TrackerRecMaterialTECDisk2_R20"] = std::make_pair<float, float>(0.107900, 0.000237);
239 m_values[
"TrackerRecMaterialPixelEndcapDisk1Bw_Inner"] = std::make_pair<float, float>(0.039143, 0.000086);
240 m_values[
"TrackerRecMaterialTIDDisk1_R30"] = std::make_pair<float, float>(0.167774, 0.000321);
241 m_values[
"TrackerRecMaterialTECDisk0_R50"] = std::make_pair<float, float>(0.108277, 0.000255);
242 m_values[
"TrackerRecMaterialTOBLayer5_Z25"] = std::make_pair<float, float>(0.086612, 0.000209);
243 m_values[
"TrackerRecMaterialPixelEndcapDisk2Bw_Outer"] = std::make_pair<float, float>(0.070143, 0.000165);
244 m_values[
"TrackerRecMaterialTIBLayer3_Z50"] = std::make_pair<float, float>(0.063872, 0.000138);
245 m_values[
"TrackerRecMaterialTECDisk3"] = std::make_pair<float, float>(0.064126, 0.000139);
246 m_values[
"TrackerRecMaterialPixelBarrelLayer1"] = std::make_pair<float, float>(0.016379, 0.000028);
247 m_values[
"TrackerRecMaterialPixelBarrelLayer2_External"] = std::make_pair<float, float>(0.026687, 0.000046);
248 m_values[
"TrackerRecMaterialPixelEndcapDisk2Fw_Inner"] = std::make_pair<float, float>(0.039737, 0.000091);
249 m_values[
"TrackerRecMaterialTECDisk7_R40"] = std::make_pair<float, float>(0.126225, 0.000235);
250 m_values[
"TrackerRecMaterialPixelEndcapDisk3Bw_Inner"] = std::make_pair<float, float>(0.674984, 0.001356);
251 m_values[
"TrackerRecMaterialPixelEndcapDisk2Fw_Outer"] = std::make_pair<float, float>(0.065935, 0.000151);
252 m_values[
"TrackerRecMaterialPixelEndcapDisk3Fw_Outer"] = std::make_pair<float, float>(0.100139, 0.000205);
253 m_values[
"TrackerRecMaterialTECDisk6"] = std::make_pair<float, float>(0.078988, 0.000163);
254 m_values[
"TrackerRecMaterialTOBLayer3_Z0"] = std::make_pair<float, float>(0.015009, 0.000033);
255 m_values[
"TrackerRecMaterialPixelBarrelLayer2"] = std::make_pair<float, float>(0.017219, 0.000030);
256 m_values[
"TrackerRecMaterialPixelBarrelLayer3_External"] = std::make_pair<float, float>(0.036152, 0.000066);
257 m_values[
"TrackerRecMaterialPixelEndcapDisk3Fw_Inner"] = std::make_pair<float, float>(0.673782, 0.001357);
258 m_values[
"TrackerRecMaterialTOBLayer2_Z25"] = std::make_pair<float, float>(0.034917, 0.000069);
259 m_values[
"TrackerRecMaterialPixelEndcapDisk3Bw_Outer"] = std::make_pair<float, float>(0.100143, 0.000204);
260 m_values[
"TrackerRecMaterialPixelBarrelLayer0_External"] = std::make_pair<float, float>(0.031128, 0.000062);
261 m_values[
"TrackerRecMaterialTECDisk0_R90"] = std::make_pair<float, float>(0.309342, 0.000539);
262 m_values[
"TrackerRecMaterialTOBLayer1_Z0"] = std::make_pair<float, float>(0.023489, 0.000050);
263 m_values[
"TrackerRecMaterialTIDDisk1_R0"] = std::make_pair<float, float>(0.175180, 0.000349);
264 m_values[
"TrackerRecMaterialPixelBarrelLayer1_External"] = std::make_pair<float, float>(0.022508, 0.000036);
265 m_values[
"TrackerRecMaterialTOBLayer4_Z25"] = std::make_pair<float, float>(0.036056, 0.000073);
266 m_values[
"TrackerRecMaterialTOBLayer2_Z80"] = std::make_pair<float, float>(0.062072, 0.000117);
267 m_values[
"TrackerRecMaterialPixelEndcapDisk1Fw_Inner"] = std::make_pair<float, float>(0.039127, 0.000086);
268 m_values[
"TrackerRecMaterialTECDisk0_R40"] = std::make_pair<float, float>(0.084231, 0.000209);
269 m_values[
"TrackerRecMaterialTIDDisk2_R30"] = std::make_pair<float, float>(0.065109, 0.000143);
276 unsigned int steps = 100;
278 unsigned int index = ((TObjArray*) gROOT->GetListOfColors())->GetLast() + 1;
281 static_cast<TColor *
>(gROOT->GetListOfColors()->At(kBlue + 1))->GetRGB(r1, g1, b1);
282 static_cast<TColor *
>(gROOT->GetListOfColors()->At(kAzure + 10))->GetRGB(r2, g2, b2);
284 float delta_g = (g2 -
g1) / (steps - 1);
285 float delta_b = (b2 - b1) / (steps - 1);
289 for (
unsigned int i = 0;
i <
steps; ++
i, ++
ii) {
290 new TColor(static_cast<Int_t>(index + ii), r1 + delta_r *
i, g1 + delta_g * i, b1 + delta_b * i);
296 static_cast<TColor *
>(gROOT->GetListOfColors()->At(kOrange))->GetRGB(r1, g1, b1);
297 static_cast<TColor *
>(gROOT->GetListOfColors()->At(kOrange + 7))->GetRGB(r2, g2, b2);
298 delta_r = (r2 -
r1) / (steps - 1);
299 delta_g = (g2 -
g1) / (steps - 1);
300 delta_b = (b2 - b1) / (steps - 1);
301 for (
unsigned int i = 0;
i <
steps; ++
i, ++
ii) {
302 new TColor(static_cast<Int_t>(index + ii), r1 + delta_r *
i, g1 + delta_g * i, b1 + delta_b * i);
319 m_color.push_back(kAzure + 1) ;
320 m_color.push_back(kAzure + 2) ;
325 m_color.push_back(kSpring + 9);
326 m_color.push_back(kSpring + 4);
343 m_color.push_back(kMagenta - 2);
344 m_color.push_back(kMagenta - 3);
345 m_color.push_back(kMagenta - 4);
346 m_color.push_back(kMagenta - 5);
347 m_color.push_back(kMagenta - 6);
348 m_color.push_back(kMagenta - 7);
350 m_color.push_back(kMagenta - 9);
353 m_color.push_back(kOrange + 9);
354 m_color.push_back(kOrange + 7);
355 m_color.push_back(kOrange + 5);
356 m_color.push_back(kOrange - 2);
357 m_color.push_back(kOrange - 3);
358 m_color.push_back(kOrange - 6);
359 m_color.push_back(kOrange + 4);
360 m_color.push_back(kOrange - 7);
362 m_color.push_back(kOrange + 10);
364 m_color.push_back(kViolet + 10);
365 m_color.push_back(kViolet + 6);
366 m_color.push_back(kViolet + 3);
367 m_color.push_back(kViolet - 7);
368 m_color.push_back(kViolet - 1);
369 m_color.push_back(kViolet + 9);
370 m_color.push_back(kViolet - 5);
371 m_color.push_back(kViolet - 3);
400 std::vector<std::pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > >
402 std::vector<std::pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > >
lines;
405 std::pair<float, float> deltaZ(293, 298);
406 std::pair<float, float>
deltaR(115, 118);
407 float text_size = 0.033;
409 for (
float eta = 0.;
eta <= 3.8;
eta += 0.2) {
413 std::make_pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > (
414 std::make_shared<TLine>(
415 deltaZ.first, deltaZ.first *
tan(theta), deltaZ.second, deltaZ.second *
tan(theta)),
416 std::make_shared<TText>(
418 lines.back().second->SetTextFont(42);
419 lines.back().second->SetTextSize(text_size);
420 lines.back().second->SetTextAlign(33);
422 std::make_pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > (
423 std::make_shared<TLine>(
424 -deltaZ.first, deltaZ.first *
tan(theta), -deltaZ.second, deltaZ.second *
tan(theta)),
425 std::make_shared<TText>(
427 lines.back().second->SetTextFont(42);
428 lines.back().second->SetTextSize(text_size);
429 lines.back().second->SetTextAlign(13);
432 std::make_pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > (
433 std::make_shared<TLine>(
434 deltaR.first /
tan(theta), deltaR.first, deltaR.second /
tan(theta), deltaR.second),
435 std::make_shared<TText>(
437 lines.back().second->SetTextFont(42);
438 lines.back().second->SetTextSize(text_size);
439 lines.back().second->SetTextAlign(23);
442 std::make_pair<std::shared_ptr<TLine>, std::shared_ptr<TText> > (
443 std::make_shared<TLine>(
444 - deltaR.first /
tan(theta), deltaR.first, - deltaR.second /
tan(theta), deltaR.second),
445 std::make_shared<TText>(
447 lines.back().second->SetTextFont(42);
448 lines.back().second->SetTextSize(text_size);
449 lines.back().second->SetTextAlign(23);
458 const double scale = 10.;
459 std::vector<TText *> nukem_text;
460 static int markerStyles[10] = {kFullCircle, kFullSquare, kFullTriangleUp, kFullTriangleDown, kOpenCircle, kOpenSquare, kOpenTriangleUp, kOpenDiamond, kOpenCross, kFullStar};
469 std::unique_ptr<TCanvas>
canvas(
470 new TCanvas(
"Grouping_rz",
"Grouping - RZ view",
471 (
int) (600 * scale * 1.25), (
int) (120 * scale * 1.50)));
472 canvas->GetFrame()->SetFillColor(kWhite);
473 gStyle->SetOptStat(0);
475 unsigned int color_index = 1;
477 std::unique_ptr<TLegend>
leg(
new TLegend(0.1,0.1,0.23,0.34));
478 leg->SetHeader(
"Tracker Material Grouping");
479 leg->SetTextFont(42);
480 leg->SetTextSize(0.008);
482 std::unique_ptr<TProfile2D> radlen(
483 new TProfile2D(
"OverallRadLen",
"OverallRadLen",
484 600., -300., 300, 120., 0., 120.));
485 std::unique_ptr<TProfile2D> eneloss(
486 new TProfile2D(
"OverallEnergyLoss",
"OverallEnergyLoss",
487 600., -300., 300, 120., 0., 120.));
488 std::unique_ptr<TProfile2D> radlen_diff(
489 new TProfile2D(
"OverallDifferencesRadLen",
"OverallDifferencesRadLen",
490 600., -300., 300, 120., 0., 120.));
491 std::unique_ptr<TProfile2D> eneloss_diff(
492 new TProfile2D(
"OverallDifferencesEnergyLoss",
"OverallDifferencesEnergyLoss",
493 600., -300., 300, 120., 0., 120.));
497 new TH2F(
g->name().c_str(),
g->name().c_str(),
498 6000., -300., 300, 1200., 0., 120.));
499 TH2F ¤t = *
m_plots.back();
500 current.SetMarkerColor(
m_color[color_index]);
501 current.SetMarkerStyle(markerStyles[color_index%10]);
502 current.SetMarkerSize(0.8);
503 current.SetLineWidth(1);
504 for (
auto element :
g->elements()) {
505 current.Fill(element.z(), element.perp());
506 radlen->Fill(element.z(), element.perp(),
m_values[
g->name()].first);
507 eneloss->Fill(element.z(), element.perp(),
m_values[
g->name()].second);
508 radlen_diff->Fill(element.z(), element.perp(),
m_diff[
g->name()].first);
509 eneloss_diff->Fill(element.z(), element.perp(),
m_diff[
g->name()].second);
512 if (color_index == 1)
515 current.Draw(
"SAME");
517 leg->AddEntry(¤t ,
g->name().c_str(),
"lp")->SetTextColor(
m_color[color_index]);
522 color_index = color_index%
m_color.size();
525 canvas->SaveAs(
"Grouping.png");
530 radlen->SetMinimum(0);
531 radlen->SetMaximum(0.25);
532 radlen->Draw(
"COLZ");
533 for (
auto line : lines) {
534 line.first->SetLineWidth(5);
538 canvas->SaveAs(
"RadLenValues.png");
541 eneloss->SetMinimum(0.00001);
542 eneloss->SetMaximum(0.0005);
543 eneloss->Draw(
"COLZ");
544 for (
auto line : lines) {
545 line.first->SetLineWidth(5);
549 canvas->SaveAs(
"EnergyLossValues.png");
553 gStyle->SetNumberContours(
m_gradient.size() );
554 radlen_diff->SetMinimum(-100);
555 radlen_diff->SetMaximum(100);
556 radlen_diff->Draw(
"COLZ");
557 for (
auto line : lines) {
558 line.first->SetLineWidth(5);
562 canvas->SaveAs(
"RadLenChanges.png");
565 eneloss_diff->SetMinimum(-100);
566 eneloss_diff->SetMaximum(100);
567 eneloss_diff->Draw(
"COLZ");
568 for (
auto line : lines) {
569 line.first->SetLineWidth(5);
573 canvas->SaveAs(
"EnergyLossChanges.png");
575 for (
auto g : nukem_text)
597 for (
unsigned int h = 2;
h < history.size(); ++
h)
598 std::cout <<
'/' << history[
h].logicalPart().name().name() <<
'[' << history[
h].copyno() <<
']';
603 <<
", " << position.y()
604 <<
", " << position.z() <<
") " 605 <<
"[rho] " << position.Rho() << std::endl;
T getUntrackedParameter(std::string const &, T const &) const
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
#define DEFINE_FWK_MODULE(type)
void analyze(const edm::Event &, const edm::EventSetup &) override
Geom::Theta< T > theta() const
def setup(process, global_tag, zero_tesla=False)
const DDGeoHistory & geoHistory() const
The list of ancestors up to the root-node of the current node.
std::vector< TH2F * > m_plots
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
std::vector< unsigned int > m_color
std::vector< std::pair< std::shared_ptr< TLine >, std::shared_ptr< TText > > > overlayEtaReferences()
void produceAndSaveSummaryPlot(const edm::EventSetup &)
static std::ostream & operator<<(std::ostream &out, const math::XYZVector &v)
bool next()
set current node to the next node in the filtered tree
void fillMaterialDifferences()
double delta_r(const Fourvec &a, const Fourvec &b)
Find the distance between two four-vectors in the two-dimensional space .
Tan< T >::type tan(const T &t)
format
Some error handling for the usage.
const std::vector< std::string > & strings() const
a reference to the std::string-valued values stored in the given instance of DDValue ...
std::map< std::string, std::pair< float, float > > m_diff
std::vector< DDExpandedNode > DDGeoHistory
Geometrical 'path' of the current node up to the root-node.
double deltaR(double eta1, double eta2, double phi1, double phi2)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
std::set< std::string > m_group_names
std::vector< MaterialAccountingGroup * > m_groups
static int position[264][3]
ListGroups(const edm::ParameterSet &)
std::vector< int > m_gradient
void specificsV(std::vector< const DDsvalues_type * > &result) const
User specific data attached to the current node.
static bool dddGetStringRaw(const DDFilteredView &view, const std::string &name, std::string &value)
const DDTranslation & translation() const
The absolute translation of the current node.
std::map< std::string, std::pair< float, float > > m_values
static std::string dddGetString(const std::string &s, DDFilteredView const &view)