CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TEcnaParHistos.cc
Go to the documentation of this file.
1 //---------Author's Name: B.Fabbro DSM/IRFU/SPP CEA-Saclay
2 //----------Copyright: Those valid for CEA sofware
3 //----------Modified:17/03/2010
6 
7 ClassImp(TEcnaParHistos)
8 //______________________________________________________________________________
9 //
10 // TEcnaParHistos.
11 //
12 // Values of different parameters for plots in the framework of TEcnaHistos
13 // (see description of this class)
14 //
15 // Examples of parameters: ymin and ymax values for histos, title sizes,
16 // margins for plots, etc...
17 //
18 //
19 //-------------------------------------------------------------------------
20 //
21 // For more details on other classes of the CNA package:
22 //
23 // http://www.cern.ch/cms-fabbro/cna
24 //
25 //-------------------------------------------------------------------------
26 //
27 
28 //---------------------- TEcnaParHistos.cc -------------------------------
29 //
30 // Creation (first version): 19 May 2005
31 //
32 // For questions or comments, please send e-mail to Bernard Fabbro:
33 //
34 // fabbro@hep.saclay.cea.fr
35 //
36 //------------------------------------------------------------------------
37 
39 {
40  //destructor
41 
42  //if (fEcalNumbering != 0){delete fEcalNumbering; fCdelete++;}
43  //if (fEcal != 0){delete fEcal; fCdelete++;}
44 
45  //cout << "[Info Management] CLASS: TEcnaParHistos. DESTROY OBJECT: this = " << this << endl;
46 }
47 
48 //===================================================================
49 //
50 // Constructors
51 //
52 //===================================================================
54 {
55 // Constructor without argument
56 
57  //cout << "[Info Management] CLASS: TEcnaParHistos. CREATE OBJECT: this = " << this << endl;
58 
59  Init();
60 }
61 
62 TEcnaParHistos::TEcnaParHistos(const TString SubDet,
63  const TEcnaParEcal* pEcal,
64  const TEcnaNumbering* pEcalNumbering)
65 {
66 // Constructor with argument
67 
68  //cout << "[Info Management] CLASS: TEcnaParHistos. CREATE OBJECT: this = " << this << endl;
69 
70  Init();
71  SetEcalSubDetector(SubDet.Data(), pEcal, pEcalNumbering);
72 }
73 
75 {
76  fgMaxCar = (Int_t)512; // max number of characters in TStrings
77 
78  fTTBELL = '\007';
79 
80  //................ Init CNA Command and error numbering
81  fCnaCommand = 0;
82  fCnaError = 0;
83 
84  //........................................................................................
85 
86  fMaxColorNumber = (Int_t)4; // number_of_colors - 1 for histos in option SAME
87 
88  fMarginAutoMinMax = (Double_t)0.05; // factor for automatic margin plots:
89  // plot min = min - (max-min)*fMarginAutoMinMax
90  // plot max = max + (max-min)*fMarginAutoMinMax
91 
92  fNbOfRunsDisplayed = (Int_t)20; // Nb of run numbers displayed on the top of the plot
93  // in stability/evolution plots, option ONLYONE
94 
95  fMaxNbOfRunsInLists = (Int_t)5000; // Maximum number of runs in the ListOfRun files
96  // used for the stability/evolution plots.
97 
98 }// end of Init()
99 
100 void TEcnaParHistos::SetEcalSubDetector(const TString SubDet,
101  const TEcnaParEcal* pEcal,
102  const TEcnaNumbering* pEcalNumbering)
103 {
104  // Set Subdetector (EB or EE)
105 
106  fEcal = 0;
107  if( pEcal == 0 )
108  {fEcal = new TEcnaParEcal(SubDet.Data()); /*fCnew++*/ ;}
109  else
110  {fEcal = (TEcnaParEcal*)pEcal;}
111 
112  Int_t MaxCar = fgMaxCar;
113  fFlagSubDet.Resize(MaxCar);
115 
116  fEcalNumbering = 0;
117  if( pEcalNumbering == 0 )
118  {fEcalNumbering = new TEcnaNumbering(fFlagSubDet.Data(), fEcal); /*fCnew++*/ ;}
119  else
120  {fEcalNumbering = (TEcnaNumbering*)pEcalNumbering;}
121 }
122 
124 
125 //===========================================================================
126 //
127 // SetCanvasWidth, SetCanvasHeight,
128 // CanvasFormatW, CanvasFormatH,
129 //
130 //===========================================================================
131 // * 1 H1NbOfEvtsGlobal D_NOE_ChNb NOE = Number Of Events
132 // * 2 H1NbOfEvtsProj D_NOE_ChDs
133 // * 3 H1EvEvGlobal D_Ped_ChNb Ped = Pedestal
134 // * 4 H1EvEvProj D_Ped_ChDs
135 // * 5 H1EvSigGlobal D_TNo_ChNb TNo = Total Noise
136 // * 6 H1EvSigProj D_TNo_ChDs
137 // * 7 H1SigEvGlobal D_LFN_ChNb LFN = Low Frequency noise
138 // * 8 H1SigEvProj D_LFN_ChDs
139 // * 9 H1SigSigGlobal D_HFN_ChNb HFN = High Frequency noise
140 // * 10 H1SigSigProj D_HFN_ChDs
141 // * 11 H1EvCorssGlobal D_MCs_ChNb MCs = Mean of the correlations between samples
142 // * 12 H1EvCorssProj D_MCs_ChDs
143 // * 13 H1SigCorssGlobal D_SCs_ChNb Scs = Sigma of the correlations between samples
144 // * 14 H1SigCorssProj D_SCs_ChDs
145 // * 15 Ev D_MSp_Samp MSp = Mean of the samples
146 // * 16 Sigma D_SSp_Samp SSp = Sigma of the samples
147 // * 17 SampTime D_Adc_EvNb Adc = ADC count as a function of Event number
148 // * 18 AdcProj D_Adc_EvDs EvDs = Event distribution
149 // * 19 EvolEvEv H_Ped_Date Date = date in format YYMMJJ hhmmss
150 // * 20 EvolEvEvProj H_Ped_RuDs RuDs = Run distribution
151 // * 21 EvolEvSig H_TNo_Date
152 // * 22 EvolEvSigProj H_TNo_RuDs
153 // * 23 EvolSigEv H_LFN_Date
154 // * 24 EvolSigEvProj H_LFN_RuDs
155 // * 25 EvolSigSig H_HFN_Date
156 // * 26 EvolSigSigProj H_HFN_RuDs
157 // * 27 EvolEvCorss H_MCs_Date
158 // * 28 EvolEvCorssProj H_MCs_RuDs
159 // * 29 EvolSigCorss H_SCs_Date
160 // * 30 EvolSigCorssProj H_SCs_RuDs
161 
162 UInt_t TEcnaParHistos::SetCanvasWidth(const TString HistoCode, const TString opt_plot)
163 {
164 //........................................ Taille/format canvas
165 
166  UInt_t canv_w = CanvasFormatW("petit");
167 
168  if( HistoCode == "D_Adc_EvNb" || HistoCode == "D_NOE_ChNb" ||
169  HistoCode == "D_Ped_ChNb" || HistoCode == "D_LFN_ChNb" ||
170  HistoCode == "D_TNo_ChNb" || HistoCode == "D_HFN_ChNb" ||
171  HistoCode == "D_MCs_ChNb" || HistoCode == "D_SCs_ChNb" ||
172  HistoCode == "H_Ped_Date" || HistoCode == "H_TNo_Date" ||
173  HistoCode == "H_MCs_Date" || HistoCode == "H_LFN_Date" ||
174  HistoCode == "H_HFN_Date" || HistoCode == "H_SCs_Date" ||
175  (HistoCode == "D_MSp_Samp" && opt_plot != "ONLYONE") ||
176  (HistoCode == "D_SSp_Samp" && opt_plot != "ONLYONE") )
177  {
178  canv_w = CanvasFormatH("moyen"); // format 29.7*21 ( = 21*29.7 en paysage)
179  }
180 
181  if( (HistoCode == "D_Adc_EvDs" || HistoCode == "D_NOE_ChDs" ||
182  HistoCode == "D_Ped_ChDs" || HistoCode == "D_LFN_ChDs" ||
183  HistoCode == "D_TNo_ChDs" || HistoCode == "D_HFN_ChDs" ||
184  HistoCode == "D_MCs_ChDs" || HistoCode == "D_SCs_ChDs" ||
185  HistoCode == "H_Ped_RuDs" || HistoCode == "H_TNo_RuDs" ||
186  HistoCode == "H_MCs_RuDs" || HistoCode == "H_LFN_RuDs" ||
187  HistoCode == "H_HFN_RuDs" || HistoCode == "H_SCs_RuDs") && opt_plot != "ONLYONE" )
188  {
189  canv_w = CanvasFormatH("moyen"); // format 29.7*21 ( = 21*29.7 en paysage)
190  }
191 
192  return canv_w;
193 }
194 
195 UInt_t TEcnaParHistos::SetCanvasHeight(const TString HistoCode, const TString opt_plot)
196 {
197 //........................................ Taille/format canvas
198 
199  UInt_t canv_h = CanvasFormatH("petit");
200 
201  if( HistoCode == "D_Adc_EvNb" || HistoCode == "D_NOE_ChNb" ||
202  HistoCode == "D_Ped_ChNb" || HistoCode == "D_LFN_ChNb" ||
203  HistoCode == "D_TNo_ChNb" || HistoCode == "D_HFN_ChNb" ||
204  HistoCode == "D_MCs_ChNb" || HistoCode == "D_SCs_ChNb" ||
205  HistoCode == "H_Ped_Date" || HistoCode == "H_TNo_Date" ||
206  HistoCode == "H_MCs_Date" || HistoCode == "H_LFN_Date" ||
207  HistoCode == "H_HFN_Date" || HistoCode == "H_SCs_Date" ||
208  (HistoCode == "D_MSp_Samp" && opt_plot != "ONLYONE") ||
209  (HistoCode == "D_SSp_Samp" && opt_plot != "ONLYONE") )
210  {
211  canv_h = CanvasFormatW("moyen"); // format 29.7*21 ( = 21*29.7 en paysage)
212  }
213 
214  if( (HistoCode == "D_Adc_EvDs" || HistoCode == "D_NOE_ChDs" ||
215  HistoCode == "D_Ped_ChDs" || HistoCode == "D_LFN_ChDs" ||
216  HistoCode == "D_TNo_ChDs" || HistoCode == "D_HFN_ChDs" ||
217  HistoCode == "D_MCs_ChDs" || HistoCode == "D_SCs_ChDs" ||
218  HistoCode == "H_Ped_RuDs" || HistoCode == "H_TNo_RuDs" ||
219  HistoCode == "H_MCs_RuDs" || HistoCode == "H_LFN_RuDs" ||
220  HistoCode == "H_HFN_RuDs" || HistoCode == "H_SCs_RuDs") && opt_plot != "ONLYONE" )
221  {
222  canv_h = CanvasFormatW("moyen"); // format 29.7*21 ( = 21*29.7 en paysage)
223  }
224 
225  return canv_h;
226 }
227 
228 UInt_t TEcnaParHistos::CanvasFormatW(const TString chformat)
229 {
230 //Set Canvas width
231 
232  UInt_t canv_w = 375; // default = "petit"
233 
234  if ( chformat == "petit" ){canv_w = 375;} // 21x29.7 portrait
235  if ( chformat == "moyen" ){canv_w = 450;} // 21x29.7 portrait
236  if ( chformat == "grand" ){canv_w = 572;} // 21x29.7 portrait
237 
238  if ( chformat == "etaphiSM" ){canv_w = 760;} // landscape etroit en hauteur pour plot SM
239  if ( chformat == "phietaEB" ){canv_w = 636;} // landscape pour plot EB (32 SMs)
240 
241  if ( chformat == "IXIYDee" ){canv_w = 320;} // portrait etroit en largeur pour plot Dee
242  if ( chformat == "IYIXEE" ){canv_w = 636;} // landscape pour plot EE (4 dees)
243  return canv_w;
244 }
245 //......................................................................
246 UInt_t TEcnaParHistos::CanvasFormatH(const TString chformat)
247 {
248 //Set Canvas height
249 
250  UInt_t canv_h = 530; // default = "petit"
251 
252  if ( chformat == "petit" ){canv_h = 530;} // 21x29.7 portrait
253  if ( chformat == "moyen" ){canv_h = 636;} // 21x29.7 portrait
254  if ( chformat == "grand" ){canv_h = 810;} // 21x29.7 portrait
255 
256  if ( chformat == "etaphiSM" ){canv_h = 306;} // landscape etroit en hauteur pour plot SM
257  if ( chformat == "phietaEB" ){canv_h = 450;} // landscape pour plot EB (32 SMs)
258 
259  if ( chformat == "IXIYDee" ){canv_h = 720;} // portrait etroit en largeur pour plot Dee
260  if ( chformat == "IYIXEE" ){canv_h = 450;} // landscape pour plot EE (4 dees)
261  return canv_h;
262 }
263 
264 //===========================================================================
265 //
266 // BoxLeftX, BoxRightX, BoxBottomY, BoxTopY
267 //
268 //===========================================================================
269 Double_t TEcnaParHistos::BoxLeftX(const TString chtype)
270 {
271 //Set the x left coordinate of the box
272 
273  Double_t value = 0.4;
274 
275  if ( chtype == "general_comment" ) {value = 0.015;}
276 
277  if ( chtype == "top_left_box_SM" ) {value = 0.015;}
278  if ( chtype == "top_left_box_EB" ) {value = 0.015;}
279  if ( chtype == "top_mid_box_EB" ) {value = 0.350;}
280  if ( chtype == "top_right_box_EB" ) {value = 0.630;}
281 
282  if ( chtype == "top_left_box_Dee" ) {value = 0.015;}
283  if ( chtype == "top_left_box_EE" ) {value = 0.015;}
284  if ( chtype == "top_mid_box_EE" ) {value = 0.240;}
285  if ( chtype == "top_right_box_EE" ) {value = 0.610;}
286 
287  if ( chtype == "bottom_left_box" ) {value = 0.015;}
288  if ( chtype == "bottom_left_box_evol" ) {value = 0.015;}
289  if ( chtype == "bottom_mid_box" ) {value = 0.250;}
290  if ( chtype == "bottom_right_box" ) {value = 0.455;}
291  if ( chtype == "bottom_right_box_evol") {value = 0.620;}
292  if ( chtype == "bottom_right_box_evpr") {value = 0.580;}
293 
294  if ( chtype == "several_plots_box" ) {value = 0.015;}
295  if ( chtype == "several_evol_box" ) {value = 0.015;}
296  if ( chtype == "several_evpr_box" ) {value = 0.015;}
297 
298  return value;
299 }
300 //.................................................................
301 Double_t TEcnaParHistos::BoxRightX(const TString chtype)
302 {
303 //Set the x right coordinate of the box
304 
305  Double_t value = 0.6;
306 
307  if ( chtype == "general_comment" ) {value = 0.680;}
308 
309  if ( chtype == "top_left_box_SM" ) {value = 0.125;}
310  if ( chtype == "top_left_box_EB" ) {value = 0.349;}
311  if ( chtype == "top_mid_box_EB" ) {value = 0.629;}
312  if ( chtype == "top_right_box_EB" ) {value = 0.985;}
313 
314  if ( chtype == "top_left_box_Dee" ) {value = 0.425;}
315  if ( chtype == "top_left_box_EE" ) {value = 0.260;}
316  if ( chtype == "top_mid_box_EE" ) {value = 0.609;}
317  if ( chtype == "top_right_box_EE" ) {value = 0.985;}
318 
319  if ( chtype == "bottom_left_box" ) {value = 0.445;}
320  if ( chtype == "bottom_left_box_evol" ) {value = 0.450;} // ex 370
321  if ( chtype == "bottom_mid_box" ) {value = 0.750;}
322  if ( chtype == "bottom_right_box" ) {value = 0.985;}
323  if ( chtype == "bottom_right_box_evol") {value = 0.985;}
324  if ( chtype == "bottom_right_box_evpr") {value = 0.985;}
325 
326  if ( chtype == "several_plots_box" ) {value = 0.985;}
327  if ( chtype == "several_evol_box" ) {value = 0.615;}
328  if ( chtype == "several_evpr_box" ) {value = 0.615;}
329 
330  return value;
331 }
332 //.................................................................
333 Double_t TEcnaParHistos::BoxBottomY(const TString chtype)
334 {
335 //Set the y bottom coordinate of the box
336 
337  Double_t value = 0.8;
338 
339  if ( chtype == "general_comment" ) {value = 0.960;}
340 
341  if ( chtype == "top_left_box_SM" ) {value = 0.880;}
342  if ( chtype == "top_left_box_EB" ) {value = 0.880;}
343  if ( chtype == "top_mid_box_EB" ) {value = 0.880;}
344  if ( chtype == "top_right_box_EB" ) {value = 0.880;}
345 
346  if ( chtype == "top_left_box_Dee" ) {value = 0.925;}
347  if ( chtype == "top_left_box_EE" ) {value = 0.880;}
348  if ( chtype == "top_mid_box_EE" ) {value = 0.880;}
349  if ( chtype == "top_right_box_EE" ) {value = 0.880;}
350 
351  if ( chtype == "bottom_left_box" ) {value = 0.010;}
352  if ( chtype == "bottom_left_box_evol" ) {value = 0.010;}
353  if ( chtype == "bottom_right_box" ) {value = 0.010;}
354  if ( chtype == "bottom_right_box_evol") {value = 0.010;}
355  if ( chtype == "bottom_right_box_evpr") {value = 0.010;}
356  if ( chtype == "several_plots_box" ) {value = 0.010;}
357  if ( chtype == "several_evol_box" ) {value = 0.010;}
358  if ( chtype == "several_evpr_box" ) {value = 0.010;}
359 
360  return value;
361 }
362 //.................................................................
363 Double_t TEcnaParHistos::BoxTopY(const TString chtype)
364 {
365 //Set the y top coordinate of the box
366 
367  Double_t value = 0.9;
368 
369  if ( chtype == "general_comment" ) {value = 0.999;}
370 
371  if ( chtype == "top_left_box_SM" ) {value = 0.955;}
372  if ( chtype == "top_left_box_EB" ) {value = 0.955;}
373  if ( chtype == "top_mid_box_EB" ) {value = 0.955;}
374  if ( chtype == "top_right_box_EB" ) {value = 0.955;}
375 
376  if ( chtype == "top_left_box_Dee" ) {value = 0.969;}
377  if ( chtype == "top_left_box_EE" ) {value = 0.955;}
378  if ( chtype == "top_mid_box_EE" ) {value = 0.955;}
379  if ( chtype == "top_right_box_EE" ) {value = 0.955;}
380 
381  if ( chtype == "bottom_left_box" ) {value = 0.120;}
382  if ( chtype == "bottom_left_box_evol" ) {value = 0.120;}
383  if ( chtype == "bottom_right_box" ) {value = 0.120;}
384  if ( chtype == "bottom_right_box_Dee" ) {value = 0.100;}
385 
386  if ( chtype == "bottom_right_box_evol") {value = 0.120;}
387  if ( chtype == "bottom_right_box_evpr") {value = 0.120;}
388  if ( chtype == "several_plots_box" ) {value = 0.200;}
389  if ( chtype == "several_evol_box" ) {value = 0.200;}
390  if ( chtype == "several_evpr_box" ) {value = 0.200;}
391 
392  return value;
393 }
394 
395 //===========================================================================
396 //
397 // SetColorPalette, ColorTab, ColorDefinition
398 //
399 //===========================================================================
400 
401 void TEcnaParHistos::SetColorPalette(const TString user_color_palette)
402 {
403  //Set color number for palette
404 
405  fMaxColorNumber = 4; // default: 4 ==> Black/Red/Blue/Green/Braun
406 
407  if (!(user_color_palette == "Rainbow" || user_color_palette == "rainbow") ){fMaxColorNumber = 5;}
408  if ( user_color_palette == "Rainbow" || user_color_palette == "rainbow" ){fMaxColorNumber = 6;}
409 }
410 //...........................................................................
411 Color_t TEcnaParHistos::ColorTab(const Int_t& user_color_number)
412 {
413  //Set color from user color number
414 
415  //=========> Color definition: see ROOT User's guide p.151
416 
417  TColor* my_color = new TColor();
418 
419  Color_t couleur = ColorDefinition("noir"); // default = "noir"
420 
421  if ( fMaxColorNumber != 6 )
422  {
423  //................... Standard: 6 colors (fMaxColorNumber = 5)
424  if(user_color_number == 0){couleur = ColorDefinition("noir");} // noir black 1
425  if(user_color_number == 1){couleur = ColorDefinition("rouge");} // rouge red 2
426  if(user_color_number == 2){couleur = ColorDefinition("bleu");} // bleu blue 9
427  if(user_color_number == 3){couleur = (Color_t)my_color->GetColor("#009900");} // vert green
428  if(user_color_number == 4){couleur = ColorDefinition("marron28");} // marron 28 braun 28
429  if(user_color_number == 5){couleur = (Color_t)my_color->GetColor("#9900BB");} // violet purple
430 
431  }
432  if ( fMaxColorNumber == 6 )
433  {
434  //................... Rainbow:7 colors (fMaxColorNumber = 6)
435  if(user_color_number == 0){couleur = (Color_t)my_color->GetColor("#EE0000");} // rouge
436  if(user_color_number == 1){couleur = (Color_t)my_color->GetColor("#FF6611");} // orange
437  if(user_color_number == 2){couleur = (Color_t)my_color->GetColor("#FFCC00");} // jaune
438  if(user_color_number == 3){couleur = (Color_t)my_color->GetColor("#009900");} // vert
439  if(user_color_number == 4){couleur = (Color_t)my_color->GetColor("#0044EE");} // bleu
440  if(user_color_number == 5){couleur = (Color_t)my_color->GetColor("#6633BB");} // indigo
441  if(user_color_number == 6){couleur = (Color_t)my_color->GetColor("#9900BB");} // violet
442  }
443 
444  if( user_color_number < 0 || user_color_number > fMaxColorNumber ){couleur = 0;}
445 
446  return couleur;
447 }
448 // end of ColorTab
449 
450 Color_t TEcnaParHistos::ColorDefinition(const TString chcolor)
451 {
452  //Set color from color name
453 
454  //=========> Color definition: see ROOT User's guide p.151
455 
456  Color_t couleur = 1; // default = "noir"
457 
458  if ( chcolor == "noir" ) {couleur = 1;}
459  if ( chcolor == "rouge" ) {couleur = 2;}
460  if ( chcolor == "vert_fonce" ) {couleur = 3;}
461  if ( chcolor == "bleu_fonce" ) {couleur = 4;}
462  if ( chcolor == "jaune" ) {couleur = 5;}
463  if ( chcolor == "rose" ) {couleur = 6;}
464  if ( chcolor == "bleu_clair" ) {couleur = 7;}
465  if ( chcolor == "vert" ) {couleur = 8;}
466  if ( chcolor == "bleu" ) {couleur = 9;}
467  if ( chcolor == "blanc" ) {couleur = 10;}
468 
469  if ( chcolor == "marron23" ) {couleur = 23;}
470  if ( chcolor == "marron24" ) {couleur = 24;}
471  if ( chcolor == "marron25" ) {couleur = 24;}
472  if ( chcolor == "marron27" ) {couleur = 27;}
473  if ( chcolor == "marron28" ) {couleur = 28;}
474 
475  if ( chcolor == "bleu33" ) {couleur = 33;}
476  if ( chcolor == "bleu36" ) {couleur = 36;}
477  if ( chcolor == "bleu38" ) {couleur = 38;}
478  if ( chcolor == "bleu39" ) {couleur = 39;}
479 
480  if ( chcolor == "orange41" ) {couleur = 41;}
481  if ( chcolor == "orange42" ) {couleur = 42;}
482 
483  if ( chcolor == "rouge44" ) {couleur = 44;}
484  if ( chcolor == "rouge46" ) {couleur = 46;}
485  if ( chcolor == "rouge47" ) {couleur = 47;}
486  if ( chcolor == "rouge48" ) {couleur = 48;}
487  if ( chcolor == "rouge49" ) {couleur = 49;}
488  if ( chcolor == "rouge50" ) {couleur = 50;}
489 
490  if ( chcolor == "vert31" ) {couleur = 31;}
491  if ( chcolor == "vert32" ) {couleur = 32;}
492  if ( chcolor == "vert36" ) {couleur = 36;}
493  if ( chcolor == "vert37" ) {couleur = 37;}
494 
495  if ( chcolor == "violet" ) {couleur = 49;}
496 
497  if ( chcolor == "turquoise29") {couleur = 29;}
498 
499  if ( chcolor == "gris12" ) {couleur = 12;}
500  if ( chcolor == "gris13" ) {couleur = 13;}
501  if ( chcolor == "gris14" ) {couleur = 14;}
502  if ( chcolor == "gris15" ) {couleur = 15;}
503  if ( chcolor == "gris16" ) {couleur = 16;}
504  if ( chcolor == "gris17" ) {couleur = 17;}
505  if ( chcolor == "gris18" ) {couleur = 18;}
506 
507  return couleur;
508 }
509 // end of ColorDefinition
510 
511 //===========================================================================
512 // GetMaxNbOfColors, GetMarginAutoMinMax, GetNbOfRunsDisplayed
513 //===========================================================================
517 
518 //===========================================================================
519 //
520 // SetViewHistoStyle, SetViewHistoPadMargins
521 //
522 //===========================================================================
524 {
525 // Set style parameters for histo view
526 
527  //......................... Palette
528  gStyle->SetPalette(1,0); // default: rainbow spectrum
529 
530  //............................... Date
531  gStyle->SetOptDate(0);
532 
533  //............................... Histo title size
534  gStyle->SetTitleW(0.5); gStyle->SetTitleH(0.075); // default
535 
536  if( HistoType == "colz" || HistoType == "lego" ||
537  HistoType == "surf" || HistoType == "Stin" )
538  {gStyle->SetTitleW(0.8); gStyle->SetTitleH(0.075);}
539 
540  if( (HistoType == "H1Basic") || (HistoType == "Evol") )
541  {gStyle->SetTitleW(0.5); gStyle->SetTitleH(0.075);}
542 
543  if( HistoType == "Stex2DEB" )
544  {gStyle->SetTitleW(0.2); gStyle->SetTitleH(0.095);}
545 
546  if( HistoType == "Stex2DEE" )
547  {gStyle->SetTitleW(0.45); gStyle->SetTitleH(0.08);}
548 
549  if( HistoType == "Stex2DEENb" )
550  {gStyle->SetTitleW(0.85); gStyle->SetTitleH(0.08);}
551 
552  if( HistoType == "Stas2DEB" || HistoType == "Stas2DEE" )
553  {gStyle->SetTitleW(0.225); gStyle->SetTitleH(0.095);}
554 
555  if(HistoType == "Global" || HistoType == "Proj" || HistoType == "SampProj" || HistoType == "EvolProj")
556  {gStyle->SetTitleW(0.5); gStyle->SetTitleH(0.08);}
557 
558  //............................. Statistics box style
559  gStyle->SetOptStat(1110);
560 
561  //............................. Statistics box size
562  if( HistoType == "colz" || HistoType == "lego" ||
563  HistoType == "surf" || HistoType == "Stin" )
564  {
565  gStyle->SetStatW(0.55); gStyle->SetStatH(0.2);
566  gStyle->SetStatY(1);
567  }
568 
569  if( HistoType == "Global" )
570  {
571  gStyle->SetStatW(0.375); gStyle->SetStatH(0.180);
572  gStyle->SetStatY(0.9875);
573  }
574  if( HistoType == "Proj" || HistoType == "SampProj" || HistoType == "EvolProj" )
575  {
576  gStyle->SetStatW(0.375); gStyle->SetStatH(0.180);
577  gStyle->SetStatY(0.9875);
578  }
579 
580  if( (HistoType == "H1Basic") || (HistoType == "Evol") )
581  {
582  gStyle->SetStatW(0.375); gStyle->SetStatH(0.180);
583  gStyle->SetStatY(0.9875);
584  }
585 
586  //....... Marker and line style
587 
588  gStyle->SetMarkerStyle(1);
589  if( HistoType == "Global" ){gStyle->SetMarkerStyle(20);}
590 
591 
592 }
593 //------- (end of SetViewHistoStyle) ----------------
594 
595 void TEcnaParHistos::SetViewHistoPadMargins(const TString HistoType, const TString opt_plot)
596 {
597 // Set active pad margins for histo view
598 
599 //.......... default
600  gStyle->SetPadBottomMargin(0.125);
601  gStyle->SetPadTopMargin(0.125);
602  gStyle->SetPadLeftMargin(0.125);
603  gStyle->SetPadRightMargin(0.125);
604 
605  if(HistoType == "colz" || HistoType == "lego" ||
606  HistoType == "surf" || HistoType == "Stin")
607  {
608  gStyle->SetPadBottomMargin(0.125);
609  gStyle->SetPadTopMargin(0.135);
610  gStyle->SetPadLeftMargin(0.135);
611  gStyle->SetPadRightMargin(0.135);
612  }
613 
614  if( HistoType == "Stex2DEB" )
615  {
616  gStyle->SetPadBottomMargin(0.145);
617  gStyle->SetPadTopMargin(0.135);
618  gStyle->SetPadLeftMargin(0.125);
619  gStyle->SetPadRightMargin(0.125);
620  }
621 
622  if( HistoType == "Stex2DEE" || HistoType == "Stex2DEENb")
623  {
624  gStyle->SetPadBottomMargin(0.120);
625  gStyle->SetPadTopMargin(0.110);
626  gStyle->SetPadLeftMargin(0.130);
627  gStyle->SetPadRightMargin(0.130);
628  }
629  if( HistoType == "Stas2DEB" )
630  {
631  gStyle->SetPadBottomMargin(0.145);
632  gStyle->SetPadTopMargin(0.135);
633  gStyle->SetPadLeftMargin(0.125);
634  gStyle->SetPadRightMargin(0.125);
635  }
636 
637  if( HistoType == "Stas2DEE")
638  {
639  gStyle->SetPadBottomMargin(0.145);
640  gStyle->SetPadTopMargin(0.135);
641  gStyle->SetPadLeftMargin(0.105);
642  gStyle->SetPadRightMargin(0.115);
643  }
644  if(HistoType == "Global")
645  {
646  gStyle->SetPadBottomMargin((Float_t)0.125);
647  gStyle->SetPadTopMargin((Float_t)0.175);
648  gStyle->SetPadLeftMargin((Float_t)0.115);
649  gStyle->SetPadRightMargin((Float_t)0.05);
650  }
651 
652  if(HistoType == "Proj" || HistoType == "SampProj")
653  {
654  gStyle->SetPadBottomMargin(0.115);
655  gStyle->SetPadTopMargin(0.155);
656  gStyle->SetPadLeftMargin(0.15);
657  gStyle->SetPadRightMargin(0.05);
658  }
659 
660  if( HistoType == "H1Basic" )
661  {
662  gStyle->SetPadBottomMargin(0.1275);
663  gStyle->SetPadTopMargin(0.165);
664  gStyle->SetPadLeftMargin(0.15);
665  gStyle->SetPadRightMargin(0.05);
666  }
667 
668  if( HistoType == "Evol" && opt_plot == "ONLYONE")
669  {
670  gStyle->SetPadBottomMargin(0.110);
671  gStyle->SetPadTopMargin(0.2);
672  gStyle->SetPadLeftMargin(0.115);
673  gStyle->SetPadRightMargin(0.035);
674  }
675  if( HistoType == "Evol" && opt_plot == "SAME")
676  {
677  gStyle->SetPadBottomMargin(0.110);
678  gStyle->SetPadTopMargin(0.185);
679  gStyle->SetPadLeftMargin(0.115);
680  gStyle->SetPadRightMargin(0.035);
681  }
682  if( HistoType == "Evol" && opt_plot == "SAME n")
683  {
684  gStyle->SetPadBottomMargin(0.110);
685  gStyle->SetPadTopMargin(0.1);
686  gStyle->SetPadLeftMargin(0.115);
687  gStyle->SetPadRightMargin(0.035);
688  }
689 
690  if( HistoType == "EvolProj" && opt_plot == "ONLYONE")
691  {
692  gStyle->SetPadBottomMargin(0.1275);
693  gStyle->SetPadTopMargin(0.165);
694  gStyle->SetPadLeftMargin(0.15);
695  gStyle->SetPadRightMargin(0.05);
696  }
697  if( HistoType == "EvolProj" && opt_plot == "SAME")
698  {
699  gStyle->SetPadBottomMargin(0.110);
700  gStyle->SetPadTopMargin(0.185);
701  gStyle->SetPadLeftMargin(0.115);
702  gStyle->SetPadRightMargin(0.035);
703  }
704  if( HistoType == "EvolProj" && opt_plot == "SAME n")
705  {
706  gStyle->SetPadBottomMargin(0.110);
707  gStyle->SetPadTopMargin(0.1);
708  gStyle->SetPadLeftMargin(0.115);
709  gStyle->SetPadRightMargin(0.035);
710  }
711 }
712 //------- (end of SetViewHistoPadMargins) ----------------
713 
714 //===========================================================================
715 //
716 // SetViewHistoStats, SetViewHistoOffsets,
717 // AxisTitleOffset, AxisTitleSize, AxisLabelOffset,
718 // AxisLabelSize, AxisTickSize, DeeOffsetX, DeeNameOffsetX,
719 // SetViewGraphOffsets
720 //
721 //===========================================================================
723 {
724  // Set stats box for histo view
725 
726  Bool_t b_true = kTRUE;
727  Bool_t b_false = kFALSE;
728 
729  histo->SetStats(b_false);
730 
731  if(HistoType == "Global"){histo->SetStats(b_false);}
732  if(HistoType == "Proj" || HistoType == "SampProj" ){histo->SetStats(b_true);}
733 }
734 
735 void TEcnaParHistos::SetViewHistoOffsets(TH1D* histo, const TString HistoType, const TString opt_plot)
736 {
737 // Set offsets of labels, title axis, etc... for histo view
738 
739  if(HistoType == "Global")
740  {
741  //....................... x axis
742  histo->GetXaxis()->SetTitleOffset((Float_t)1.05);
743  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
744 
745  histo->GetXaxis()->SetLabelOffset((Float_t)0.006);
746  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
747 
748  histo->GetXaxis()->SetTickLength((Float_t)0.03);
749  histo->GetXaxis()->SetNdivisions((Int_t)510);
750 
751  //....................... y axis
752  histo->GetYaxis()->SetTitleOffset((Float_t)1.5);
753  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
754 
755  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
756  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
757 
758  histo->GetYaxis()->SetTickLength((Float_t)0.03);
759  histo->GetYaxis()->SetNdivisions((Int_t)510);
760  }
761 
762  if(HistoType == "Proj" || HistoType == "SampGlobal" || HistoType == "SampProj" )
763  {
764  //....................... x axis
765  histo->GetXaxis()->SetTitleOffset((Float_t)1.05);
766  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
767 
768  histo->GetXaxis()->SetLabelOffset((Float_t)0.006);
769  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
770 
771  histo->GetXaxis()->SetTickLength((Float_t)0.03);
772  histo->GetXaxis()->SetNdivisions((Int_t)510);
773 
774  //....................... y axis
775  histo->GetYaxis()->SetTitleOffset((Float_t)1.75);
776  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
777 
778  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
779  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
780 
781  histo->GetYaxis()->SetTickLength((Float_t)0.03);
782  histo->GetYaxis()->SetNdivisions((Int_t)510);
783  }
784 
785  if( HistoType == "H1Basic" || HistoType == "Evol" ||
786  ( HistoType == "EvolProj" && !(opt_plot == "SAME" || opt_plot == "SAME n") ) )
787  {
788  //....................... x axis
789  histo->GetXaxis()->SetTitleOffset((Float_t)1.25);
790  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
791 
792  histo->GetXaxis()->SetLabelOffset((Float_t)0.005);
793  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
794 
795  histo->GetXaxis()->SetTickLength((Float_t)0.03);
796  histo->GetXaxis()->SetNdivisions((Int_t)510);
797 
798  //....................... y axis
799  histo->GetYaxis()->SetTitleOffset((Float_t)1.75);
800  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
801 
802  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
803  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
804 
805  histo->GetYaxis()->SetTickLength((Float_t)0.03);
806  histo->GetYaxis()->SetNdivisions((Int_t)510);
807  }
808 
809  if( HistoType == "EvolProj" && (opt_plot == "SAME" || opt_plot == "SAME n") )
810  {
811  //....................... x axis
812  histo->GetXaxis()->SetTitleOffset((Float_t)1.25);
813  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
814 
815  histo->GetXaxis()->SetLabelOffset((Float_t)0.005);
816  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
817 
818  histo->GetXaxis()->SetTickLength((Float_t)0.03);
819  histo->GetXaxis()->SetNdivisions((Int_t)510);
820 
821  //....................... y axis
822  histo->GetYaxis()->SetTitleOffset((Float_t)1.25);
823  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
824 
825  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
826  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
827 
828  histo->GetYaxis()->SetTickLength((Float_t)0.03);
829  histo->GetYaxis()->SetNdivisions((Int_t)510);
830  }
831 
832  if(HistoType == "colz")
833  {
834  //....................... x axis
835  histo->GetXaxis()->SetTitleOffset((Float_t)1.25);
836  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
837 
838  histo->GetXaxis()->SetLabelOffset((Float_t)0.005);
839  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
840 
841  histo->GetXaxis()->SetTickLength((Float_t)0.03);
842  histo->GetXaxis()->SetNdivisions((Int_t)510);
843 
844  //....................... y axis
845  histo->GetYaxis()->SetTitleOffset((Float_t)1.45);
846  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
847 
848  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
849  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
850 
851  histo->GetYaxis()->SetTickLength((Float_t)0.03);
852  histo->GetYaxis()->SetNdivisions((Int_t)510);
853  }
854 
855  if(HistoType == "lego" || HistoType == "surf" )
856  {
857  //....................... x axis
858  histo->GetXaxis()->SetTitleOffset((Float_t)1.7);
859  histo->GetXaxis()->SetTitleSize((Float_t)0.04);
860 
861  histo->GetXaxis()->SetLabelOffset((Float_t)0.005);
862  histo->GetXaxis()->SetLabelSize((Float_t)0.04);
863 
864  histo->GetXaxis()->SetTickLength((Float_t)0.03);
865  histo->GetXaxis()->SetNdivisions((Int_t)510);
866 
867  //....................... y axis
868  histo->GetYaxis()->SetTitleOffset((Float_t)1.85);
869  histo->GetYaxis()->SetTitleSize((Float_t)0.04);
870 
871  histo->GetYaxis()->SetLabelOffset((Float_t)0.01);
872  histo->GetYaxis()->SetLabelSize((Float_t)0.04);
873 
874  histo->GetYaxis()->SetTickLength((Float_t)0.03);
875  histo->GetYaxis()->SetNdivisions((Int_t)510);
876  }
877 
878  if(HistoType == "Stin")
879  {
880  //.......... x axis (remove labels and ticks)
881  histo->GetXaxis()->SetTitleOffset((Float_t)9999.);
882  histo->GetXaxis()->SetTitleSize((Float_t)0.05);
883 
884  histo->GetXaxis()->SetLabelOffset((Float_t)9999.);
885  histo->GetXaxis()->SetLabelSize((Float_t)0.);
886 
887  histo->GetXaxis()->SetNdivisions((Int_t)1);
888  histo->GetXaxis()->SetTickLength((Float_t)0.);
889 
890  //.......... y axis (remove labels and ticks)
891  histo->GetYaxis()->SetTitleOffset((Float_t)9999.);
892  histo->GetYaxis()->SetTitleSize((Float_t)0.05);
893 
894  histo->GetYaxis()->SetLabelOffset((Float_t)9999.);
895  histo->GetYaxis()->SetLabelSize((Float_t)0.);
896 
897  histo->GetYaxis()->SetNdivisions((Int_t)1);
898  histo->GetYaxis()->SetTickLength((Float_t)0.);
899  }
900 
901  if( HistoType == "Stex2DEB" || HistoType == "Stex2DEE" || HistoType == "Stex2DEENb" ||
902  HistoType == "Stas2DEB" || HistoType == "Stas2DEE" )
903  {
904  //.......... x axis (remove labels and ticks)
905  histo->GetXaxis()->SetTitleOffset((Float_t)9999.);
906  histo->GetXaxis()->SetTitleSize((Float_t)0.075);
907 
908  histo->GetXaxis()->SetLabelOffset((Float_t)9999.);
909  histo->GetXaxis()->SetLabelSize((Float_t)0.);
910 
911  histo->GetXaxis()->SetNdivisions((Int_t)1);
912  histo->GetXaxis()->SetTickLength((Float_t)0.);
913 
914  //.......... y axis (remove labels and ticks)
915  histo->GetYaxis()->SetTitleOffset((Float_t)9999.);
916  histo->GetYaxis()->SetTitleSize((Float_t)0.075);
917 
918  histo->GetYaxis()->SetLabelOffset((Float_t)9999.);
919  histo->GetYaxis()->SetLabelSize((Float_t)0.);
920 
921  histo->GetYaxis()->SetNdivisions((Int_t)1);
922  histo->GetYaxis()->SetTickLength((Float_t)0.);
923  }
924 }
925 
926 //----------------------------------------------
928 {
929  return AxisTitleOffset("");
930 }
931 Float_t TEcnaParHistos::AxisTitleOffset(const TString opt)
932 {
933  Float_t tit_off = 1.;
934 
935  if( opt == "" ){tit_off = 0.055;}
936  if( opt == "Towx" ){tit_off = 1.15;}
937  if( opt == "Towy" ){tit_off = 1.15;}
938  if( opt == "SMx" ){tit_off = 1.15;}
939  if( opt == "SMy" ){tit_off = 0.5;}
940  if( opt == "SMyInEB" ){tit_off = 0.7;}
941  if( opt == "EBy" ){tit_off = 1.;}
942  if( opt == "EBx" ){tit_off = 1.3;}
943 
944  if( opt == "SCx" ){tit_off = 1.15;}
945  if( opt == "SCy" ){tit_off = 1.15;}
946  if( opt == "Deex"){tit_off = 0.75;}
947  if( opt == "Deey"){tit_off = 1.2;}
948  if( opt == "EEx" ){tit_off = 1.2;}
949  if( opt == "EEy" ){tit_off = 1.;}
950 
951  return tit_off;
952 }
953 //............................................
955 {
956  return AxisTitleSize("");
957 }
958 Float_t TEcnaParHistos::AxisTitleSize(const TString opt)
959 {
960  Float_t tit_siz = 0.045;
961  if( opt == "" ){tit_siz = 0.045;}
962  return tit_siz;
963 }
964 //............................................
966 {
967  return AxisLabelOffset("");
968 }
969 Float_t TEcnaParHistos::AxisLabelOffset(const TString opt)
970 {
971  Float_t lab_off = 0.02;
972  if( opt == "" ){lab_off = 0.02;}
973 
974  if( opt == "Towx"){lab_off = 0.01;}
975  if( opt == "Towy"){lab_off = 0.03;}
976  if( opt == "SMx" ){lab_off = 0.01;}
977  if( opt == "SMy" ){lab_off = 0.015;}
978  if( opt == "EBx" ){lab_off = 0.03;}
979  if( opt == "EBy" ){lab_off = 0.015;}
980 
981  if( opt == "SCx" ){lab_off = 0.01;}
982  if( opt == "SCy" ){lab_off = 0.03;}
983  if( opt == "Deex"){lab_off = 0.002;}
984  if( opt == "Deey"){lab_off = 0.03;}
985  if( opt == "EEx" ){lab_off = 0.015;}
986  if( opt == "EEy" ){lab_off = 0.02;}
987 
988  return lab_off;
989 }
990 //............................................
992 {
993  return AxisLabelSize("");
994 }
995 Float_t TEcnaParHistos::AxisLabelSize(const TString opt)
996 {
997  Float_t lab_siz = 0.035;
998  if( opt == "SMx" ){lab_siz = 0.05;}
999  if( opt == "SMy" ){lab_siz = 0.05;}
1000  if( opt == "EBx" ){lab_siz = 0.04;}
1001  if( opt == "EBy" ){lab_siz = 0.04;}
1002  return lab_siz;
1003 }
1004 //............................................
1006 {
1007  return AxisTickSize("");
1008 }
1009 Float_t TEcnaParHistos::AxisTickSize(const TString opt)
1010 {
1011 //.......... works only with option "S" in TGaxis
1012  Float_t tic_siz = 0.;
1013  if( opt == "Dee" ){tic_siz = 0.;}
1014  if( opt == "Deex" ){tic_siz = 0.01;}
1015  if( opt == "Deey" ){tic_siz = 0.02;}
1016  if( opt == "SMx" ){tic_siz = 0.03;}
1017  if( opt == "SMy" ){tic_siz = 0.0075;}
1018  if( opt == "EEx" ){tic_siz = 0.06;}
1019  if( opt == "EEy" ){tic_siz = 0.005;}
1020 
1021  return tic_siz;
1022 }
1023 //-----------------------------------------------
1024 
1026 {
1027 // Set offsets of labels, title axis, etc... for histo view
1028 
1029  if( (HistoType == "H1Basic") || (HistoType == "Evol") )
1030  {
1031  //....................... x axis
1032  graph->GetXaxis()->SetTitleOffset((Float_t)1.10);
1033  graph->GetXaxis()->SetTitleSize((Float_t)0.04);
1034 
1035  graph->GetXaxis()->SetLabelOffset((Float_t)0.015);
1036  graph->GetXaxis()->SetLabelSize((Float_t)0.04);
1037 
1038  graph->GetXaxis()->SetTickLength((Float_t)0.02);
1039  graph->GetXaxis()->SetNdivisions((Int_t)510);
1040 
1041  //....................... y axis
1042  graph->GetYaxis()->SetTitleOffset((Float_t)1.25);
1043  graph->GetYaxis()->SetTitleSize((Float_t)0.04);
1044 
1045  graph->GetYaxis()->SetLabelOffset((Float_t)0.01);
1046  graph->GetYaxis()->SetLabelSize((Float_t)0.04);
1047 
1048  graph->GetYaxis()->SetTickLength((Float_t)0.03);
1049  graph->GetYaxis()->SetNdivisions((Int_t)510);
1050  }
1051 }
1052 //-----------------------------------------------
1053 Float_t TEcnaParHistos::DeeOffsetX(const TString opt_plot, const Int_t& DeeNumber)
1054 {
1055  Float_t offset = 0;
1056  if( opt_plot == "Dee" ){offset = 0;}
1057  if( opt_plot == "EE" )
1058  {
1059  Double_t vertic_empty_strip_1 = 1.;
1060  if( DeeNumber == 1 ){offset = vertic_empty_strip_1
1062  if( DeeNumber == 2 ){offset = vertic_empty_strip_1 + 2*fEcal->MaxStinHocoInStex() + 1.;}
1063  if( DeeNumber == 3 ){offset = vertic_empty_strip_1 + fEcal->MaxStinHocoInStex();}
1064  if( DeeNumber == 4 ){offset = vertic_empty_strip_1 + 0.;}
1065  }
1066  return offset;
1067 }
1068 
1069 //-----------------------------------------------
1070 Float_t TEcnaParHistos::DeeNameOffsetX(const Int_t& DeeNumber)
1071 {
1072  Float_t offset = 0;
1073 
1074  if( DeeNumber == 1 ){offset = 6.9;}
1075  if( DeeNumber == 2 ){offset = 0.;}
1076  if( DeeNumber == 3 ){offset = 7.6;}
1077  if( DeeNumber == 4 ){offset = 0.5;}
1078 
1079  return offset;
1080 }
1081 //-----------------------------------------------
1082 Float_t TEcnaParHistos::DeeNumberOffsetX(const TString opt_plot, const Int_t& DeeNumber)
1083 {
1084  Float_t offset = 0;
1085 
1086  if( opt_plot == "Dee" )
1087  {
1088  if( DeeNumber == 1 ){offset = 2.5;}
1089  if( DeeNumber == 2 ){offset = 41.5;}
1090  if( DeeNumber == 3 ){offset = 2.5;}
1091  if( DeeNumber == 4 ){offset = 41.5;}
1092  }
1093  if( opt_plot == "EE" )
1094  {
1095  if( DeeNumber == 1 ){offset = 0.42;}
1096  if( DeeNumber == 2 ){offset = 8.15;}
1097  if( DeeNumber == 3 ){offset = 0.42;}
1098  if( DeeNumber == 4 ){offset = 8.15;}
1099  }
1100  return offset;
1101 }
1102 //===========================================================================
1103 //
1104 // SetPaveGeneralComment,
1105 // SetPaveAnalysisRun, SetPaveNbOfEvts,
1106 // SetPaveEvolNbOfEvtsAna, SetPaveEvolRuns,
1107 // SetOptionSamePaveBorder
1108 //
1109 //
1110 // W A R N I N G
1111 //
1112 // ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
1113 //
1114 // WARNING => Paves for plot option "SEVERAL" and "SAMEONE" are treated
1115 // in TEcnaHistos
1116 //
1117 // ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
1118 //
1119 //===========================================================================
1120 
1122 {
1123 // General comment
1124 
1125  TPaveText* title_g1;
1126 
1127  if( comment != "" )
1128  {
1129  char* f_in = new char[fgMaxCar]; fCnew++;
1130 
1131  Double_t pav_gen_xgauche = BoxLeftX("general_comment");
1132  Double_t pav_gen_xdroite = BoxRightX("general_comment");
1133  Double_t pav_gen_ybas = BoxBottomY("general_comment");
1134  Double_t pav_gen_yhaut = BoxTopY("general_comment");
1135 
1136  title_g1 =
1137  new TPaveText(pav_gen_xgauche, pav_gen_ybas,
1138  pav_gen_xdroite, pav_gen_yhaut); fCnewRoot++;
1139 
1140  Option_t* opt_pav = "arc"; title_g1->SetOption(opt_pav); // <= NE MARCHE PAS
1141 
1142  TString tit_gen = comment.Data();
1143 
1144  sprintf( f_in, tit_gen);
1145  title_g1->AddText(f_in);
1146 
1147  // 1 = left adjusted, 2 = vertically centered
1148  Int_t cTextPaveAlign = 12; title_g1->SetTextAlign(cTextPaveAlign);
1149  // 10*10 = 10*(ID10 = Courier New) // 10*4 = 10*(ID4 = Arial)
1150  Int_t cTextPaveFont = 40; title_g1->SetTextFont(cTextPaveFont);
1151  // 0.95 = 95% of the pave size
1152  Float_t cTextPaveSize = 0.04; title_g1->SetTextSize(cTextPaveSize);
1153  Int_t cTextBorderSize = 0; title_g1->SetBorderSize(cTextBorderSize);
1154  Double_t cTextPaveRadius = 5.; title_g1->SetCornerRadius(cTextPaveRadius); // <= NE MARCHE PAS
1155  // Int_t cTextPaveShadCol = 0; title_g1->SetShadowColor(cTextPaveShadCol); // <= methode non reconnue
1156 
1157  delete [] f_in; fCdelete++;
1158  }
1159  else
1160  {
1161  title_g1 = new TPaveText( 0, 0, 0, 0); title_g1=0; fCnewRoot++;
1162  }
1163  return title_g1;
1164 }
1165 
1166 TPaveText* TEcnaParHistos::SetPaveAnalysisRun(const TString ana_type, const Int_t& nb_of_samples,
1167  const Int_t& run_number, const TString run_type,
1168  const Int_t& first_evt, const Int_t& last_evt, const TString nb_col)
1169 {
1170 // Analysis name + Nb of samples + run number comment
1171 
1172  char* f_in = new char[fgMaxCar]; fCnew++;
1173 
1174  //...................... Pave Analysis name/run number (bottom_left_box)
1175  Double_t pav_bot_left_xgauche = BoxLeftX("bottom_left_box");
1176  Double_t pav_bot_left_xdroite = BoxRightX("bottom_left_box");
1177  Double_t pav_bot_left_ybas = BoxBottomY("bottom_left_box");
1178  Double_t pav_bot_left_yhaut = BoxTopY("bottom_left_box");
1179 
1180  TPaveText *com_bot_left =
1181  new TPaveText(pav_bot_left_xgauche, pav_bot_left_ybas,
1182  pav_bot_left_xdroite, pav_bot_left_yhaut); fCnewRoot++;
1183 
1184  // (1 = left adjusted, 2 = centered adjusted, 3 = left adjusted), 2 = vertically centered
1185  Int_t cTextPaveAlign = 12; com_bot_left->SetTextAlign(cTextPaveAlign);
1186  // 10*10 = 10*(ID10 = Courier New) // 10*4 = 10*(ID4 = Arial)
1187  Int_t cTextPaveFont = 100; com_bot_left->SetTextFont(cTextPaveFont);
1188  // 0.95 = 95% of the pave size
1189  Float_t cTextPaveSize = 0.025; com_bot_left->SetTextSize(cTextPaveSize);
1190  // Int_t cTextPaveShadCol = 0; com_bot_left->SetShadowColor(cTextPaveShadCol);
1191  Int_t cTextBorderSize = 1; com_bot_left->SetBorderSize(cTextBorderSize);
1192 
1193  if( nb_col == "TwoCol")
1194  {
1195  cTextPaveSize = 0.035; com_bot_left->SetTextSize(cTextPaveSize);
1196  sprintf(f_in, "Run: %d Samples: 1 - %d", run_number, nb_of_samples);
1197  com_bot_left->AddText(f_in);
1198  cTextPaveSize = 0.035; com_bot_left->SetTextSize(cTextPaveSize);
1199  sprintf(f_in, "Type: %-20s", run_type.Data());
1200  com_bot_left->AddText(f_in);
1201  sprintf(f_in, "Analysis: %-10s Evts range: %d - %d ", ana_type.Data(), first_evt, last_evt);
1202  com_bot_left->AddText(f_in);
1203  }
1204  else
1205  {
1206  cTextPaveSize = 0.0225; com_bot_left->SetTextSize(cTextPaveSize);
1207  sprintf(f_in, "Run: %d ", run_number);
1208  com_bot_left->AddText(f_in);
1209  sprintf(f_in, "Type: %-20s", run_type.Data());
1210  com_bot_left->AddText(f_in);
1211  sprintf(f_in, "Analysis: %-10s ", ana_type.Data());
1212  com_bot_left->AddText(f_in);
1213  Int_t un = 1;
1214  sprintf(f_in, "Samples: %d - %d", un, nb_of_samples);
1215  com_bot_left->AddText(f_in);
1216  sprintf(f_in, "Evts range: %d - %d", first_evt, last_evt);
1217  com_bot_left->AddText(f_in);
1218  }
1219 
1220  delete [] f_in; fCdelete++;
1221 
1222  return com_bot_left;
1223 }
1224 
1225 TPaveText* TEcnaParHistos::SetPaveNbOfEvts(const Int_t& nb_of_evts,
1226  const TString start_date, const TString stop_date,
1227  const TString nb_col)
1228 {
1229 // Number of events box
1230 
1231  char* f_in = new char[fgMaxCar]; fCnew++;
1232 
1233  //...................... Pave number of events (bottom_right_box)
1234 
1235  Double_t pav_bot_right_xgauche = BoxLeftX("bottom_right_box");
1236  Double_t pav_bot_right_xdroite = BoxRightX("bottom_right_box");
1237  Double_t pav_bot_right_ybas = BoxBottomY("bottom_right_box");
1238  Double_t pav_bot_right_yhaut = BoxTopY("bottom_right_box");
1239  TPaveText *com_bot_right =
1240  new TPaveText(pav_bot_right_xgauche, pav_bot_right_ybas,
1241  pav_bot_right_xdroite, pav_bot_right_yhaut); fCnewRoot++;
1242 
1243  // 1 = left adjusted, 2 = vertically centered
1244  Int_t cTextPaveAlign = 12; com_bot_right->SetTextAlign(cTextPaveAlign);
1245  // 10*4 = 10*(ID4 = Arial) // 10*10 = 10*(ID10 = Courier New)
1246  Int_t cTextPaveFont = 100; com_bot_right->SetTextFont(cTextPaveFont);
1247  // 0.05 = 5% of the pave size
1248  Float_t cTextPaveSize = 0.025; com_bot_right->SetTextSize(cTextPaveSize);
1249  //Int_t cTextPaveShadCol = 0; com_bot_right->SetShadowColor(cTextPaveShadCol);
1250  Int_t cTextBorderSize = 1; com_bot_right->SetBorderSize(cTextBorderSize);
1251 
1252  if( nb_col == "TwoCol")
1253  {
1254  cTextPaveSize = 0.0325; com_bot_right->SetTextSize(cTextPaveSize);
1255  sprintf(f_in, "First evt: %s %8d events ", start_date.Data(), nb_of_evts);
1256  com_bot_right->AddText(f_in);
1257  sprintf(f_in, "Last evt: %s ", stop_date.Data());
1258  com_bot_right->AddText(f_in);
1259  }
1260  else
1261  {
1262  cTextPaveSize = 0.0225; com_bot_right->SetTextSize(cTextPaveSize);
1263  sprintf(f_in, "%d events", nb_of_evts);
1264  com_bot_right->AddText(f_in);
1265  sprintf(f_in, "First evt: %s ", start_date.Data());
1266  com_bot_right->AddText(f_in);
1267  sprintf(f_in, "Last evt: %s ", stop_date.Data());
1268  com_bot_right->AddText(f_in);
1269  }
1270 
1271  delete [] f_in; fCdelete++;
1272 
1273  return com_bot_right;
1274 }
1275 
1276 TPaveText* TEcnaParHistos::SetPaveEvolNbOfEvtsAna(const TString ana_type, const Int_t& nb_of_samples,
1277  const Int_t& first_req_evt, const Int_t& last_req_evt,
1278  const TString HistoType)
1279 {
1280 // Analysis name + run number comment
1281 
1282  char* f_in = new char[fgMaxCar]; fCnew++;
1283 
1284  //...................... Pave Analysis name/run number (bottom_left_box)
1285  Double_t pav_bot_left_xgauche = BoxLeftX("bottom_left_box");
1286  Double_t pav_bot_left_xdroite = BoxRightX("bottom_left_box");
1287  Double_t pav_bot_left_ybas = BoxBottomY("bottom_left_box");
1288  Double_t pav_bot_left_yhaut = BoxTopY("bottom_left_box");
1289 
1290  if( HistoType == "EvolProj" )
1291  {
1292  pav_bot_left_xgauche = BoxLeftX("bottom_left_box_evol");
1293  pav_bot_left_xdroite = BoxRightX("bottom_left_box_evol");
1294  pav_bot_left_ybas = BoxBottomY("bottom_left_box_evol");
1295  pav_bot_left_yhaut = BoxTopY("bottom_left_box_evol");
1296  }
1297 
1298  TPaveText *com_bot_left =
1299  new TPaveText(pav_bot_left_xgauche, pav_bot_left_ybas,
1300  pav_bot_left_xdroite, pav_bot_left_yhaut); fCnewRoot++;
1301 
1302  // 1 = left adjusted, 2 = vertically centered
1303  Int_t cTextPaveAlign = 12; com_bot_left->SetTextAlign(cTextPaveAlign);
1304  // 10*10 = 10*(ID10 = Courier New) // 10*4 = 10*(ID4 = Arial)
1305  Int_t cTextPaveFont = 100; com_bot_left->SetTextFont(cTextPaveFont);
1306  // 0.95 = 95% of the pave size
1307  Float_t cTextPaveSize = 0.03; com_bot_left->SetTextSize(cTextPaveSize);
1308  Int_t cTextBorderSize = 1; com_bot_left->SetBorderSize(cTextBorderSize);
1309 
1310  TString analysis_name = ana_type.Data();
1311 
1312  sprintf(f_in, "Analysis: %s", analysis_name.Data());
1313  com_bot_left->AddText(f_in);
1314  sprintf(f_in, "Samples: 1 - %d", nb_of_samples);
1315  com_bot_left->AddText(f_in);
1316  sprintf(f_in, "Evts range: %d - %d ", first_req_evt, last_req_evt);
1317  com_bot_left->AddText(f_in);
1318 
1319  delete [] f_in; fCdelete++;
1320 
1321  return com_bot_left;
1322 }
1323 
1324 TPaveText* TEcnaParHistos::SetPaveEvolRuns(const Int_t& start_evol_run, const TString start_evol_date,
1325  const Int_t& stop_evol_run, const TString stop_evol_date,
1326  const TString opt_plot, const TString HistoType)
1327 {
1328 // First and last run of the list of runs
1329 
1330  char* f_in = new char[fgMaxCar]; fCnew++;
1331 
1332  //...................... Pave first and last runs (bottom_right_box)
1333  Double_t pav_border_xgauche = BoxLeftX("bottom_right_box_evol");
1334  Double_t pav_border_xdroite = BoxRightX("bottom_right_box_evol");
1335  Double_t pav_border_ybas = BoxBottomY("bottom_right_box_evol");
1336  Double_t pav_border_yhaut = BoxTopY("bottom_right_box_evol");
1337 
1338  if( opt_plot == "SAME n" )
1339  {
1340  pav_border_xgauche = BoxLeftX("bottom_right_box_evpr");
1341  pav_border_xdroite = BoxRightX("bottom_right_box_evpr");
1342  pav_border_ybas = BoxBottomY("top_right_box_EB");
1343  pav_border_yhaut = BoxTopY("top_right_box_EB");
1344  }
1345 
1346  TPaveText *pav_evol_runs =
1347  new TPaveText(pav_border_xgauche, pav_border_ybas,
1348  pav_border_xdroite, pav_border_yhaut); fCnewRoot++;
1349 
1350  // 1 = left adjusted, 2 = vertically centered
1351  Int_t cTextPaveAlign = 12; pav_evol_runs->SetTextAlign(cTextPaveAlign);
1352  // 10*4 = 10*(ID4 = Courier helvetica-medium-r-normal = Arial)
1353  // 10*10 = 10*(ID10 = Courier bold-r-normal = Courier New)
1354  Int_t cTextPaveFont = 100; pav_evol_runs->SetTextFont(cTextPaveFont);
1355  // 0.03 = 3% of the pave height
1356  Float_t cTextPaveSize = 0.025;
1357  if( HistoType == "Evol" || HistoType == "EvolProj"){cTextPaveSize = 0.0225;}
1358 
1359  pav_evol_runs->SetTextSize(cTextPaveSize);
1360  Int_t cTextBorderSize = 1; pav_evol_runs->SetBorderSize(cTextBorderSize);
1361 
1362  if( !( (HistoType == "Evol" && opt_plot == "SAME n") ||
1363  (HistoType == "EvolProj" && opt_plot == "SAME n") ) )
1364  {
1365  sprintf(f_in, "First run: %d", start_evol_run);
1366  pav_evol_runs->AddText(f_in);
1367  sprintf(f_in, "(%s) ", start_evol_date.Data());
1368  pav_evol_runs->AddText(f_in);
1369  sprintf(f_in, "Last run: %d", stop_evol_run);
1370  pav_evol_runs->AddText(f_in);
1371  sprintf(f_in, "(%s) ", stop_evol_date.Data());
1372  pav_evol_runs->AddText(f_in);
1373  }
1374 
1375  if( (HistoType == "Evol" && opt_plot == "SAME n") ||
1376  (HistoType == "EvolProj" && opt_plot == "SAME n") )
1377  {
1378  sprintf(f_in, "First run: %d (%s) ", start_evol_run, start_evol_date.Data());
1379  pav_evol_runs->AddText(f_in);
1380  sprintf(f_in, "Last run: %d (%s)", stop_evol_run, stop_evol_date.Data());
1381  pav_evol_runs->AddText(f_in);
1382  }
1383 
1384  delete [] f_in; fCdelete++;
1385 
1386  return pav_evol_runs;
1387 }
1388 
1389 TPaveText* TEcnaParHistos::SetOptionSamePaveBorder(const TString chopt, const TString HistoType)
1390 {
1391 // Pave for plots with option SAME and SAME n.
1392 // Gives just the size/border and return the pointer to the Pave. No text.
1393 // The Pave text is drawn in TEcnaHistos.cc
1394 
1395  //.................................. DEFAULT OPTION: "several"
1396 
1397  Double_t pav_left_xgauche = BoxLeftX("several_plots_box");
1398  Double_t pav_left_xdroite = BoxRightX("several_plots_box");
1399  Double_t pav_left_ybas = BoxBottomY("several_plots_box");
1400  Double_t pav_left_yhaut = BoxTopY("several_plots_box");
1401 
1402  if(chopt == "sevevol")
1403  {
1404  pav_left_xgauche = BoxLeftX("several_evol_box");
1405  pav_left_xdroite = BoxRightX("several_evol_box");
1406  pav_left_ybas = BoxBottomY("several_evol_box");
1407  pav_left_yhaut = BoxTopY("several_evol_box");
1408 
1409  if( HistoType == "EvolProj" )
1410  {
1411  pav_left_xgauche = BoxLeftX("several_evpr_box");
1412  pav_left_xdroite = BoxRightX("several_evpr_box");
1413  pav_left_ybas = BoxBottomY("several_evpr_box");
1414  pav_left_yhaut = BoxTopY("several_evpr_box");
1415  }
1416  }
1417 
1418  TPaveText *com_several =
1419  new TPaveText(pav_left_xgauche, pav_left_ybas,
1420  pav_left_xdroite, pav_left_yhaut); fCnewRoot++;
1421 
1422  return com_several;
1423 }
1424 //.... end of SetOptionSamePaveBorder
1425 //===========================================================================
1426 //
1427 // SetPaveSM, SetPaveTower, SetPaveTowersXY,
1428 // SetPaveEBCrystal, SetPaveEBCrystalSample,
1429 // SetPaveLVRB, SetColorsForNumbers
1430 //
1431 //===========================================================================
1433 {
1434  char* f_in = new char[fgMaxCar]; fCnew++;
1435  //.................................. DEFAULT OPTION: "standard"
1436  Double_t pav_top_left_xgauche = BoxLeftX("top_left_box_SM");
1437  Double_t pav_top_left_xdroite = BoxRightX("top_left_box_SM");
1438  Double_t pav_top_left_ybas = BoxBottomY("top_left_box_SM");
1439  Double_t pav_top_left_yhaut = BoxTopY("top_left_box_SM");
1440 
1441  TPaveText *com_top_left =
1442  new TPaveText(pav_top_left_xgauche, pav_top_left_ybas,
1443  pav_top_left_xdroite, pav_top_left_yhaut); fCnewRoot++;
1444 
1445  // 1 = left adjusted, 2 = vertically centered
1446  Int_t cTextPaveAlign = 12; com_top_left->SetTextAlign(cTextPaveAlign);
1447  // 10*10 = 10*(ID10 = Courier New)
1448  Int_t cTextPaveFont = 100; com_top_left->SetTextFont(cTextPaveFont);
1449  // 0.95 = 95% of the pave size
1450  Float_t cTextPaveSize = 0.04; com_top_left->SetTextSize(cTextPaveSize);
1451  Int_t cTextBorderSize = 1; com_top_left->SetBorderSize(cTextBorderSize);
1452 
1453  if ( fFlagSubDet == "EB"){sprintf(f_in, "EB");}
1454  if ( fFlagSubDet == "EE"){sprintf(f_in, "EE");}
1455 
1456  com_top_left->AddText(f_in);
1457 
1458  delete [] f_in; fCdelete++;
1459 
1460  return com_top_left;
1461 }
1462 
1463 TPaveText* TEcnaParHistos::SetPaveSM(const TString chopt, const Int_t& SM_number,
1464  const TString EB_type)
1465 {
1466 // Pave for Super-module plots
1467 
1468  char* f_in = new char[fgMaxCar]; fCnew++;
1469 
1470  //.................................. DEFAULT OPTION: "standard"
1471  Double_t pav_top_left_xgauche = BoxLeftX("top_left_box_SM");
1472  Double_t pav_top_left_xdroite = BoxRightX("top_left_box_SM");
1473  Double_t pav_top_left_ybas = BoxBottomY("top_left_box_SM");
1474  Double_t pav_top_left_yhaut = BoxTopY("top_left_box_SM");
1475 
1476  if( chopt == "standard" || (chopt == "standGH" && EB_type == "EB-") )
1477  {
1478  pav_top_left_xgauche = BoxLeftX("top_left_box_EB");
1479  pav_top_left_xdroite = BoxRightX("top_left_box_EB");
1480  pav_top_left_ybas = BoxBottomY("top_left_box_EB");
1481  pav_top_left_yhaut = BoxTopY("top_left_box_EB");
1482  }
1483 
1484  if( chopt == "standSM" || chopt == "standStex" || (chopt == "standGH" && EB_type == "EB+") )
1485  {
1486  pav_top_left_xgauche = BoxLeftX("top_left_box_SM");
1487  pav_top_left_xdroite = BoxRightX("top_left_box_SM");
1488  pav_top_left_ybas = BoxBottomY("top_left_box_SM");
1489  pav_top_left_yhaut = BoxTopY("top_left_box_SM");
1490  }
1491 
1492  if( chopt == "several" )
1493  {
1494  pav_top_left_xgauche = BoxLeftX("several_plots_box");
1495  pav_top_left_xdroite = BoxRightX("several_plots_box");
1496  pav_top_left_ybas = BoxBottomY("several_plots_box");
1497  pav_top_left_yhaut = BoxTopY("several_plots_box");
1498  }
1499 
1500  if( chopt == "sevevol" )
1501  {
1502  pav_top_left_xgauche = BoxLeftX("several_evol_box");
1503  pav_top_left_xdroite = BoxRightX("several_evol_box");
1504  pav_top_left_ybas = BoxBottomY("several_evol_box");
1505  pav_top_left_yhaut = BoxTopY("several_evol_box");
1506  }
1507 
1508  TPaveText *com_top_left =
1509  new TPaveText(pav_top_left_xgauche, pav_top_left_ybas,
1510  pav_top_left_xdroite, pav_top_left_yhaut); fCnewRoot++;
1511 
1512  // 1 = left adjusted, 2 = vertically centered
1513  Int_t cTextPaveAlign = 12; com_top_left->SetTextAlign(cTextPaveAlign);
1514  // 10*10 = 10*(ID10 = Courier New)
1515  Int_t cTextPaveFont = 100; com_top_left->SetTextFont(cTextPaveFont);
1516  // 0.95 = 95% of the pave size
1517  Float_t cTextPaveSize = 0.04; com_top_left->SetTextSize(cTextPaveSize);
1518  Int_t cTextBorderSize = 1; com_top_left->SetBorderSize(cTextBorderSize);
1519 
1520  if( chopt == "standard" || chopt == "standSM" || chopt == "standStex" || chopt == "standGH")
1521  {
1522  Int_t sm_nb = SM_number;
1523  if( EB_type == "EB+" ){sprintf(f_in, "EB+%d", sm_nb);}
1524  if( EB_type == "EB-" )
1525  {sm_nb = -SM_number+fEcal->MaxSMInEB()/2;
1526  sprintf(f_in, "EB%d (SM%d)", sm_nb, SM_number);}
1527  com_top_left->AddText(f_in);
1528  }
1529 
1530  delete [] f_in; fCdelete++;
1531 
1532  return com_top_left;
1533 }
1534 
1535 TPaveText* TEcnaParHistos::SetPaveTower(const Int_t& SMtower_X)
1536 {
1537 // Tower comment
1538 
1539  char* f_in = new char[fgMaxCar]; fCnew++;
1540  //...................... Pave tower/crystal(channel)/sample (top_right_box)
1541  Double_t pav_top_mid_xgauche = BoxLeftX("top_mid_box_EB");
1542  Double_t pav_top_mid_xdroite = BoxRightX("top_mid_box_EB");
1543  Double_t pav_top_mid_ybas = BoxBottomY("top_mid_box_EB");
1544  Double_t pav_top_mid_yhaut = BoxTopY("top_mid_box_EB");
1545  TPaveText *com_top_mid =
1546  new TPaveText(pav_top_mid_xgauche, pav_top_mid_ybas,
1547  pav_top_mid_xdroite, pav_top_mid_yhaut); fCnewRoot++;
1548 
1549  // 1 = left adjusted, 2 = vertically centered
1550  Int_t cTextPaveAlign = 12; com_top_mid->SetTextAlign(cTextPaveAlign);
1551  // 10*10 = 10*(ID10 = Courier New)
1552  Int_t cTextPaveFont = 100; com_top_mid->SetTextFont(cTextPaveFont);
1553  // 0.95 = 95% of the pave size
1554  Float_t cTextPaveSize = 0.03; com_top_mid->SetTextSize(cTextPaveSize);
1555  Int_t cTextBorderSize = 1; com_top_mid->SetBorderSize(cTextBorderSize);
1556 
1557  sprintf(f_in, " Tower: %d ", SMtower_X);
1558  com_top_mid->AddText(f_in);
1559 
1560  delete [] f_in; fCdelete++;
1561 
1562  return com_top_mid;
1563 }
1564 
1565 TPaveText* TEcnaParHistos::SetPaveTowersXY(const Int_t& SMtower_X, const Int_t& SMtower_Y)
1566 {
1567 // Towers X and Y for (TowEcha,TowEcha) cov or cor matrix
1568 
1569  char* f_in = new char[fgMaxCar]; fCnew++;
1570  //...................... Pave tower/TowEcha(channel)/sample (top_right_box)
1571  Double_t pav_top_mid_xgauche = BoxLeftX("top_mid_box_EB");
1572  Double_t pav_top_mid_xdroite = BoxRightX("top_mid_box_EB");
1573  Double_t pav_top_mid_ybas = BoxBottomY("top_mid_box_EB");
1574  Double_t pav_top_mid_yhaut = BoxTopY("top_mid_box_EB");
1575  TPaveText *com_top_mid =
1576  new TPaveText(pav_top_mid_xgauche, pav_top_mid_ybas,
1577  pav_top_mid_xdroite, pav_top_mid_yhaut); fCnewRoot++;
1578 
1579  // 1 = left adjusted, 2 = vertically centered
1580  Int_t cTextPaveAlign = 12; com_top_mid->SetTextAlign(cTextPaveAlign);
1581  // 10*10 = 10*(ID10 = Courier New)
1582  Int_t cTextPaveFont = 100; com_top_mid->SetTextFont(cTextPaveFont);
1583  // 0.95 = 95% of the pave size
1584  Float_t cTextPaveSize = 0.03; com_top_mid->SetTextSize(cTextPaveSize);
1585  Int_t cTextBorderSize = 1; com_top_mid->SetBorderSize(cTextBorderSize);
1586 
1587  sprintf(f_in, " Tower X: %d ", SMtower_X);
1588  com_top_mid->AddText(f_in);
1589  sprintf(f_in, " Tower Y: %d ", SMtower_Y);
1590  com_top_mid->AddText(f_in);
1591 
1592  delete [] f_in; fCdelete++;
1593 
1594  return com_top_mid;
1595 }
1596 
1597 TPaveText* TEcnaParHistos::SetPaveCrystal(const Int_t& StexCrys, const Int_t& StexStinA, const Int_t& StinEcha)
1598 {
1599 // Tower + StinEcha comment. StexCrys range: [1,max]
1600 
1601  char* f_in = new char[fgMaxCar]; fCnew++;
1602  //...................... Pave tower/StinEcha(channel)/sample (top_right_box)
1603 
1604  Double_t pav_top_right_xgauche = BoxLeftX("top_right_box_EB");
1605  Double_t pav_top_right_xdroite = BoxRightX("top_right_box_EB");
1606  Double_t pav_top_right_ybas = BoxBottomY("top_right_box_EB");
1607  Double_t pav_top_right_yhaut = BoxTopY("top_right_box_EB");
1608  if( fFlagSubDet == "EE" )
1609  {
1610  pav_top_right_xgauche = BoxLeftX("top_right_box_EE");
1611  pav_top_right_xdroite = BoxRightX("top_right_box_EE");
1612  pav_top_right_ybas = BoxBottomY("top_right_box_EE");
1613  pav_top_right_yhaut = BoxTopY("top_right_box_EE");
1614  }
1615 
1616  TPaveText *com_top_right =
1617  new TPaveText(pav_top_right_xgauche, pav_top_right_ybas,
1618  pav_top_right_xdroite, pav_top_right_yhaut); fCnewRoot++;
1619 
1620  // 1 = left adjusted, 2 = vertically centered
1621  Int_t cTextPaveAlign = 12; com_top_right->SetTextAlign(cTextPaveAlign);
1622  // 10*10 = 10*(ID10 = Courier New)
1623  Int_t cTextPaveFont = 100; com_top_right->SetTextFont(cTextPaveFont);
1624  // 0.95 = 95% of the pave size
1625  Float_t cTextPaveSize = 0.03; com_top_right->SetTextSize(cTextPaveSize);
1626  Int_t cTextBorderSize = 1; com_top_right->SetBorderSize(cTextBorderSize);
1627 
1628  if( fFlagSubDet == "EB" )
1629  {
1630  sprintf(f_in, "Channel: %d ", StinEcha);
1631  com_top_right->AddText(f_in);
1632  sprintf(f_in, "Crystal in SM: %d ", StexCrys);
1633  com_top_right->AddText(f_in);
1634  }
1635 
1636  if( fFlagSubDet == "EE" )
1637  {
1638  sprintf(f_in, "Crystal in SC: %d ", StinEcha+1); // EE => range = [1,25]
1639  com_top_right->AddText(f_in);
1640  Int_t IX_Dee_crys = StexCrys/fEcal->MaxCrysIYInDee() + 1;
1641  Int_t IY_Dee_crys = StexCrys%fEcal->MaxCrysIYInDee();
1642  if( IY_Dee_crys == 0 ){IX_Dee_crys--; IY_Dee_crys = fEcal->MaxCrysIYInDee();}
1643  sprintf(f_in, "(IX,IY)[Xtal]=(%d,%d)", IX_Dee_crys, IY_Dee_crys);
1644  com_top_right->AddText(f_in);
1645  }
1646 
1647  delete [] f_in; fCdelete++;
1648 
1649  return com_top_right;
1650 }
1651 
1652 TPaveText* TEcnaParHistos::SetPaveCrystalSample(const Int_t& StexCrys, const Int_t& StexStinA,
1653  const Int_t& StinEcha, const Int_t& iSample)
1654 {
1655 // Tower + StinEcha + sample comment
1656 
1657  char* f_in = new char[fgMaxCar]; fCnew++;
1658  //...................... Pave tower/StinEcha(channel)/sample (top_right_box)
1659  Double_t pav_top_right_xgauche = BoxLeftX("top_right_box_EB");
1660  Double_t pav_top_right_xdroite = BoxRightX("top_right_box_EB");
1661  Double_t pav_top_right_ybas = BoxBottomY("top_right_box_EB");
1662  Double_t pav_top_right_yhaut = BoxTopY("top_right_box_EB");
1663  if( fFlagSubDet == "EE" )
1664  {
1665  pav_top_right_xgauche = BoxLeftX("top_right_box_EE");
1666  pav_top_right_xdroite = BoxRightX("top_right_box_EE");
1667  pav_top_right_ybas = BoxBottomY("top_right_box_EE");
1668  pav_top_right_yhaut = BoxTopY("top_right_box_EE");
1669  }
1670 
1671  TPaveText *com_top_right =
1672  new TPaveText(pav_top_right_xgauche, pav_top_right_ybas,
1673  pav_top_right_xdroite, pav_top_right_yhaut); fCnewRoot++;
1674 
1675  // 1 = left adjusted, 2 = vertically centered
1676  Int_t cTextPaveAlign = 12; com_top_right->SetTextAlign(cTextPaveAlign);
1677  // 10*10 = 10*(ID10 = Courier New)
1678  Int_t cTextPaveFont = 100; com_top_right->SetTextFont(cTextPaveFont);
1679  // 0.95 = 95% of the pave size
1680  Float_t cTextPaveSize = 0.03; com_top_right->SetTextSize(cTextPaveSize);
1681  Int_t cTextBorderSize = 1; com_top_right->SetBorderSize(cTextBorderSize);
1682 
1683 
1684  if( fFlagSubDet == "EB" )
1685  {
1686  sprintf(f_in, " Channel: %d ", StinEcha);
1687  com_top_right->AddText(f_in);
1688  sprintf(f_in, " Crystal in SM: %d ", StexCrys);
1689  com_top_right->AddText(f_in);
1690  }
1691 
1692  if( fFlagSubDet == "EE" )
1693  {
1694  sprintf(f_in, " Channel: %d ", StinEcha+1); // EE => range = [1,25]
1695  com_top_right->AddText(f_in);
1696  Int_t IX_Dee_crys = StexCrys/fEcal->MaxCrysIYInDee() + 1;
1697  Int_t IY_Dee_crys = StexCrys%fEcal->MaxCrysIYInDee();
1698  if( IY_Dee_crys == 0 ){IX_Dee_crys--; IY_Dee_crys = fEcal->MaxCrysIYInDee();}
1699  sprintf(f_in, "(IX,IY)[Xtal]=(%d,%d)", IX_Dee_crys, IY_Dee_crys);
1700  com_top_right->AddText(f_in);
1701  }
1702 
1703  sprintf(f_in, " Sample: %d ", iSample+1);
1704  com_top_right->AddText(f_in);
1705 
1706  delete [] f_in; fCdelete++;
1707 
1708  return com_top_right;
1709 }
1710 
1711 TPaveText* TEcnaParHistos::SetPaveLVRB(const Int_t& SMNumber, const Int_t& SMtower)
1712 {
1713 // LVRB at the top or at the bottom comment
1714 
1715  //....................... GRAND pave "LVRB"
1716  Double_t pav_bot_xgauche = BoxLeftX("bottom_left_box");
1717  Double_t pav_bot_xdroite = BoxRightX("bottom_right_box");
1718  Double_t pav_bot_ybas = BoxBottomY("bottom_left_box");
1719  Double_t pav_bot_yhaut = BoxTopY("bottom_left_box");
1720  TPaveText *com_bot_mid =
1721  new TPaveText(pav_bot_xgauche, pav_bot_ybas,
1722  pav_bot_xdroite, pav_bot_yhaut); fCnewRoot++;
1723 
1724  Color_t couleur_noir = ColorDefinition("noir");
1725  Color_t couleur_rouge = SetColorsForNumbers("lvrb_top");
1726  Color_t couleur_bleu_fonce = SetColorsForNumbers("lvrb_bottom");
1727 
1728  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB+")
1729  {
1730  TText *t1 = com_bot_mid->AddText(" <= IP (#eta = 0) (#eta = +85) => ");
1731  t1->SetTextColor(couleur_noir);
1732  }
1733 
1734  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-")
1735  {
1736  TText *t2 = com_bot_mid->AddText(" <= (#eta = -85) IP (#eta = 0) => ");
1737  t2->SetTextColor(couleur_noir);
1738  }
1739 
1740  if(fEcalNumbering->GetTowerLvrbType(SMtower) == "top")
1741  {
1742  TText *t3 = 0;
1743  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB+")
1744  {t3 = com_bot_mid->AddText(" <=== LVRB ");}
1745  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-")
1746  {t3 = com_bot_mid->AddText(" LVRB ===> ");}
1747  t3->SetTextColor(couleur_rouge);
1748  }
1749 
1750  if(fEcalNumbering->GetTowerLvrbType(SMtower) == "bottom")
1751  {
1752  TText *t4 = 0;
1753  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB+")
1754  {t4 = com_bot_mid->AddText(" LVRB ===> ");}
1755  if(fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-")
1756  {t4 = com_bot_mid->AddText(" <=== LVRB ");}
1757  t4->SetTextColor(couleur_bleu_fonce);
1758  }
1759  return com_bot_mid;
1760 
1761 }// end of SetPaveLVRB
1762 
1763 Color_t TEcnaParHistos::SetColorsForNumbers(const TString chtype_number)
1764 {
1765  //Set color of the numbers for SuperModule- or Tower- numbering plots
1766 
1767  Color_t couleur = ColorDefinition("noir"); // default = "noir"
1768 
1769  if ( chtype_number == "crystal" ){couleur = ColorDefinition("noir");}
1770  if ( chtype_number == "lvrb_top" ){couleur = ColorDefinition("rouge");}
1771  if ( chtype_number == "lvrb_bottom" ){couleur = ColorDefinition("bleu_fonce");}
1772 
1773  return couleur;
1774 }
1775 
1776 //===========================================================================
1777 //
1778 // SetPaveDee, SetPaveSC, SetPaveSCsXY,
1779 // SetPaveEECrystal
1780 //
1781 //===========================================================================
1782 
1783 TPaveText* TEcnaParHistos::SetPaveDee(const TString chopt, const Int_t& DeeNumber,
1784  const TString DeeType)
1785 {
1786 // Dee pav. Called only once.
1787 
1788  char* f_in = new char[fgMaxCar]; fCnew++;
1789 
1790  //.................................. DEFAULT OPTION: "standard"
1791  Double_t pav_top_left_xgauche = BoxLeftX("top_left_box_EE");
1792  Double_t pav_top_left_xdroite = BoxRightX("top_left_box_EE");
1793  Double_t pav_top_left_ybas = BoxBottomY("top_left_box_EE");
1794  Double_t pav_top_left_yhaut = BoxTopY("top_left_box_EE");
1795 
1796  if(chopt == "standard" || chopt == "standGH")
1797  {
1798  pav_top_left_xgauche = BoxLeftX("top_left_box_EE");
1799  pav_top_left_xdroite = BoxRightX("top_left_box_EE");
1800  pav_top_left_ybas = BoxBottomY("top_left_box_EE");
1801  pav_top_left_yhaut = BoxTopY("top_left_box_EE");
1802  }
1803 
1804  if( chopt == "standDee" || chopt == "standStex" )
1805  {
1806  pav_top_left_xgauche = BoxLeftX("top_left_box_Dee");
1807  pav_top_left_xdroite = BoxRightX("top_left_box_Dee");
1808  pav_top_left_ybas = BoxBottomY("top_left_box_Dee");
1809  pav_top_left_yhaut = BoxTopY("top_left_box_Dee");
1810  }
1811 
1812  if(chopt == "several")
1813  {
1814  pav_top_left_xgauche = BoxLeftX("several_plots_box");
1815  pav_top_left_xdroite = BoxRightX("several_plots_box");
1816  pav_top_left_ybas = BoxBottomY("several_plots_box");
1817  pav_top_left_yhaut = BoxTopY("several_plots_box");
1818  }
1819  if(chopt == "sevevol")
1820  {
1821  pav_top_left_xgauche = BoxLeftX("several_evol_box");
1822  pav_top_left_xdroite = BoxRightX("several_evol_box");
1823  pav_top_left_ybas = BoxBottomY("several_evol_box");
1824  pav_top_left_yhaut = BoxTopY("several_evol_box");
1825  }
1826 
1827  TPaveText *com_top_left =
1828  new TPaveText(pav_top_left_xgauche, pav_top_left_ybas,
1829  pav_top_left_xdroite, pav_top_left_yhaut); fCnewRoot++;
1830 
1831  // 1 = left adjusted, 2 = vertically centered
1832  Int_t cTextPaveAlign = 12; com_top_left->SetTextAlign(cTextPaveAlign);
1833  // 10*10 = 10*(ID10 = Courier New)
1834  Int_t cTextPaveFont = 100; com_top_left->SetTextFont(cTextPaveFont);
1835  // 0.95 = 95% of the pave size
1836  Float_t cTextPaveSize = 0.04; com_top_left->SetTextSize(cTextPaveSize);
1837  Int_t cTextBorderSize = 1; com_top_left->SetBorderSize(cTextBorderSize);
1838 
1839  if( chopt == "standard" )
1840  {
1841  sprintf(f_in, " Dee: %d", DeeNumber);
1842  com_top_left->AddText(f_in);
1843  sprintf(f_in, " (%s)", DeeType.Data());
1844  com_top_left->AddText(f_in);
1845  }
1846 
1847  if( chopt == "standDee" || chopt == "standStex" || chopt == "standGH" )
1848  {
1849  sprintf(f_in, " Dee: %d (%s) ", DeeNumber, DeeType.Data());
1850  com_top_left->AddText(f_in);
1851  }
1852 
1853  delete [] f_in; fCdelete++;
1854 
1855  return com_top_left;
1856 }
1857 
1858 TPaveText* TEcnaParHistos::SetPaveSC(const Int_t& DeeSC_X, const Int_t& DeeNumber)
1859 {
1860 // SC comment
1861 
1862  char* f_in = new char[fgMaxCar]; fCnew++;
1863  //...................... Pave SC/crystal(channel)/sample (top_right_box)
1864  Double_t pav_top_mid_xgauche = BoxLeftX("top_mid_box_EE");
1865  Double_t pav_top_mid_xdroite = BoxRightX("top_mid_box_EE");
1866  Double_t pav_top_mid_ybas = BoxBottomY("top_mid_box_EE");
1867  Double_t pav_top_mid_yhaut = BoxTopY("top_mid_box_EE");
1868  TPaveText *com_top_mid =
1869  new TPaveText(pav_top_mid_xgauche, pav_top_mid_ybas,
1870  pav_top_mid_xdroite, pav_top_mid_yhaut); fCnewRoot++;
1871 
1872  // 1 = left adjusted, 2 = vertically centered
1873  Int_t cTextPaveAlign = 12; com_top_mid->SetTextAlign(cTextPaveAlign);
1874  // 10*10 = 10*(ID10 = Courier New)
1875  Int_t cTextPaveFont = 100; com_top_mid->SetTextFont(cTextPaveFont);
1876  // 0.95 = 95% of the pave size
1877  Float_t cTextPaveSize = 0.03; com_top_mid->SetTextSize(cTextPaveSize);
1878  Int_t cTextBorderSize = 1; com_top_mid->SetBorderSize(cTextBorderSize);
1879 
1880  sprintf(f_in, "Sector: S%d, SC: %d",
1881  fEcalNumbering->GetDSFrom1DeeSCEcna(DeeNumber, DeeSC_X),
1882  fEcalNumbering->GetDSSCFrom1DeeSCEcna(DeeNumber, DeeSC_X));
1883  com_top_mid->AddText(f_in);
1884  sprintf(f_in, "SC for const.: %d",
1885  fEcalNumbering->GetDeeSCConsFrom1DeeSCEcna(DeeNumber,DeeSC_X));
1886  com_top_mid->AddText(f_in);
1887  sprintf(f_in, "Quadrant: %s",
1888  fEcalNumbering->GetSCQuadFrom1DeeSCEcna(DeeSC_X).Data());
1889  com_top_mid->AddText(f_in);
1890  delete [] f_in; fCdelete++;
1891 
1892  return com_top_mid;
1893 }
1894 
1895 TPaveText* TEcnaParHistos::SetPaveSCsXY(const Int_t& DeeSC_X, const Int_t& DeeSC_Y)
1896 {
1897 // SCs X and Y for (SCEcha,SCEcha) cov or cor matrix
1898 
1899  char* f_in = new char[fgMaxCar]; fCnew++;
1900  //...................... Pave SC/SCEcha(channel)/sample (top_right_box)
1901  Double_t pav_top_mid_xgauche = BoxLeftX("top_mid_box_EE");
1902  Double_t pav_top_mid_xdroite = BoxRightX("top_mid_box_EE");
1903  Double_t pav_top_mid_ybas = BoxBottomY("top_mid_box_EE");
1904  Double_t pav_top_mid_yhaut = BoxTopY("top_mid_box_EE");
1905  TPaveText *com_top_mid =
1906  new TPaveText(pav_top_mid_xgauche, pav_top_mid_ybas,
1907  pav_top_mid_xdroite, pav_top_mid_yhaut); fCnewRoot++;
1908 
1909  // 1 = left adjusted, 2 = vertically centered
1910  Int_t cTextPaveAlign = 12; com_top_mid->SetTextAlign(cTextPaveAlign);
1911  // 10*10 = 10*(ID10 = Courier New)
1912  Int_t cTextPaveFont = 100; com_top_mid->SetTextFont(cTextPaveFont);
1913  // 0.95 = 95% of the pave size
1914  Float_t cTextPaveSize = 0.03; com_top_mid->SetTextSize(cTextPaveSize);
1915  Int_t cTextBorderSize = 1; com_top_mid->SetBorderSize(cTextBorderSize);
1916 
1917  sprintf(f_in, "SC X: %d", DeeSC_X);
1918  com_top_mid->AddText(f_in);
1919  sprintf(f_in, "SC Y: %d", DeeSC_Y);
1920  com_top_mid->AddText(f_in);
1921 
1922  delete [] f_in; fCdelete++;
1923 
1924  return com_top_mid;
1925 }
1926 
1927 TPaveText* TEcnaParHistos::SetPaveCxyz(const Int_t& DeeNumber)
1928 {
1929 // Cxyz at the top or at the bottom comment
1930 
1931  //....................... GRAND pave "Cxyz"
1932  Double_t pav_bot_xgauche = BoxRightX("bottom_mid_box");
1933  Double_t pav_bot_xdroite = BoxLeftX("bottom_mid_box");
1934  Double_t pav_bot_ybas = BoxBottomY("bottom_left_box");
1935  Double_t pav_bot_yhaut = BoxTopY("bottom_left_box");
1936  TPaveText *com_bot_mid =
1937  new TPaveText(pav_bot_xgauche, pav_bot_ybas,
1938  pav_bot_xdroite, pav_bot_yhaut); fCnewRoot++;
1939 
1940  //com_bot_mid->SetOption("arc");
1941  //com_bot_mid->SetCornerRadius((Double_t)0.5);
1942  //Int_t cTextPaveFont = 100; com_bot_mid->SetTextFont(cTextPaveFont);
1943 
1944  com_bot_mid->SetTextSize(0.0325);
1945  //........................................... (SetPaveCxyz)
1946  if( DeeNumber == 1 )
1947  {
1948  com_bot_mid->AddText(" y ");
1949  com_bot_mid->AddText(" #uparrow ");
1950  com_bot_mid->AddText(" (Near) x #leftarrow #otimes z (Far) " );
1951  }
1952  if( DeeNumber == 2 )
1953  {
1954  com_bot_mid->AddText(" y ");
1955  com_bot_mid->AddText(" #uparrow ");
1956  com_bot_mid->AddText(" (Near) x #leftarrow #otimes z (Far) " );
1957  }
1958  if( DeeNumber == 3 )
1959  {
1960  com_bot_mid->AddText(" y ");
1961  com_bot_mid->AddText(" #uparrow ");
1962  com_bot_mid->AddText(" (Far) z (#bullet) #rightarrow x (Near) " );
1963  }
1964  if( DeeNumber == 4 )
1965  {
1966  com_bot_mid->AddText(" y ");
1967  com_bot_mid->AddText(" #uparrow ");
1968  com_bot_mid->AddText(" (Far) z (#bullet) #rightarrow x (Near) " );
1969  }
1970 
1971  // com_bot_mid->AddText(" (from IP) " );
1972  return com_bot_mid;
1973 }
1974 //===========================================================================
1975 //
1976 // SetPaveStex, SetPaveStin
1977 //
1978 //===========================================================================
1979 
1980 TPaveText* TEcnaParHistos::SetPaveStex(const TString chopt, const Int_t& StexNumber)
1981 {
1982  TPaveText* pav_text = 0;
1983 
1984  if( StexNumber > 0 )
1985  {
1986  if ( fFlagSubDet == "EB" )
1987  {
1988  TString EB_type = fEcalNumbering->GetSMHalfBarrel(StexNumber);
1989  pav_text = SetPaveSM(chopt, StexNumber, EB_type);
1990  }
1991  if ( fFlagSubDet == "EE" )
1992  {
1993  TString dee_type = fEcalNumbering->GetEEDeeType(StexNumber);
1994  pav_text = SetPaveDee(chopt, StexNumber, dee_type);
1995  }
1996  }
1997  if( StexNumber == 0 ){pav_text = SetPaveStas();}
1998 
1999  return pav_text;
2000 }
2001 
2002 TPaveText* TEcnaParHistos::SetPaveStin(const Int_t& StinNumber, const Int_t& StexNumber)
2003 {
2004  TPaveText* pav_text = 0;
2005  if ( fFlagSubDet == "EB"){pav_text = SetPaveTower(StinNumber);}
2006  if ( fFlagSubDet == "EE"){pav_text = SetPaveSC(StinNumber, StexNumber);}
2007  return pav_text;
2008 }
2009 
2010 TPaveText* TEcnaParHistos::SetPaveStinsXY(const Int_t& StexStin_X, const Int_t& StexStin_Y)
2011 {
2012  TPaveText* pav_text = 0;
2013  if ( fFlagSubDet == "EB"){pav_text = SetPaveTowersXY(StexStin_X, StexStin_Y);}
2014  if ( fFlagSubDet == "EE"){pav_text = SetPaveSCsXY(StexStin_X, StexStin_Y);}
2015  return pav_text;
2016 }
2017 
2018 //===========================================================================
2019 //
2020 // GetHistoType, GetQuantityName
2021 //
2022 //===========================================================================
2023 
2024 TString TEcnaParHistos::GetHistoType(const TString HistoCode)
2025 {
2026 // Type of the quantity as a function of the quantity code
2027 // Histo type <=> Variable in X coordinate
2028 
2029  TString HistoType;
2030  Int_t MaxCar = fgMaxCar;
2031  HistoType.Resize(MaxCar);
2032  HistoType = "(no quantity type info)";
2033 
2034  //.(1a)............................ Global
2035  if ( HistoCode == "D_NOE_ChNb" || HistoCode == "D_Ped_ChNb" ||
2036  HistoCode == "D_TNo_ChNb" || HistoCode == "D_MCs_ChNb" ||
2037  HistoCode == "D_LFN_ChNb" || HistoCode == "D_HFN_ChNb" ||
2038  HistoCode == "D_SCs_ChNb" )
2039  {HistoType = "Global";} // X coordinate = Xtals for SM or Dee
2040  // Tower for EB
2041  // SC for EE
2042  //.(1b)............................ Proj
2043  if ( HistoCode == "D_NOE_ChDs" || HistoCode == "D_Ped_ChDs" ||
2044  HistoCode == "D_TNo_ChDs" || HistoCode == "D_MCs_ChDs" ||
2045  HistoCode == "D_LFN_ChDs" || HistoCode == "D_HFN_ChDs" ||
2046  HistoCode == "D_SCs_ChDs" )
2047  {HistoType = "Proj";} // X coordinate = bin number
2048 
2049  //.(2)............................ H1Basic
2050  if ( HistoCode == "D_MSp_Samp" || HistoCode == "D_SSp_Samp" )
2051  {HistoType = "H1Basic";} // X coordinate = sample number
2052 
2053  //.(3a)............................ SampGlobal
2054  if ( HistoCode == "D_Adc_EvNb" ){HistoType = "SampGlobal";} // X coordinate = event number
2055  //.(3b)............................ SampProj
2056  if ( HistoCode == "D_Adc_EvDs" ){HistoType = "SampProj";} // X coordinate = bin number
2057 
2058  //.(4a)............................ Evol
2059  if ( HistoCode == "H_Ped_Date" || HistoCode == "H_TNo_Date" || HistoCode == "H_MCs_Date" ||
2060  HistoCode == "H_LFN_Date" || HistoCode == "H_HFN_Date" || HistoCode == "H_SCs_Date" )
2061  {HistoType = "Evol";} // X coordinate = date
2062 
2063  //.(4b)............................ EvolProj
2064  if ( HistoCode == "H_Ped_RuDs" || HistoCode == "H_TNo_RuDs" || HistoCode == "H_MCs_RuDs" ||
2065  HistoCode == "H_LFN_RuDs" || HistoCode == "H_HFN_RuDs" || HistoCode == "H_SCs_RuDs" )
2066  {HistoType = "EvolProj";} // X coordinate = bin number
2067 
2068  return HistoType;
2069 }// end of GetHistoType(...)
2070 
2071 TString TEcnaParHistos::GetXVarHisto(const TString HistoCode, const TString SubDet, const Int_t& StexNumber)
2072 {
2073 // Type of the quantity as a function of the quantity code
2074 // Histo type <=> Variable in X coordinate
2075 
2076  TString HistoType = GetHistoType(HistoCode.Data());
2077 
2078  TString XVarHisto;
2079  Int_t MaxCar = fgMaxCar;
2080  XVarHisto.Resize(MaxCar);
2081  XVarHisto = "(no X variable info)";
2082 
2083  if( HistoType == "Global" )
2084  {
2085  if( StexNumber == 0 && SubDet == "EB" ){XVarHisto = "Tower number";}
2086  if( StexNumber == 0 && SubDet == "EE" ){XVarHisto = "SC number";}
2087  if( StexNumber != 0){XVarHisto = "Xtal number";}
2088  }
2089  if( HistoType == "Proj" ){XVarHisto = "Bin number";}
2090 
2091  if( HistoType == "H1Basic"){XVarHisto = "Sample number";}
2092 
2093  if( HistoType == "SampGlobal" ){XVarHisto = "Event number";}
2094 
2095  if( HistoType == "SampProj" ){XVarHisto = "ADC count";}
2096 
2097  if( HistoType == "Evol" ){XVarHisto = "Date";}
2098 
2099  if( HistoType == "EvolProj" ){XVarHisto = "Bin number";}
2100 
2101  return XVarHisto;
2102 
2103 }// end of GetXVarHisto(...)
2104 
2105 TString TEcnaParHistos::GetYVarHisto(const TString HistoCode, const TString SubDet, const Int_t& StexNumber)
2106 {
2107 // Type of the quantity as a function of the quantity code
2108 // Histo type <=> Variable in Y coordinate
2109 
2110  TString HistoType = GetHistoType(HistoCode.Data());
2111 
2112  TString YVarHisto;
2113  Int_t MaxCar = fgMaxCar;
2114  YVarHisto.Resize(MaxCar);
2115  YVarHisto = "(no Y variable info)";
2116 
2117  if( HistoType == "Global" )
2118  {
2119  if( HistoCode == "D_NOE_ChNb" ){YVarHisto = "Nb of events";}
2120  if( HistoCode == "D_Ped_ChNb" ){YVarHisto = "Pedestal";}
2121  if( HistoCode == "D_TNo_ChNb" ){YVarHisto = "Total Noise";}
2122  if( HistoCode == "D_MCs_ChNb" ){YVarHisto = "Mean Cor(s,s')";}
2123  if( HistoCode == "D_LFN_ChNb" ){YVarHisto = "Low Freq. Noise";}
2124  if( HistoCode == "D_HFN_ChNb" ){YVarHisto = "High Freq. Noise";}
2125  if( HistoCode == "D_SCs_ChNb" ){YVarHisto = "Sigma Cor(s,s')";}
2126  }
2127 
2128  if( HistoType == "Proj" )
2129  {
2130  if( StexNumber == 0 && SubDet == "EB" ){YVarHisto = "Number of towers";}
2131  if( StexNumber == 0 && SubDet == "EE" ){YVarHisto = "Number of SCs";}
2132  if( StexNumber != 0){YVarHisto = "Number of Xtals";}
2133  }
2134 
2135  if( HistoType == "H1Basic"){YVarHisto = "ADC count";}
2136 
2137  if( HistoType == "SampGlobal" ){YVarHisto = "ADC count";}
2138 
2139  if( HistoType == "SampProj" ){YVarHisto = "Number of events";}
2140 
2141  if( HistoType == "EvolProj" ){YVarHisto = "Number of runs";}
2142 
2143  if( HistoType == "Evol" )
2144  {
2145  if( HistoCode == "H_Ped_Date" ){YVarHisto = "Pedestal";}
2146  if( HistoCode == "H_TNo_Date" ){YVarHisto = "Total Noise";}
2147  if( HistoCode == "H_MCs_Date" ){YVarHisto = "Mean Cor(s,s')";}
2148  if( HistoCode == "H_LFN_Date" ){YVarHisto = "Low Freq. Noise";}
2149  if( HistoCode == "H_HFN_Date" ){YVarHisto = "High Freq. Noise";}
2150  if( HistoCode == "H_SCs_Date" ){YVarHisto = "Sigma Cor(s,s')";}
2151  }
2152 
2153 // cout << endl << "*TEcnaParHistos::GetYVarHisto(...)> HistoType = " << HistoType
2154 // << ", HistoCode = " << HistoCode
2155 // << ", StexNumber = " << StexNumber
2156 // << ", YVarHisto = " << YVarHisto << endl;
2157 
2158  return YVarHisto;
2159 
2160 }// end of GetYVarHisto(...)
2161 
2162 TString TEcnaParHistos::GetQuantityName(const TString chqcode)
2163 {
2164 // Name of the quantity as a function of the histo code
2165 
2166  TString chqname;
2167  Int_t MaxCar = fgMaxCar;
2168  chqname.Resize(MaxCar);
2169  chqname = "(no quantity name info)";
2170 
2171  if(chqcode == "D_NOE_ChNb"){chqname = "Number of events";}
2172  if(chqcode == "D_NOE_ChDs"){chqname = "Nb of events";}
2173  if(chqcode == "D_Ped_ChNb"){chqname = "Pedestal";}
2174  if(chqcode == "D_Ped_ChDs"){chqname = "Pedestal";}
2175  if(chqcode == "D_TNo_ChNb"){chqname = "Total Noise";}
2176  if(chqcode == "D_TNo_ChDs"){chqname = "Total Noise";}
2177  if(chqcode == "D_MCs_ChNb"){chqname = "Mean Cor(s,s')";}
2178  if(chqcode == "D_MCs_ChDs"){chqname = "Mean Cor(s,s')";}
2179  if(chqcode == "D_LFN_ChNb"){chqname = "Low Freq. Noise";}
2180  if(chqcode == "D_LFN_ChDs"){chqname = "Low Freq. Noise";}
2181  if(chqcode == "D_HFN_ChNb"){chqname = "High Freq. Noise";}
2182  if(chqcode == "D_HFN_ChDs"){chqname = "High Freq. Noise";}
2183  if(chqcode == "D_SCs_ChNb"){chqname = "Sigma Cor(s,s')";}
2184  if(chqcode == "D_SCs_ChDs"){chqname = "Sigma Cor(s,s')";}
2185  if(chqcode == "D_MSp_Samp"){chqname = "Sample means";}
2186  if(chqcode == "D_SSp_Samp"){chqname = "Sample sigmas";}
2187  if(chqcode == "D_Adc_EvDs"){chqname = "Sample ADC distribution";}
2188  if(chqcode == "D_Adc_EvNb"){chqname = "Sample ADC";}
2189  if(chqcode == "H_Ped_Date"){chqname = "Pedestal";}
2190  if(chqcode == "H_TNo_Date"){chqname = "Total Noise";}
2191  if(chqcode == "H_MCs_Date"){chqname = "Mean Cor(s,s')";}
2192  if(chqcode == "H_LFN_Date"){chqname = "Low Freq. Noise";}
2193  if(chqcode == "H_HFN_Date"){chqname = "High Freq. Noise";}
2194  if(chqcode == "H_SCs_Date"){chqname = "Sigma Cor(s,s')";}
2195  if(chqcode == "H_Ped_RuDs"){chqname = "Pedestal";}
2196  if(chqcode == "H_TNo_RuDs"){chqname = "Total Noise";}
2197  if(chqcode == "H_MCs_RuDs"){chqname = "Mean Cor(s,s')";}
2198  if(chqcode == "H_LFN_RuDs"){chqname = "Low Freq. Noise";}
2199  if(chqcode == "H_HFN_RuDs"){chqname = "High Freq. Noise";}
2200  if(chqcode == "H_SCs_RuDs"){chqname = "Sigma Cor(s,s')";}
2201  return chqname;
2202 }
2203 
2204 Double_t TEcnaParHistos::GetYminDefaultValue(const TString chqcode)
2205 {
2206  Double_t vmin = (Double_t)0.;
2207 
2208  if(chqcode == "H2LFccMosMatrix"){vmin = (Double_t)-1.;}
2209  if(chqcode == "H2HFccMosMatrix"){vmin = (Double_t)-1.;}
2210  if(chqcode == "H2CorccInStins" ){vmin = (Double_t)-1.;}
2211 
2212  if(chqcode == "D_NOE_ChNb"){vmin = (Double_t)0.;}
2213  if(chqcode == "D_Ped_ChNb"){vmin = (Double_t)0.;}
2214  if(chqcode == "D_TNo_ChNb"){vmin = (Double_t)0.;}
2215  if(chqcode == "D_MCs_ChNb"){vmin = (Double_t)-1.;}
2216  if(chqcode == "D_LFN_ChNb"){vmin = (Double_t)0.;}
2217  if(chqcode == "D_HFN_ChNb"){vmin = (Double_t)0.;}
2218  if(chqcode == "D_SCs_ChNb"){vmin = (Double_t)-1.;}
2219 
2220  if(chqcode == "D_NOE_ChDs"){vmin = (Double_t)0.1;}
2221  if(chqcode == "D_Ped_ChDs"){vmin = (Double_t)0.1;}
2222  if(chqcode == "D_TNo_ChDs"){vmin = (Double_t)0.1;}
2223  if(chqcode == "D_MCs_ChDs"){vmin = (Double_t)0.1;}
2224  if(chqcode == "D_LFN_ChDs"){vmin = (Double_t)0.1;}
2225  if(chqcode == "D_HFN_ChDs"){vmin = (Double_t)0.1;}
2226  if(chqcode == "D_SCs_ChDs"){vmin = (Double_t)0.1;}
2227 
2228  if(chqcode == "D_MSp_Samp"){vmin = (Double_t)0.;}
2229  if(chqcode == "D_SSp_Samp"){vmin = (Double_t)0.;}
2230 
2231  if(chqcode == "D_Adc_EvNb"){vmin = (Double_t)0.;}
2232  if(chqcode == "D_Adc_EvDs"){vmin = (Double_t)0.;}
2233 
2234  if(chqcode == "H_Ped_Date"){vmin = (Double_t)0.;}
2235  if(chqcode == "H_TNo_Date"){vmin = (Double_t)0.;}
2236  if(chqcode == "H_MCs_Date"){vmin = (Double_t)-1.;}
2237  if(chqcode == "H_LFN_Date"){vmin = (Double_t)0.;}
2238  if(chqcode == "H_HFN_Date"){vmin = (Double_t)0.;}
2239  if(chqcode == "H_SCs_Date"){vmin = (Double_t)0.;}
2240 
2241  if(chqcode == "H_Ped_RuDs"){vmin = (Double_t)0.1;}
2242  if(chqcode == "H_TNo_RuDs"){vmin = (Double_t)0.1;}
2243  if(chqcode == "H_MCs_RuDs"){vmin = (Double_t)0.1;}
2244  if(chqcode == "H_LFN_RuDs"){vmin = (Double_t)0.1;}
2245  if(chqcode == "H_HFN_RuDs"){vmin = (Double_t)0.1;}
2246  if(chqcode == "H_SCs_RuDs"){vmin = (Double_t)0.1;}
2247 
2248  return vmin;
2249 }
2250 
2251 Double_t TEcnaParHistos::GetYmaxDefaultValue(const TString chqcode)
2252 {
2253  Double_t vmax = (Double_t)0.;
2254 
2255  if( fFlagSubDet == "EB" )
2256  {
2257  if(chqcode == "H2LFccMosMatrix" ){vmax = (Double_t)1.;}
2258  if(chqcode == "H2HFccMosMatrix" ){vmax = (Double_t)1.;}
2259  if(chqcode == "H2CorccInStins" ){vmax = (Double_t)1.;}
2260 
2261  if(chqcode == "D_NOE_ChNb"){vmax = (Double_t)500.;}
2262  if(chqcode == "D_Ped_ChNb"){vmax = (Double_t)500.;}
2263  if(chqcode == "D_TNo_ChNb"){vmax = (Double_t)2.5;}
2264  if(chqcode == "D_LFN_ChNb"){vmax = (Double_t)2.5;}
2265  if(chqcode == "D_HFN_ChNb"){vmax = (Double_t)2.5;}
2266  if(chqcode == "D_MCs_ChNb"){vmax = (Double_t)1.;}
2267  if(chqcode == "D_SCs_ChNb"){vmax = (Double_t)1.5;}
2268 
2269  if(chqcode == "D_NOE_ChDs"){vmax = (Double_t)5000.;}
2270  if(chqcode == "D_Ped_ChDs"){vmax = (Double_t)5000.;}
2271  if(chqcode == "D_TNo_ChDs"){vmax = (Double_t)5000.;}
2272  if(chqcode == "D_LFN_ChDs"){vmax = (Double_t)5000.;}
2273  if(chqcode == "D_HFN_ChDs"){vmax = (Double_t)5000.;}
2274  if(chqcode == "D_MCs_ChDs"){vmax = (Double_t)5000.;}
2275  if(chqcode == "D_SCs_ChDs"){vmax = (Double_t)5000.;}
2276 
2277  if(chqcode == "D_MSp_Samp"){vmax = (Double_t)500.;}
2278  if(chqcode == "D_SSp_Samp"){vmax = (Double_t)5.;}
2279 
2280  if(chqcode == "D_Adc_EvNb"){vmax = (Double_t)500.;}
2281  if(chqcode == "D_Adc_EvDs"){vmax = (Double_t)500.;}
2282 
2283  if(chqcode == "H_Ped_Date"){vmax = (Double_t)500.;}
2284  if(chqcode == "H_TNo_Date"){vmax = (Double_t)5.;}
2285  if(chqcode == "H_LFN_Date"){vmax = (Double_t)5.;}
2286  if(chqcode == "H_HFN_Date"){vmax = (Double_t)5.;}
2287  if(chqcode == "H_MCs_Date"){vmax = (Double_t)1.;}
2288  if(chqcode == "H_SCs_Date"){vmax = (Double_t)0.5;}
2289 
2290  if(chqcode == "H_Ped_RuDs"){vmax = (Double_t)1000.;}
2291  if(chqcode == "H_TNo_RuDs"){vmax = (Double_t)1000.;}
2292  if(chqcode == "H_LFN_RuDs"){vmax = (Double_t)1000.;}
2293  if(chqcode == "H_HFN_RuDs"){vmax = (Double_t)1000.;}
2294  if(chqcode == "H_MCs_RuDs"){vmax = (Double_t)1000.;}
2295  if(chqcode == "H_SCs_RuDs"){vmax = (Double_t)1000.;}
2296  }
2297 
2298  if( fFlagSubDet == "EE" )
2299  {
2300  if(chqcode == "H2LFccMosMatrix"){vmax = (Double_t)1.;}
2301  if(chqcode == "H2HFccMosMatrix"){vmax = (Double_t)1.;}
2302  if(chqcode == "H2CorccInStins" ){vmax = (Double_t)0.05;}
2303 
2304  if(chqcode == "D_NOE_ChNb"){vmax = (Double_t)500.;}
2305  if(chqcode == "D_Ped_ChNb"){vmax = (Double_t)500.;}
2306  if(chqcode == "D_TNo_ChNb"){vmax = (Double_t)5.;}
2307  if(chqcode == "D_LFN_ChNb"){vmax = (Double_t)5.;}
2308  if(chqcode == "D_HFN_ChNb"){vmax = (Double_t)5.;}
2309  if(chqcode == "D_MCs_ChNb"){vmax = (Double_t)1.;}
2310  if(chqcode == "D_SCs_ChNb"){vmax = (Double_t)2.5;}
2311 
2312  if(chqcode == "D_NOE_ChDs"){vmax = (Double_t)1000.;}
2313  if(chqcode == "D_Ped_ChDs"){vmax = (Double_t)1000.;}
2314  if(chqcode == "D_TNo_ChDs"){vmax = (Double_t)1000.;}
2315  if(chqcode == "D_LFN_ChDs"){vmax = (Double_t)1000.;}
2316  if(chqcode == "D_HFN_ChDs"){vmax = (Double_t)1000.;}
2317  if(chqcode == "D_MCs_ChDs"){vmax = (Double_t)1000.;}
2318  if(chqcode == "D_SCs_ChDs"){vmax = (Double_t)1000.;}
2319 
2320  if(chqcode == "D_MSp_Samp"){vmax = (Double_t)500.;}
2321  if(chqcode == "D_SSp_Samp"){vmax = (Double_t)5.;}
2322 
2323  if(chqcode == "D_Adc_EvNb"){vmax = (Double_t)500.;}
2324  if(chqcode == "D_Adc_EvDs"){vmax = (Double_t)500.;}
2325 
2326  if(chqcode == "H_Ped_Date"){vmax = (Double_t)500.;}
2327  if(chqcode == "H_TNo_Date"){vmax = (Double_t)5.;}
2328  if(chqcode == "H_LFN_Date"){vmax = (Double_t)5.;}
2329  if(chqcode == "H_HFN_Date"){vmax = (Double_t)5.;}
2330  if(chqcode == "H_MCs_Date"){vmax = (Double_t)1.;}
2331  if(chqcode == "H_SCs_Date"){vmax = (Double_t)0.5;}
2332 
2333  if(chqcode == "H_Ped_RuDs"){vmax = (Double_t)1000.;}
2334  if(chqcode == "H_TNo_RuDs"){vmax = (Double_t)1000.;}
2335  if(chqcode == "H_LFN_RuDs"){vmax = (Double_t)1000.;}
2336  if(chqcode == "H_HFN_RuDs"){vmax = (Double_t)1000.;}
2337  if(chqcode == "H_MCs_RuDs"){vmax = (Double_t)1000.;}
2338  if(chqcode == "H_SCs_RuDs"){vmax = (Double_t)1000.;}
2339  }
2340  return vmax;
2341 }
2342 //================== End of TEcnaParHistos.cc ========================
TPaveText * SetPaveTowersXY(const Int_t &, const Int_t &)
TPaveText * SetPaveSCsXY(const Int_t &, const Int_t &)
UInt_t SetCanvasHeight(const TString, const TString)
Int_t fNbOfRunsDisplayed
Int_t MaxCrysIYInDee()
TPaveText * SetPaveStinsXY(const Int_t &, const Int_t &)
TString GetSCQuadFrom1DeeSCEcna(const Int_t &)
Float_t AxisTitleOffset()
Double_t fMarginAutoMinMax
void SetViewHistoPadMargins(const TString, const TString)
UInt_t CanvasFormatW(const TString)
Color_t ColorDefinition(const TString)
Float_t DeeNameOffsetX(const Int_t &)
TString GetSMHalfBarrel(const Int_t &)
Int_t fMaxNbOfRunsInLists
Float_t DeeNumberOffsetX(const TString, const Int_t &)
TString GetEEDeeType(const Int_t &)
TPaveText * SetPaveLVRB(const Int_t &, const Int_t &)
tuple histo
Definition: trackerHits.py:12
TPaveText * SetPaveDee(const TString, const Int_t &, const TString)
Double_t GetYmaxDefaultValue(const TString)
Float_t AxisTitleSize()
TPaveText * SetPaveAnalysisRun(const TString, const Int_t &, const Int_t &, const TString, const Int_t &, const Int_t &, const TString)
TString GetTowerLvrbType(const Int_t &)
Float_t AxisLabelOffset()
void SetEcalSubDetector(const TString, const TEcnaParEcal *, const TEcnaNumbering *)
long double first_evt
Int_t MaxNbOfRunsInLists()
Color_t ColorTab(const Int_t &)
TPaveText * SetPaveEvolRuns(const Int_t &, const TString, const Int_t &, const TString, const TString, const TString)
TString GetYVarHisto(const TString, const TString, const Int_t &)
void SetColorPalette(const TString)
TPaveText * SetPaveCxyz(const Int_t &)
Int_t GetDSSCFrom1DeeSCEcna(const Int_t &, const Int_t &, const Int_t &)
TPaveText * SetOptionSamePaveBorder(const TString, const TString)
Float_t AxisTickSize()
TPaveText * SetPaveNbOfEvts(const Int_t &, const TString, const TString, const TString)
unsigned int offset(bool)
TPaveText * SetPaveTower(const Int_t &)
Double_t BoxRightX(const TString)
TEcnaParEcal * fEcal
Int_t GetDSFrom1DeeSCEcna(const Int_t &, const Int_t &)
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
TPaveText * SetPaveCrystal(const Int_t &, const Int_t &, const Int_t &)
TString fFlagSubDet
UInt_t SetCanvasWidth(const TString, const TString)
unsigned int UInt_t
Definition: FUTypes.h:12
Definition: adjgraph.h:15
Float_t DeeOffsetX(const TString, const Int_t &)
Double_t BoxBottomY(const TString)
TPaveText * SetPaveStin(const Int_t &, const Int_t &)
TString GetQuantityName(const TString)
TPaveText * SetPaveSM(const TString, const Int_t &, const TString)
TString GetXVarHisto(const TString, const TString, const Int_t &)
TPaveText * SetPaveStex(const TString, const Int_t &)
Int_t GetNbOfRunsDisplayed()
TPaveText * SetPaveCrystalSample(const Int_t &, const Int_t &, const Int_t &, const Int_t &)
void SetViewHistoStyle(const TString)
void SetViewHistoOffsets(TH1D *, const TString, const TString)
Double_t BoxLeftX(const TString)
TPaveText * SetPaveEvolNbOfEvtsAna(const TString, const Int_t &, const Int_t &, const Int_t &, const TString)
void SetViewHistoStats(TH1D *, const TString)
TPaveText * SetPaveGeneralComment(const TString)
Int_t MaxSMInEB()
Double_t GetMarginAutoMinMax()
TString GetHistoType(const TString)
Double_t GetYminDefaultValue(const TString)
void SetViewGraphOffsets(TGraph *, const TString)
TString GetEcalSubDetector()
Int_t GetMaxNbOfColors()
Int_t MaxStinHocoInStex()
TEcnaNumbering * fEcalNumbering
TPaveText * SetPaveSC(const Int_t &, const Int_t &)
Float_t AxisLabelSize()
TPaveText * SetPaveStas()
Double_t BoxTopY(const TString)
Color_t SetColorsForNumbers(const TString)
UInt_t CanvasFormatH(const TString)
#define comment(par)
Definition: vmac.h:162