|
||||
File indexing completed on 2024-04-06 12:05:38
0001 #include <iostream> 0002 #include <fstream> 0003 #include "TH1.h" 0004 #include "TH2.h" 0005 #include "TH1F.h" 0006 #include "TH2F.h" 0007 #include "TCanvas.h" 0008 #include "TROOT.h" 0009 #include <TMath.h> 0010 #include "TStyle.h" 0011 #include "TSystem.h" 0012 #include "TLegend.h" 0013 #include "TText.h" 0014 #include "TAxis.h" 0015 #include "TFile.h" 0016 #include "TLine.h" 0017 #include "TGraph.h" 0018 #include <TPaveText.h> 0019 #include <TPostScript.h> 0020 #include <TClass.h> 0021 #include <TLatex.h> 0022 #include <TFrame.h> 0023 #include <TPad.h> 0024 #include <TGaxis.h> 0025 0026 #include "TGraphErrors.h" 0027 #include "TF1.h" 0028 #include "TArrow.h" 0029 0030 // 0031 using namespace std; 0032 // 0033 // 0034 int main(int argc, char* argv[]) { 0035 cout << "********************************************************************* START job " << endl; 0036 //______________________________________________________________________________________________________________________________ 0037 //TCanvas *c1; 0038 TGraph* gr1; 0039 TGraph* gr2; 0040 TGraph* gr3; 0041 TGraph* gr4; 0042 TGraph* gr5; 0043 TGraph* gr6; 0044 TGraph* gr7; 0045 TGraph* gr8; 0046 TGraph* gr9; 0047 TGraphErrors* ge1; 0048 TGraphErrors* ge2; 0049 TGraphErrors* ge3; 0050 TGraphErrors* ge4; 0051 TGraphErrors* ge5; 0052 TGraphErrors* ge6; 0053 TGraphErrors* ge7; 0054 TGraphErrors* ge8; 0055 TGraphErrors* ge9; 0056 0057 // 0058 const Int_t NMethods = 14; // total number of Methods (all-together 37 methods) 0059 const Int_t NMethodsStart = 0; // since which method to start ( min= 0) 0060 const Int_t NMethodsToUse = 13; // choose Number of methods to use ( max= 36) 0061 // 0062 TString MethodName[NMethods] = {"PLOT0", 0063 "PLOT1", 0064 "PLOT2", 0065 "PLOT3", 0066 "PLOT4", 0067 "PLOT5", 0068 "PLOT6", 0069 "PLOT7", 0070 "PLOT8", 0071 "PLOT9", 0072 "PLOT10", 0073 "PLOT11", 0074 "PLOT12", 0075 "PLOT13"}; 0076 //______________________________________________________________________________________________________________________________ 0077 //______________________________________________________________________________________________________________________________ 0078 //______________________________________________________________________________________________________________________________ 0079 //______________________________________________________________________________________________________________________________ 0080 //______________________________________________________________________________________________________________________________ 0081 //______________________________________________________________________________________________________________________________ 0082 //______________________________________________________________________________________________________________________________ WORKABLE: 0083 0084 //______________________________________________________________________________________________________________________________ 22+161=183 0085 // (306249 -> 07.11.2017) 164 + DEL=23+31+11= 65 (307782 -> 11.01.2018) = 229 0086 // const Int_t NMAXM =22;// 0087 // const Int_t NMAXM =17;// 0088 0089 // const Int_t NMAXM =14;// 0090 // const Int_t NMAXM =553;// 0091 // const Int_t NMAXM =202;// 0092 // const Int_t NMAXM =115;// 0093 // const Int_t NMAXM =97;// 0094 const Int_t NMAXM = 73; // 0095 0096 cout << "********************************************************************* NMAXM = " << NMAXM << endl; 0097 0098 // const Int_t NMAXM =2;// 0099 // const Int_t NMAXM =4;// 0100 // const Int_t NMAXM =1;// 0101 TString LEDrunsM[NMAXM] = { 0102 0103 /* 0104 // 2017 HEP17 shunt6 0105 "295401","295675","296185","296808","297082","297522","297571","297630","297687","298863", 0106 "299468","302183","302246","302585","304276","304432","304526","305142","305485","305711", 0107 "305886","306249" 0108 */ 0109 0110 // 2018 shunt6 0111 // "308784","308882","309238","309318","309321", 0112 // "309370","309573","309704","310262","310456", 0113 // "310847","310973","311457","311566" 0114 // 12.03.2018 0115 0116 /* 0117 // 2018 all 553 runs LED 0118 "308784","308786","308788","308792","308821","308839","308851","308870","308881","308882","308937","308959","308960","308995","309008","309009","309010","309024","309036","309037","309059","309064","309069","309122","309123", 0119 "309133","309134","309141","309144","309145","309152","309154","309156","309161","309162","309175","309237","309238","309318","309321","309322","309342","309370","309372","309373","309411","309444","309445","309538","309539", 0120 "309545","309546","309565","309573","309592","309596","309646","309669","309670","309671","309672","309674","309678","309704","309714","309723","309727","309752","309819","309820","309821","309823","309824","309825","309833", 0121 "309850","309869","309870","309873","309875","309877","309878","309880","309923","309924","309939","309940","309945","310008","310043","310052","310106","310108","310179","310181","310182","310183","310185","310188","310192", 0122 "310197","310201","310202","310204","310222","310223","310226","310229","310244","310256","310262","310268","310285","310334","310340","310341","310348","310349","310363","310382","310387","310403","310410","310427","310452", 0123 "310454","310456","310604","310806","310807","310847","310947","310948","310949","310952","310968","310973","311327","311334","311335","311338","311344","311347","311349","311353","311355","311358","311360","311361","311362", 0124 "311363","311364","311366","311367","311369","311413","311454","311456","311457","311551","311566","311573","311753","311754","311759","311767","311783","311858","311901","312004","312009","312011","312013","312029","312031", 0125 "312040","312051","312052","312054","312057","312058","312153","312155","312156","312157","312160","312185","312189","312200","312204","312211","312253","312281","312314","312316","312320","312333","312341","312372","312374", 0126 "312375","312379","312384","312386","312392","312458","312461","312462","312466","312467","312469","312470","312471","312472","312482","312483","312484","312486","312487","312489","312524","312571","312575","312579","312618", 0127 "312622","312626","312717","312756","312757","312775","312778","312870","312872","312874","312879","312880","312884","312886","312889","312953","313009","313049","313051","313064","313067","313072","313090","313149","313158", 0128 "313174","313194","313232","313259","313260","313263","313264","313307","313335","313338","313340","313344","313371","313373","313375","313430","313479","313493","313495","313498","313625","313632","313890","313891","313897", 0129 "313904","313915","313918","313919","314046","314097","314100","314103","314106","314111","314298","314308","314313","314419","314420","314422","314423","314424","314425","314426","314430","314431","314432","314542","314595", 0130 "314597","314608","314695","314696","314769","314770","314776","314777","314779","314780","314782","314786","314795","314800","314826","314827","314895","314896","314897","314898","314899","314943","314944","314948","314949", 0131 "315012","315016","315021","315023","315024","315040","315073","315129","315130","315132","315213","315285","315437","315579","315594","315657","315660","315735","315746","315748","315749","315754","315757","315812","315816", 0132 "315984","316129","316316","316410","316489","316530","316584","316632","316677","316815","316826","317116","317119","317191","317193","317229","317268","317271","317273","317326","317363","317367","317398","317401","317444", 0133 "317448","317601","317606","317607","317609","317610","317611","317612","317613","317617","317718","317719","317722","317728","317785","317790","317977","317981","317984","318207","318208","318211","318217","318222","318235", 0134 "318758","318840","319198","319213","319401","319517","319519","319520","319564","319610","319612","319734","319771","319774","319857","319964","319969","320108","320117","320125","320158","320203","320205","320220","320348", 0135 "320358","320371","320374","320577","320579","320871","320873","320892","320944","320947","320949","320950","320952","321019","321033","321036","321187","321197","321329","321339","321359","321371","321445","321447","321514", 0136 "321534","321549","321552","321807","321853","321874","321927","322166","322255","322261","322338","322415","322419","322718","322719","322720","322721","322725","322781","322782","322801","322843","322853","322876","322931", 0137 "322995","323016","323038","323308","323314","323502","323530","323531","323567","323579","323613","323737","323742","324030","324032","324111","324138","324219","324225","324296","324303","324591","324705","324919","324934", 0138 "325141","325267","325433","325446","325453","325456","325457","325488","325498","325551","325640","325641","325748","325757","325787","325790","326234","326324","326780","326871","326875","327091","327283","327284","327288", 0139 "327438","327441","327443","327547","327548","327552","327576","327577","327579","327580","327581","327591","327595","327616","327620","327656","327660","327670","327686","327687","327688","327689","327690","327691","327709", 0140 "327711","327762","327785" 0141 */ 0142 /* 0143 // 2018 all 205 runs LED 0144 "315812","315816","315984","316129","316316","316410","316489","316530","316584","316632","316677","316815","316826","317116","317119","317191","317193","317229","317268","317271","317273","317326","317363","317367","317398", 0145 "317401","317444","317448","317601","317606","317607","317609","317610","317611","317612","317613","317617","317718","317719","317722","317785","317790","317977","317981","317984","318207","318208","318211","318217","318222", 0146 "318235","318758","318840","319198","319213","319401","319517","319519","319520","319564","319610","319612","319734","319771","319774","319857","319964","319969","320108","320117","320125","320158","320203","320205","320220", 0147 "320348","320358","320371","320374","320577","320579","320871","320873","320892","320944","320947","320949","320950","320952","321019","321033","321036","321187","321197","321329","321339","321359","321371","321445","321447", 0148 "321514","321534","321807","321853","321874","321927","322166","322255","322261","322338","322415","322419","322718","322719","322720","322721","322725","322781","322782","322801","322843","322853","322876","322931","322995", 0149 "323016","323038","323308","323314","323502","323530","323531","323567","323579","323613","323737","323742","324030","324032","324111","324138","324219","324225","324296","324303","324591","324705","324919","324934","325141", 0150 "325267","325433","325446","325453","325456","325457","325488","325498","325551","325640","325641","325748","325757","325787","325790","326234","326324","326780","326871","326875","327091","327283","327284","327288","327438", 0151 "327441","327443","327547","327548","327552","327576","327577","327579","327580","327581","327591","327595","327616","327620","327656","327660","327670","327686","327687","327688","327689","327690","327691","327709","327711", 0152 "327762","327785" 0153 */ 0154 0155 /* 0156 // 2018 117 led runs 0157 "315812","315984","316826","317116","317193","317268","317271","317273","317363","317398","317401","317444","317606","317607","317609","317610","317611","317612","317613","317617","317785","317981","317984","318207","318208", 0158 "318235","318758","318840","319198","319401","319517","319519","319520","319564","319612","319734","319771","319774","319857","319969","320117","320158","320203","320205","320348","320579","320873","320892","320944","320952", 0159 "321019","321036","321187","321339","321359","321371","321447","321514","321807","321853","321874","321927","322166","322261","322338","322419","322718","322719","322720","322721","322725","322781","322782","322801","322853", 0160 "322876","322931","322995","323308","323314","323502","323530","323531","323579","323613","323742","324030","324032","324138","324225","324296","324919","325141","325433","325446","325456","325488","325498","325551", 0161 "325757","325787","326234","326780","326875","327288","327438","327552","327579", "327591","327595","327616","327620","327656","327660","327670" 0162 */ 0163 /* 0164 "315812","315984","316826","317116","317193","317268","317271","317273","317363","317398","317401","317444","317606","317607","317609","317610","317611","317612","317613","317617","317785","318235","318758","318840","319198", 0165 "319401","319517","319519","319520","319564","319612","319734","319771","319774","319857","319969","320117","320158","320203","320205","320348","320579","320873","320892","320944","320952","321019","321036","321187","321339", 0166 "321359","321371","321447","321514","321807","321853","321874","321927","322166","322261","322338","322419","322718","322719","322720","322721","322725","322781","322782","322801","323308","323314","323502","323530","323531", 0167 "323579","323613","323742","324030","324032","324138","324225","324296","324919","325141","325787","326234","326780","326875","327288","327438","327552","327579","327591","327595","327616","327620" 0168 */ 0169 "315812", "315984", "316826", "317116", "317193", "317268", "317271", "317273", "317363", "317444", "317606", 0170 "317607", "317609", "317610", "317611", "317612", "317613", "317617", "317785", "318758", "319198", "319401", 0171 "319517", "319519", "319520", "319564", "319612", "319734", "319771", "319774", "319857", "319969", "320117", 0172 "320158", "320203", "320205", "320348", "320579", "320873", "320892", "320952", "321019", "321036", "321187", 0173 "321339", "321359", "321371", "321447", "321514", "321853", "321874", "322781", "322782", "323314", "323502", 0174 "323579", "323613", "323742", "324030", "324032", "324138", "324225", "324296", "324919", "325141", "325787", 0175 "326234", "326780", "326875", "327288", "327438", "327552", "327579" 0176 0177 //////////////////////////// shunt1 0178 0179 // 2018 shunt1: 0180 // "310244","310387","310587","310650" 0181 // 0182 // "309880" 0183 0184 }; 0185 cout << "********************************************************************* first massives defined " << endl; 0186 /////////////////////////////// 0187 /* 0188 // 2017 HEP17 shunt6 0189 1., 4., 10., 18., 21., 30., 31., 32., 33., 46., 0190 54., 97., 98., 106., 128., 130., 132., 142., 149., 152., 0191 156., 164. 0192 */ 0193 Float_t X0M[NMAXM] = { 0194 // 2018 shunt6 led runs delta 0195 /* 0196 0., 2., 17., 22., 23., 24., 24., 24., 27., 28., 28., 28., 32., 32., 32., 32., 32., 32., 32., 32., 38., 42., 42., 45., 45., 0197 45., 51., 52., 58., 63., 65., 65., 65., 66., 68., 70., 71., 71., 72., 74., 77., 78., 79., 79., 80., 85., 90., 91., 92., 92., 0198 93., 93., 98., 101., 101., 101., 104., 106., 111., 112., 112., 114., 119., 121., 122., 123., 128., 128., 128., 128., 128., 129., 129., 130., 133., 0199 133., 134., 134., 138., 138., 141., 142., 142., 142., 143., 146., 150., 150., 151., 153., 155., 165., 169., 175., 175., 175., 176., 176., 177., 0200 179., 179., 183., 193., 195., 203., 205., 208., 209., 210., 210., 210., 210., 212., 212., 212. 0201 */ 0202 /* 0203 0., 2., 17., 22., 23., 24., 24., 24., 27., 28., 28., 28., 32., 32., 32., 32., 32., 32., 32., 32., 38., 45., 51., 52., 58., 0204 63., 65., 65., 65., 66., 68., 70., 71., 71., 72., 74., 77., 78., 79., 79., 80., 85., 90., 91., 92., 92., 93., 93., 98., 101., 0205 101., 101., 104., 106., 111., 112., 112., 114., 119., 121., 122., 123., 128., 128., 128., 128., 128., 129., 129., 130., 138., 138., 141., 142., 142., 0206 142., 143., 146., 150., 150., 151., 153., 155., 165., 169., 179., 183., 193., 195., 203., 205., 208., 209., 210., 210., 210., 210., 0207 */ 0208 0209 0., 2., 17., 22., 23., 24., 24., 24., 27., 29., 32., 32., 32., 32., 32., 32., 32., 32., 38., 0210 51., 58., 63., 65., 65., 65., 66., 68., 70., 71., 71., 72., 74., 77., 78., 79., 79., 80., 85., 0211 90., 91., 92., 93., 93., 98., 101., 101., 101., 104., 106., 112., 112., 129., 129., 138., 141., 142., 143., 0212 146., 150., 150., 151., 153., 155., 165., 169., 179., 183., 193., 195., 203., 205., 208., 209. 0213 0214 /* 0215 // 2018 shunt6 0216 // 1., 2., 8., 9., 10., 0217 // 13., 14., 20., 23., 25., 0218 // 31., 34., 39., 41. 0219 0220 0221 // 2018 all 553 0222 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25., 0223 26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., 50., 0224 51., 52., 53., 54., 55., 56., 57., 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., 70., 71., 72., 73., 74., 75., 0225 76., 77., 78., 79., 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., 100., 0226 101., 102., 103., 104., 105., 106., 107., 108., 109., 110., 111., 112., 113., 114., 115., 116., 117., 118., 119., 120., 121., 122., 123., 124., 125., 0227 126., 127., 128., 129., 130., 131., 132., 133., 134., 135., 136., 137., 138., 139., 140., 141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 0228 151., 152., 153., 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164., 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175., 0229 176., 177., 178., 179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189., 190., 191., 192., 193., 194., 195., 196., 197., 198., 199., 200., 0230 201., 202., 203., 204., 205., 206., 207., 208., 209., 210., 211., 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222., 223., 224., 225., 0231 226., 227., 228., 229., 230., 231., 232., 233., 234., 235., 236., 237., 238., 239., 240., 241., 242., 243., 244., 245., 246., 247., 248., 249., 250., 0232 251., 252., 253., 254., 255., 256., 257., 258., 259., 260., 261., 262., 263., 264., 265., 266., 267., 268., 269., 270., 271., 272., 273., 274., 275., 0233 276., 277., 278., 279., 280., 281., 282., 283., 284., 285., 286., 287., 288., 289., 290., 291., 292., 293., 294., 295., 296., 297., 298., 299., 300., 0234 301., 302., 303., 304., 305., 306., 307., 308., 309., 310., 311., 312., 313., 314., 315., 316., 317., 318., 319., 320., 321., 322., 323., 324., 325., 0235 326., 327., 328., 329., 330., 331., 332., 333., 334., 335., 336., 337., 338., 339., 340., 341., 342., 343., 344., 345., 346., 347., 348., 349., 350., 0236 351., 352., 353., 354., 355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 365., 366., 367., 368., 369., 370., 371., 372., 373., 374., 375., 0237 376., 377., 378., 379., 380., 381., 382., 383., 384., 385., 386., 387., 388., 389., 390., 391., 392., 393., 394., 395., 396., 397., 398., 399., 400., 0238 401., 402., 403., 404., 405., 406., 407., 408., 409., 410., 411., 412., 413., 414., 415., 416., 417., 418., 419., 420., 421., 422., 423., 424., 425., 0239 426., 427., 428., 429., 430., 431., 432., 433., 434., 435., 436., 437., 438., 439., 440., 441., 442., 443., 444., 445., 446., 447., 448., 449., 450., 0240 451., 452., 453., 454., 455., 456., 457., 458., 449., 460., 461., 462., 463., 464., 465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475., 0241 476., 477., 478., 479., 480., 481., 482., 483., 484., 485., 486., 487., 488., 489., 490., 491., 492., 493., 494., 495., 496., 497., 498., 499., 500., 0242 501., 502., 503., 504., 505., 506., 507., 508., 509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519., 520., 521., 522., 523., 524., 525., 0243 526., 527., 528., 529., 530., 531., 532., 533., 534., 535., 536., 537., 538., 539., 540., 541., 542., 543., 544., 545., 546., 547., 548., 549., 550., 0244 551., 552., 553. 0245 0246 0247 0248 //////////////////////////// shunt1 0249 0250 // 2018 shunt1: 0251 // 1., 7., 11., 31. 0252 0253 //850.,900.,950.,1000.,1050.,1100.,1150.,1200. 0254 */ 0255 }; // days of year time points (abscissa) !!! 0256 /* 0257 // Float_t X0M[NMAXM]; 0258 for(int kk1 = 0; kk1<NMAXM; kk1++){ 0259 // X0M[kk1] = kk1+1.; 0260 ++X0M[kk1];// delta+1 0261 }// 0262 */ 0263 cout << "********************************************************************* both massives are defined " << endl; 0264 //______________________________________________________________________________________________________________________________ TEST 0265 //______________________________________________________________________________________________________________________________ TEST 0266 //______________________________________________________________________________________________________________________________ TEST 0267 //______________________________________________________________________________________________________________________________ TEST 0268 /* 0269 const Int_t NMAXM =1;// 0270 TString LEDrunsM[NMAXM] = { 0271 // "309445" 0272 "309714" 0273 }; 0274 /////////////////////////////// 0275 Float_t X0M[NMAXM] = { 0276 1. 0277 };// days of year time points (abscissa) !!! 0278 */ 0279 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0280 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0281 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0282 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0283 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0284 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0285 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0286 //______________________________________________________________________________ 0287 //______________________________________________________________________________ 0288 //______________________________________________________________________________ 0289 //______________________________________________________________________________ 0290 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0291 // 2018 only: yearcase=0 for test 0292 0293 // 2016 only: yearcase=1 0294 // 2017 only: yearcase=2 0295 // 20167 : yearcase=3 0296 // 2018 only: yearcase=4 0297 // 201678 : yearcase=5 0298 0299 //define yearcase: 0300 // ____________________________________________________________________________ THIS line below is MAIN to make a yearcase selection !!!!!!!!!!!!!!!!!!!!!!!!!! 0301 const Int_t yearcase = 0; 0302 // 0303 cout << "************************************** yearcase = " << yearcase << endl; 0304 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0305 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0306 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0307 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0308 // Int_t verbosity = 2;// 0309 // Int_t verbosity = 3;// 0310 // Int_t verbosity = 4;// to clarify # channels in HEP17 0311 Int_t verbosity = 0; // 0312 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0313 0314 const Int_t flagHEP17selection = 2; // -> ALL channels w/o bad ones (was used for final !!! result) 0315 // const Int_t flagHEP17selection = 1;// ==1 HEP17; 0316 // const Int_t flagHEP17selection = 0;// -> ALL channels (used to see 2D plots of bad channels) 0317 0318 cout << "************************************** flagHEP17selection = " << flagHEP17selection << endl; 0319 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0320 //______________________________________________________________________________ 0321 0322 //______________________________________________________________________________ 0323 //______________________________________________________________________________ 0324 // 0325 //---=[ SetCanvasDef ]=---------------- 0326 // Create a new canvas. 0327 //TCanvas *c1 = new TCanvas("c1","GSM",10,10,900,700); 0328 0329 //TCanvas *c1 = new TCanvas("c1","GSM",20,50,920,850); 0330 TCanvas* c1 = new TCanvas("c1", "GSM", 10, 10, 1010, 1010); 0331 0332 //TCanvas *c1 = new TCanvas("c1","GSM",200,10,700,900); 0333 //TCanvas *c1 = new TCanvas("c1","Hcal4test",200,10,700,900); 0334 0335 c1->Range(0, 0, 25, 18); 0336 //c1->SetFillColor(40); 0337 c1->SetFillColor(0); 0338 c1->Clear(); 0339 0340 TLatex* t = new TLatex(); 0341 t->SetTextFont(32); 0342 //t->SetTextColor(4); 0343 t->SetTextSize(0.03); 0344 t->SetTextAlign(12); 0345 //______________________________________________________________________________ 0346 t->DrawLatex( 0347 0.9, 15.5, "Time dependence of full Amplitude averaged over events of each LED run for some random HE channels"); 0348 0349 //----------------------------------------------------------------------------------------------------- 0350 // 0351 // x1 y1 x2 y2 0352 // pad1->DrawFrame(1, 0.8, 370, 1.2);// all 0353 0354 // 0355 // Float_t x1=0.00; Float_t x2=170.00; 0356 // Float_t x1=0.00; Float_t x2=850.00; 0357 0358 // Float_t x1=0.00; Float_t x2=45.00; 0359 Float_t x1 = 0.00; 0360 Float_t x2 = 215.0; 0361 0362 // y(ordinate) for All Days 0363 // Float_t y1=0.985; Float_t y2= 1.015; 0364 Float_t y1 = 0.9; 0365 Float_t y2 = 1.1; 0366 0367 // 0368 // x(abscissa) for Days 0369 Float_t RrangeMIN = y1; 0370 Float_t RrangeMAX = y2; 0371 0372 // 0373 Float_t xx1 = 0.35; 0374 Float_t xx2 = 0.55; 0375 Float_t yy1 = 0.76; 0376 Float_t yy2 = 0.88; 0377 // 0378 cout << "************************************** RrangeMIN = " << RrangeMIN << " RrangeMAX = " << RrangeMAX << endl; 0379 0380 //----------------------------------------------------------------------------------------------------- 0381 //----------------------------------------------------------------------------------------------------- 0382 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0383 const Int_t NDEP = 8; 0384 const Int_t NETA0 = 83; 0385 const Int_t NPHI0 = 73; 0386 // 0387 Double_t mapRATIO[NDEP][NETA0][NPHI0]; 0388 Double_t mapRATIOD2[NETA0][NPHI0]; 0389 Int_t mapRATIOD20[NETA0][NPHI0]; 0390 0391 //Double_t normalization[NDEP][NETA0][NPHI0]; 0392 Double_t normalization[NETA0][NPHI0]; 0393 cout << "************************************** NDEP = " << NDEP << " NETA0 = " << NETA0 << " NPHI0 = " << NPHI0 0394 << endl; 0395 0396 // define max size of massives (to be just NMAXSIZE ): 0397 Int_t NMAXSIZE = NMAXM; 0398 Float_t X0[NMAXSIZE]; 0399 TString LEDruns[NMAXSIZE]; 0400 Double_t XX[NMAXSIZE]; 0401 Double_t XXE[NMAXSIZE]; 0402 Double_t XXX[NMAXSIZE]; 0403 Double_t XXXE[NMAXSIZE]; 0404 Int_t indWAS[NMAXSIZE]; 0405 0406 Double_t YY[NMAXSIZE]; 0407 Double_t YYE[NMAXSIZE]; 0408 cout << "************************************** NMAXSIZE = " << NMAXSIZE << " NMAXM = " << NMAXM << endl; 0409 //---------------------------------------------------------------------- 0410 0411 Double_t GSMRATIOD2[NMAXSIZE][NETA0][NPHI0]; 0412 0413 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0414 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0415 ////////////////////////////////////////////////////// 0416 // define where to run inside massives above: 0417 // yearcase=0 0418 Int_t NMINmM = 0; 0419 Int_t NMAXmM = NMAXSIZE - 1; 0420 Int_t NMAXaM = NMAXSIZE; 0421 if (yearcase == 1) { 0422 // 2016 only: yearcase=1 0423 NMINmM = 0; 0424 NMAXmM = 46; 0425 NMAXaM = 47; // M 0426 } else if (yearcase == 2) { 0427 // 2017 only:: yearcase=2 0428 NMINmM = 53; 0429 NMAXmM = 93; 0430 NMAXaM = 41; // M 0431 } else if (yearcase == 3) { 0432 // 20167 only:: yearcase=3 0433 NMINmM = 0; 0434 NMAXmM = 93; 0435 NMAXaM = 94; // M 0436 } else if (yearcase == 4) { 0437 // 2018 only:: yearcase=4 0438 NMINmM = 94; 0439 NMAXmM = -1; 0440 NMAXaM = -1; // M 0441 } else if (yearcase == 5) { 0442 // 20168 only:: yearcase=5 0443 NMINmM = 0; 0444 NMAXmM = -1; 0445 NMAXaM = -1; // M 0446 } 0447 0448 cout << "************************************** NMINmM = " << NMINmM << " NMAXmM = " << NMAXmM 0449 << " NMAXaM = " << NMAXaM << endl; 0450 if (NMINmM == -1 || NMAXmM == -1 || NMAXaM == -1) 0451 cout << " STOP !!!!!! NMINmM == -1 || NMAXmM == -1 || NMAXaM == -1 " << endl; 0452 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0453 Int_t NMAX = 0; 0454 NMAX = NMAXaM; 0455 // cout << "NMAX= " << NMAX << "NMINmM= " << NMINmM << "NMAXmM= " << NMAXmM <<endl; 0456 for (int jjj = NMINmM; jjj <= NMAXmM; jjj++) { 0457 LEDruns[jjj - NMINmM] = LEDrunsM[jjj]; 0458 X0[jjj - NMINmM] = X0M[jjj]; 0459 // cout << "jjj= " << jjj << " jjj-NMINmM= " << jjj-NMINmM << " LEDrunsM[jjj]= " << LEDrunsM[jjj] << " X0M[jjj]= " << X0M[jjj] <<endl; 0460 } 0461 ////////////////////////////////////////////////////// 0462 //======================================================================================================================== 0463 //--------------------------------------------------------------------------------------------------------------------- 0464 //--------------------------------------------------------------------------------------------------------------------- 0465 // Int_t NP = 22; // for loop over time points(LED runs) NMAX is number of LED runs(time abscissa) 0466 Int_t NP = NMAX; // for loop over time points(LED runs) NMAX is number of LED runs(time abscissa) 0467 cout << "******************* NP = " << NP << endl; 0468 // 0469 //--------------------------------------------------------------------------------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0470 // take into account for future treatment only channels with <Aijk>_runevents within cutMinA to cutMaxA: 0471 // Double_t cutMinA =400.; Double_t cutMaxA = 1200.; // HPD HE only 0472 0473 // Double_t cutMinA =0.; Double_t cutMaxA = 999999999999.; 0474 Double_t cutMinA = 50000.; 0475 Double_t cutMaxA = 150000.; 0476 // Double_t cutMinA =50000.; Double_t cutMaxA = 350000.; 0477 0478 // Double_t cutMinA =9000.; Double_t cutMaxA = 40000.; 0479 // 0480 // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0481 //--------------------------------------------------------------------------------------------------------------------- 0482 //------------------------------------ define DELTA (days) of current point wrt first point 0483 for (int kk1 = 0; kk1 < NP; kk1++) { 0484 XX[kk1] = X0[kk1]; 0485 int k10 = 0; 0486 int z1 = X0[k10]; 0487 XX[kk1] -= z1; 0488 if (verbosity == 2) { 0489 cout << "ORDINATE points: kk1 = " << kk1 << " XX[kk1]= " << XX[kk1] << endl; 0490 } 0491 0492 XXE[kk1] = 0.001 * XX[kk1]; 0493 } //XXE - errors at fit 0494 //----------------------------------------------------------------------------------------------------- 0495 0496 //---------------------------------------------------------------------------------------------------- 0497 //---------------------------------------------------------------------------------------------------- 0498 ///////////////////////////////////////////////////////////////////////// initial nulling: 0499 for (int jjj = 0; jjj <= 82; jjj++) { 0500 for (int kkk = 0; kkk <= 72; kkk++) { 0501 mapRATIOD2[jjj][kkk] = 0.; 0502 mapRATIOD20[jjj][kkk] = 0.; 0503 normalization[jjj][kkk] = 0.; 0504 0505 for (int k1 = 0; k1 < NP; k1++) { 0506 GSMRATIOD2[k1][jjj][kkk] = mapRATIOD2[jjj][kkk]; 0507 } 0508 0509 for (int iii = 0; iii < NDEP; iii++) { 0510 mapRATIO[iii][jjj][kkk] = 0.; 0511 // normalization[iii][jjj][kkk] = 0.; 0512 } 0513 0514 } // for 0515 } // for 0516 0517 ///////////////////////////////////////////////////////////////////////// 0518 0519 //______________________________________________________________________________ 0520 // ls -latr /afs/cern.ch/cms/CAF/CMSALCA/ALCA_HCALCALIB/HCALMONITORING/RDMweb/histos/LED_* | less 0521 0522 TString fname = "/afs/cern.ch/cms/CAF/CMSALCA/ALCA_HCALCALIB/HCALMONITORING/RDMweb/histos/LED_"; 0523 // TString fname = "/afs/cern.ch/cms/CAF/CMSALCA/ALCA_HCALCALIB/HCALMONITORING/RDMweb/histos/LASER_"; 0524 0525 // booking: 0526 TH1F* Seff1D = new TH1F("Seff1D", "", 1000, 10., 100010.); 0527 TH1F* Ceff1D = new TH1F("Ceff1D", "", 1500, 10., 500010.); 0528 // TH1F* Seff1D = new TH1F("Seff1D","", 1000, 0.,100000.); 0529 // TH1F* Ceff1D = new TH1F("Ceff1D","", 1500, 0.,1500000.); 0530 // led shunt1 low-intensity Gsel0: 0531 // TH1F* Seff1D = new TH1F("Seff1D","", 1000, 0.,1000.); 0532 // TH1F* Ceff1D = new TH1F("Ceff1D","", 350, 0.,350.); 0533 0534 TH2F* mapBADchannels = new TH2F("mapBADchannels", " ", 82, -41., 41., 72, 0., 72.); 0535 TH2F* mapBADchannels0 = new TH2F("mapBADchannels0", " ", 82, -41., 41., 72, 0., 72.); 0536 0537 TH2F* mapchannelsdepth1 = new TH2F("mapchannelsdepth1", " ", 82, -41., 41., 72, 0., 72.); 0538 TH2F* mapchannelsdepth2 = new TH2F("mapchannelsdepth2", " ", 82, -41., 41., 72, 0., 72.); 0539 TH2F* mapchannelsdepth3 = new TH2F("mapchannelsdepth3", " ", 82, -41., 41., 72, 0., 72.); 0540 TH2F* mapchannelsdepth4 = new TH2F("mapchannelsdepth4", " ", 82, -41., 41., 72, 0., 72.); 0541 TH2F* mapchannelsdepth5 = new TH2F("mapchannelsdepth5", " ", 82, -41., 41., 72, 0., 72.); 0542 TH2F* mapchannelsdepth6 = new TH2F("mapchannelsdepth6", " ", 82, -41., 41., 72, 0., 72.); 0543 TH2F* mapchannelsdepth7 = new TH2F("mapchannelsdepth7", " ", 82, -41., 41., 72, 0., 72.); 0544 0545 TH1F* gainkoeff = new TH1F("gainkoeff", "", 100, y1, y2); 0546 TH1F* gainkoeff0 = new TH1F("gainkoeff0", "", 100, 0.9, 1.1); 0547 TH1F* gainkoeff9 = new TH1F("gainkoeff9", "", 100, 0.1, 1.9); 0548 TH1F* GOODruns = new TH1F("GOODruns", "", NP, 0., float(NP)); 0549 TH1F* BADruns = new TH1F("BADruns", "", NP, 0., float(NP)); 0550 TH1F* NotEmptyDepthes = new TH1F("NotEmptyDepthes", "", 56, 0., 56.); 0551 0552 ////////////////////////////////////////////////////////////////////// initial variables 0553 Int_t kmm = 0; 0554 Int_t firstrun = 0; 0555 // Int_t firstrun=1; 0556 // Int_t firstrun=2; // 0557 // Int_t firstrun=3; 0558 // Int_t firstrun=4; 0559 // Int_t firstrun=5; 0560 0561 // Int_t firstrun=6; 0562 // Int_t firstrun=54; 0563 // Int_t firstrun=347; 0564 0565 // Int_t firstrun=7; 0566 // Int_t firstrun=8; 0567 // Int_t firstrun=9; 0568 // 0569 cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! firstrun = " << firstrun << " run = " << LEDruns[firstrun] << endl; 0570 0571 ////////////////////////////////////////////////////////////////////////////////////////////// LOOP ratio current 0572 ////////////////////////////////////////////////////////////////////////// LOOP ratio current 0573 ////////////////////////////////////////////////////////////////////////// LOOP ratio current 0574 0575 ///////////////////////////////////////////////////////////////////////////////////////// 0576 // cout << "!!!!!!!!!!!!!!!!!!!!!! use root files from official RMT dir. " <<endl; 0577 cout << "!!!!!!!!!!!!!!!!!!!!!! use root files from my shunt6 dir. " << endl; 0578 //cout << "!!!!!!!!!!!!!!!!!!!!!! use root files from my shunt1 dir. " <<endl; 0579 ///////////////////////////////////////////////////////////////////////////////////////// START LOOP START LOOP START LOOP START LOOP 0580 0581 // TH1F* Aeff1D = new TH1F("Aeff1D","", 300, 0.,300.); 0582 TH1F* Aeff1D = new TH1F("Aeff1D", "", 200, 0., 2000000.); 0583 int ck1count = 0; 0584 for (int k1 = firstrun; k1 < NP; k1++) { 0585 // for(int k1 = 0; k1<NP; k1++) { 0586 ck1count++; 0587 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 0588 // my dir. 0589 // TString epsName = "rootshunt6/LEDtest" + LEDruns[k1] + ".root"; 0590 // TString epsName = "rootshunt1/LEDtest" + LEDruns[k1] + ".root"; 0591 0592 // if(k1 > 21) {epsName = fname + LEDruns[k1] + ".root";}// 2018 shunt1 0593 // TString epsName = "rootshunt1/LEDtest" + LEDruns[k1] + ".root"; 0594 0595 /* 0596 TString epsName; 0597 if(k1 < 0) {epsName = "rootshunt6/LEDtest" + LEDruns[k1] + ".root";}// was used: shunt6 for HEP17 2017 channels !!! 0598 if(k1 == 0) {epsName = "rootshunt1/LEDtest" + LEDruns[k1] + ".root";} 0599 if(k1 == 1) {epsName = "rootshunt6/LEDtest" + LEDruns[k1] + ".root";} 0600 */ 0601 // TString epsName = "LEDtest" + LEDruns[k1] + ".root"; 0602 0603 // TString epsName = "LEDtest309714.root"; 0604 // TString epsName = "LEDtest307971NEW.root"; 0605 0606 // RMT: 0607 TString epsName = fname + LEDruns[k1] + ".root"; 0608 0609 ///////////////////////////////////////////////////////////////////////////////////////// 0610 0611 TFile* hfile = new TFile(epsName, "READ"); 0612 // cout << "!!!! read LED run with k1= " << k1 <<" run: " << LEDruns[k1] <<endl; 0613 0614 // display existing histoes: preparation for plotting all runs into Aeff1D 0615 // TH1F * Aeff1= (TH1F*)hfile->Get("h_ADCAmpl_HE"); 0616 // h_ADCAmpl345Zoom_HE = new TH1F("h_ADCAmpl345Zoom_HE"," ", 300, 0.,300.); 0617 // h_ADCAmpl345Zoom1_HE = new TH1F("h_ADCAmpl345Zoom1_HE"," ", 200, 0.,1200.); 0618 // h_ADCAmplZoom1_HE = new TH1F("h_ADCAmplZoom1_HE"," ", 500, 0.,500.); 0619 0620 // TH1F * Aeff1= (TH1F*)hfile->Get("h_ADCAmpl345Zoom_HE"); 0621 // TH1F * Aeff1= (TH1F*)hfile->Get("h_ADCAmpl345Zoom1_HE"); 0622 // TH1F * Aeff1= (TH1F*)hfile->Get("h_ADCAmplZoom1_HE"); 0623 TH1F* Aeff1 = (TH1F*)hfile->Get("h_ADCAmpl_HE"); 0624 0625 int kx = Aeff1->GetXaxis()->GetNbins(); 0626 // cout <<"BEGINNING k1= " << k1 <<" kx= " << kx <<endl; 0627 int maxvalueA = -1; 0628 for (int jjj = 0; jjj < kx; jjj++) { 0629 if (double(Aeff1->GetBinContent(jjj)) > 0. && maxvalueA < jjj) 0630 maxvalueA = jjj; 0631 // cout <<" k1= " << k1 <<" jjj= " << jjj <<" content= " << Aeff1->GetBinContent(jjj) <<endl; 0632 Aeff1D->Fill(float(jjj), double(Aeff1->GetBinContent(jjj))); 0633 } // for 0634 cout << " run = " << LEDruns[k1] << " k1= " << k1 << " max bin value= " << maxvalueA << " ck1count= " << ck1count 0635 << endl; 0636 0637 // 0638 // 0639 // display last-run existing histoes: 0640 if (k1 == NP - 1) { 0641 c1->Clear(); 0642 c1->Divide(1, 1); 0643 c1->cd(1); 0644 gPad->SetGridy(); 0645 gPad->SetGridx(); 0646 gPad->SetLogy(); 0647 gStyle->SetOptStat(101110); 0648 Aeff1->SetMarkerStyle(20); 0649 Aeff1->SetMarkerSize(0.4); 0650 Aeff1->GetYaxis()->SetLabelSize(0.04); 0651 // Aeff1->SetTitle("Last run & events & channels"); 0652 Aeff1->SetXTitle("Aijk"); 0653 Aeff1->SetYTitle("N"); 0654 Aeff1->SetMarkerColor(4); 0655 Aeff1->SetLineColor(4); 0656 Aeff1->SetMinimum(0.8); 0657 Aeff1->Draw("PL"); 0658 c1->Update(); 0659 TString fdir = "testamt0shunt6gsm2018/"; 0660 // TString plotName = fdir + "Aijk.png"; 0661 TString plotName = fdir + "Aijk-Run" + LEDruns[k1] + ".png"; 0662 c1->SaveAs(plotName); 0663 cout << "****PLOT AijkLastRun.png is drawn **** " << endl; 0664 } 0665 // display first runt existing histoes: 0666 // if(k1== 0 ) { 0667 if (k1 == firstrun) { 0668 c1->Clear(); 0669 c1->Divide(1, 1); 0670 c1->cd(1); 0671 gPad->SetGridy(); 0672 gPad->SetGridx(); 0673 // gPad->SetLogy(); 0674 gStyle->SetOptStat(101110); 0675 Aeff1->SetMarkerStyle(20); 0676 Aeff1->SetMarkerSize(0.4); 0677 Aeff1->GetYaxis()->SetLabelSize(0.04); 0678 Aeff1->SetTitle("First run & events & channels"); 0679 Aeff1->SetXTitle("Aijk"); 0680 Aeff1->SetYTitle("N"); 0681 Aeff1->SetMarkerColor(4); 0682 Aeff1->SetLineColor(4); 0683 Aeff1->SetMinimum(0.8); 0684 Aeff1->Draw("PL"); 0685 c1->Update(); 0686 TString fdir = "testamt0shunt6gsm2018/"; 0687 TString plotName = fdir + "AijkFirstRun.png"; 0688 c1->SaveAs(plotName); 0689 cout << "****PLOT AijkLAST.png is drawn **** " << endl; 0690 } 0691 // 000000000000000000000000000000000000000000000000000000000000000000000000 0692 // TH2F *twod1= (TH2F*)hfile->Get("h_mapDepth1ADCAmpl"); 0693 // TH2F *twod2= (TH2F*)hfile->Get("h_mapDepth2ADCAmpl"); 0694 // TH2F *twod3= (TH2F*)hfile->Get("h_mapDepth3ADCAmpl"); 0695 // 111111111111111111111111111111111111111111111111111111111111111111111111 0696 // h_mapDepth1ADCAmpl12 means ADCcounts(massive) within -1 max +1 +2 0697 0698 /* 0699 TH2F *twod1= (TH2F*)hfile->Get("h_mapDepth1ADCAmpl12_HE"); 0700 TH2F *twod2= (TH2F*)hfile->Get("h_mapDepth2ADCAmpl12_HE"); 0701 TH2F *twod3= (TH2F*)hfile->Get("h_mapDepth3ADCAmpl12_HE"); 0702 */ 0703 // HEP17 of 2017: 0704 // TH2F *twod1= (TH2F*)hfile->Get("h_mapDepth1ADCAmpl12SiPM_HE"); 0705 // TH2F *twod2= (TH2F*)hfile->Get("h_mapDepth2ADCAmpl12SiPM_HE"); 0706 // TH2F *twod3= (TH2F*)hfile->Get("h_mapDepth3ADCAmpl12SiPM_HE"); 0707 // all: 0708 0709 TH2F* twod1 = (TH2F*)hfile->Get("h_mapDepth1ADCAmpl12_HE"); 0710 TH2F* twod2 = (TH2F*)hfile->Get("h_mapDepth2ADCAmpl12_HE"); 0711 TH2F* twod3 = (TH2F*)hfile->Get("h_mapDepth3ADCAmpl12_HE"); 0712 0713 TH2F* twod4 = (TH2F*)hfile->Get("h_mapDepth4ADCAmpl12_HE"); 0714 TH2F* twod5 = (TH2F*)hfile->Get("h_mapDepth5ADCAmpl12_HE"); 0715 TH2F* twod6 = (TH2F*)hfile->Get("h_mapDepth6ADCAmpl12_HE"); 0716 TH2F* twod7 = (TH2F*)hfile->Get("h_mapDepth7ADCAmpl12_HE"); 0717 0718 // all TS bins: 0719 // TH2F *twod1= (TH2F*)hfile->Get("h_mapDepth1ADCAmpl_HE"); 0720 // TH2F *twod2= (TH2F*)hfile->Get("h_mapDepth2ADCAmpl_HE"); 0721 // TH2F *twod3= (TH2F*)hfile->Get("h_mapDepth3ADCAmpl_HE"); 0722 0723 // TH2F *twod4= (TH2F*)hfile->Get("h_mapDepth4ADCAmpl_HE"); 0724 // TH2F *twod5= (TH2F*)hfile->Get("h_mapDepth5ADCAmpl_HE"); 0725 // TH2F *twod6= (TH2F*)hfile->Get("h_mapDepth6ADCAmpl_HE"); 0726 // TH2F *twod7= (TH2F*)hfile->Get("h_mapDepth7ADCAmpl_HE"); 0727 0728 int nx = twod1->GetXaxis()->GetNbins(); 0729 int ny = twod1->GetYaxis()->GetNbins(); 0730 // cout <<"BEGINNING k1= " << k1 <<" nx= " << nx <<" ny= " << ny <<endl; 0731 0732 TH2F* t0010 = (TH2F*)hfile->Get("h_mapDepth1_HE"); 0733 TH2F* t0020 = (TH2F*)hfile->Get("h_mapDepth2_HE"); 0734 TH2F* t0030 = (TH2F*)hfile->Get("h_mapDepth3_HE"); 0735 TH2F* t0040 = (TH2F*)hfile->Get("h_mapDepth4_HE"); 0736 TH2F* t0050 = (TH2F*)hfile->Get("h_mapDepth5_HE"); 0737 TH2F* t0060 = (TH2F*)hfile->Get("h_mapDepth6_HE"); 0738 TH2F* t0070 = (TH2F*)hfile->Get("h_mapDepth7_HE"); 0739 0740 TH2F* Ceff1 = (TH2F*)twod1->Clone("Ceff1"); 0741 TH2F* Ceff2 = (TH2F*)twod2->Clone("Ceff2"); 0742 TH2F* Ceff3 = (TH2F*)twod3->Clone("Ceff3"); 0743 TH2F* Ceff4 = (TH2F*)twod4->Clone("Ceff4"); 0744 TH2F* Ceff5 = (TH2F*)twod5->Clone("Ceff5"); 0745 TH2F* Ceff6 = (TH2F*)twod6->Clone("Ceff6"); 0746 TH2F* Ceff7 = (TH2F*)twod7->Clone("Ceff7"); 0747 0748 // <Aijk>_runevents: 0749 Ceff1->Divide(twod1, t0010, 1, 1, "B"); 0750 Ceff2->Divide(twod2, t0020, 1, 1, "B"); 0751 Ceff3->Divide(twod3, t0030, 1, 1, "B"); 0752 Ceff4->Divide(twod4, t0040, 1, 1, "B"); 0753 Ceff5->Divide(twod5, t0050, 1, 1, "B"); 0754 Ceff6->Divide(twod6, t0060, 1, 1, "B"); 0755 Ceff7->Divide(twod7, t0070, 1, 1, "B"); 0756 // Ceff1->Sumw2();Ceff2->Sumw2();Ceff3->Sumw2(); 0757 /////////////////////////////////////////////////////////////////////////////////////////// 0758 for (int jjj = 0; jjj < nx; jjj++) { 0759 for (int kkk = 0; kkk < ny; kkk++) { 0760 // HEP17 selection: 0761 if (flagHEP17selection == 0 || 0762 (flagHEP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) || 0763 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) || 0764 (flagHEP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) { 0765 // if(Ceff1->GetBinContent(jjj,kkk) !=0.) cout <<" k1=111111 " << k1 <<" eta= " << jjj <<" phi= " << kkk <<" Ceff1= " << Ceff1->GetBinContent(jjj,kkk) <<endl; 0766 // if(Ceff7->GetBinContent(jjj,kkk) !=0.) cout <<" k1=77777777777 " << k1 <<" eta= " << jjj <<" phi= " << kkk <<" Ceff7= " << Ceff7->GetBinContent(jjj,kkk) <<endl; 0767 if (Ceff1->GetBinContent(jjj, kkk) > 0.) 0768 mapchannelsdepth1->Fill(double(jjj) - 41., double(kkk), Ceff1->GetBinContent(jjj, kkk)); 0769 if (Ceff2->GetBinContent(jjj, kkk) > 0.) 0770 mapchannelsdepth2->Fill(double(jjj) - 41., double(kkk), Ceff2->GetBinContent(jjj, kkk)); 0771 if (Ceff3->GetBinContent(jjj, kkk) > 0.) 0772 mapchannelsdepth3->Fill(double(jjj) - 41., double(kkk), Ceff3->GetBinContent(jjj, kkk)); 0773 if (Ceff4->GetBinContent(jjj, kkk) > 0.) 0774 mapchannelsdepth4->Fill(double(jjj) - 41., double(kkk), Ceff4->GetBinContent(jjj, kkk)); 0775 if (Ceff5->GetBinContent(jjj, kkk) > 0.) 0776 mapchannelsdepth5->Fill(double(jjj) - 41., double(kkk), Ceff5->GetBinContent(jjj, kkk)); 0777 if (Ceff6->GetBinContent(jjj, kkk) > 0.) 0778 mapchannelsdepth6->Fill(double(jjj) - 41., double(kkk), Ceff6->GetBinContent(jjj, kkk)); 0779 if (Ceff7->GetBinContent(jjj, kkk) > 0.) 0780 mapchannelsdepth7->Fill(double(jjj) - 41., double(kkk), Ceff7->GetBinContent(jjj, kkk)); 0781 } // if HEP17 selection 0782 } // for 0783 } // for 0784 /////////////////////////////////////////////////////////////////////////////////////////// 0785 // } 0786 0787 // 0788 // 0789 // fill: 0790 // fill massive <Aijk>_runevents , where iii=depth, jjj=eta, kkk=phi 0791 for (int jjj = 0; jjj < nx; jjj++) { 0792 for (int kkk = 0; kkk < ny; kkk++) { 0793 // 0794 // HEP17 selection: 0795 if (flagHEP17selection == 0 || 0796 (flagHEP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) || 0797 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) || 0798 (flagHEP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) { 0799 // FILL NEW PLOTS: 0800 // Aijk: Ceff1D & Seff1D plots 0801 if (Ceff1->GetBinContent(jjj, kkk) != 0.) { 0802 Ceff1D->Fill(Ceff1->GetBinContent(jjj, kkk)); 0803 Seff1D->Fill(Ceff1->GetBinContent(jjj, kkk)); 0804 } 0805 if (Ceff2->GetBinContent(jjj, kkk) != 0.) { 0806 Ceff1D->Fill(Ceff2->GetBinContent(jjj, kkk)); 0807 Seff1D->Fill(Ceff2->GetBinContent(jjj, kkk)); 0808 } 0809 if (Ceff3->GetBinContent(jjj, kkk) != 0.) { 0810 Ceff1D->Fill(Ceff3->GetBinContent(jjj, kkk)); 0811 Seff1D->Fill(Ceff3->GetBinContent(jjj, kkk)); 0812 } 0813 if (Ceff4->GetBinContent(jjj, kkk) != 0.) { 0814 Ceff1D->Fill(Ceff4->GetBinContent(jjj, kkk)); 0815 Seff1D->Fill(Ceff4->GetBinContent(jjj, kkk)); 0816 } 0817 if (Ceff5->GetBinContent(jjj, kkk) != 0.) { 0818 Ceff1D->Fill(Ceff5->GetBinContent(jjj, kkk)); 0819 Seff1D->Fill(Ceff5->GetBinContent(jjj, kkk)); 0820 } 0821 if (Ceff6->GetBinContent(jjj, kkk) != 0.) { 0822 Ceff1D->Fill(Ceff6->GetBinContent(jjj, kkk)); 0823 Seff1D->Fill(Ceff6->GetBinContent(jjj, kkk)); 0824 } 0825 if (Ceff7->GetBinContent(jjj, kkk) != 0.) { 0826 Ceff1D->Fill(Ceff7->GetBinContent(jjj, kkk)); 0827 Seff1D->Fill(Ceff7->GetBinContent(jjj, kkk)); 0828 } 0829 } //if 0830 } 0831 } 0832 0833 //-------------------------------------- 0834 // take into account for future treatment only HEP17 channels and cuts on <Aijk>_runevents within cutMinA to cutMaxA: 0835 // apply cut on <Aijk>_runevents 0836 // -41 +41 0837 // 82 bins 0838 for (int jjj = 0; jjj < nx; jjj++) { 0839 for (int kkk = 0; kkk < ny; kkk++) { 0840 // HEP17 selection: 0841 if (flagHEP17selection == 0 || 0842 (flagHEP17selection == 1 && (((jjj > 56 && jjj < 62) && (kkk > 63 && kkk < 68)) || 0843 ((jjj > 61 && jjj < 71) && (kkk == 64 || kkk == 66)))) || 0844 (flagHEP17selection == 2 && !(((jjj > 14 && jjj < 25) && (kkk > 55 && kkk < 64))))) { 0845 if (Ceff1->GetBinContent(jjj, kkk) > cutMinA && Ceff1->GetBinContent(jjj, kkk) < cutMaxA) 0846 mapRATIO[1][jjj][kkk] = Ceff1->GetBinContent(jjj, kkk); 0847 if (Ceff2->GetBinContent(jjj, kkk) > cutMinA && Ceff2->GetBinContent(jjj, kkk) < cutMaxA) 0848 mapRATIO[2][jjj][kkk] = Ceff2->GetBinContent(jjj, kkk); 0849 if (Ceff3->GetBinContent(jjj, kkk) > cutMinA && Ceff3->GetBinContent(jjj, kkk) < cutMaxA) 0850 mapRATIO[3][jjj][kkk] = Ceff3->GetBinContent(jjj, kkk); 0851 if (Ceff4->GetBinContent(jjj, kkk) > cutMinA && Ceff4->GetBinContent(jjj, kkk) < cutMaxA) 0852 mapRATIO[4][jjj][kkk] = Ceff4->GetBinContent(jjj, kkk); 0853 if (Ceff5->GetBinContent(jjj, kkk) > cutMinA && Ceff5->GetBinContent(jjj, kkk) < cutMaxA) 0854 mapRATIO[5][jjj][kkk] = Ceff5->GetBinContent(jjj, kkk); 0855 if (Ceff6->GetBinContent(jjj, kkk) > cutMinA && Ceff6->GetBinContent(jjj, kkk) < cutMaxA) 0856 mapRATIO[6][jjj][kkk] = Ceff6->GetBinContent(jjj, kkk); 0857 if (Ceff7->GetBinContent(jjj, kkk) > cutMinA && Ceff7->GetBinContent(jjj, kkk) < cutMaxA) 0858 mapRATIO[7][jjj][kkk] = Ceff7->GetBinContent(jjj, kkk); 0859 } //if 0860 } // for 0861 } // for 0862 //////////////////--------------------------------------- 0863 /* 0864 // define A for refRun : k1=[0] 0865 //////////////////--------------------------------------- 0866 if(k1==firstrun && kmm==0 ) { 0867 kmm=1; //Int_t mcount=0; 0868 cout<<"* to be printed once only CHECK IT please ************ kmm = " << kmm <<endl; 0869 for(int iii = 1; iii<4; iii++) { 0870 // for (int jjj=1;jjj<=82;jjj++) { 0871 // for (int kkk=1;kkk<=72;kkk++) { 0872 for (int jjj=0;jjj<nx;jjj++) { 0873 for (int kkk=0;kkk<ny;kkk++) { 0874 normalization[iii][jjj][kkk] = mapRATIO[iii][jjj][kkk]; 0875 }//for 0876 }//for 0877 }//for 0878 }// if(k1=firstrun 0879 */ 0880 //-------------------------------------- 0881 // then, averaging over depthes, but first sum over depthes before!!! any dividing. Use mapRATIOD2[jjj][kkk] and mapRATIOD20[jjj][kkk] 0882 //////////////////--------------------------------------- 0883 int totalhep17count = 0; 0884 int totalhep17count1 = 0; 0885 int totalhep17count2 = 0; 0886 int totalhep17count3 = 0; 0887 int totalhep17count4 = 0; 0888 int totalhep17count5 = 0; 0889 int totalhep17count6 = 0; 0890 int totalhep17count7 = 0; 0891 for (int iii = 1; iii < NDEP; iii++) { 0892 for (int jjj = 0; jjj < nx; jjj++) { 0893 for (int kkk = 0; kkk < ny; kkk++) { 0894 // for (int jjj=1;jjj<=82;jjj++) { 0895 // for (int kkk=1;kkk<=72;kkk++) { 0896 if (mapRATIO[iii][jjj][kkk] > 0) { 0897 // calculate # channels in HEP17 for each depth: 0898 totalhep17count++; 0899 if (verbosity == 4 && k1 == 0) { 0900 cout << " k1= " << k1 << " depth= " << iii << " eta= " << jjj << " phi= " << kkk 0901 << " mapRATIO= " << mapRATIO[iii][jjj][kkk] << endl; 0902 } 0903 if (iii == 1) 0904 totalhep17count1++; 0905 if (iii == 2) 0906 totalhep17count2++; 0907 if (iii == 3) 0908 totalhep17count3++; 0909 if (iii == 4) 0910 totalhep17count4++; 0911 if (iii == 5) 0912 totalhep17count5++; 0913 if (iii == 6) 0914 totalhep17count6++; 0915 if (iii == 7) 0916 totalhep17count7++; 0917 // ---------------------------------------- sum over depthes before!!! any dividing: 0918 mapRATIOD2[jjj][kkk] += mapRATIO[iii][jjj][kkk]; 0919 // count entries with digis only: 0920 mapRATIOD20[jjj][kkk]++; 0921 if (verbosity == 3 && iii == 3) 0922 cout << " depth = " << iii << " k1 = " << k1 << " eta = " << jjj 0923 << " mapRATIOD2[jjj][kkk] = " << mapRATIOD2[jjj][kkk] << " #entries = " << mapRATIOD20[jjj][kkk] 0924 << " mapRATIO[iii][jjj][kkk] = " << mapRATIO[iii][jjj][kkk] << endl; 0925 } // if mapRATIO[iii][jjj][kkk] != 0 0926 } //for 0927 } //for 0928 } //for 0929 0930 // ERROR printout !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0931 // if(totalhep17count != 184 ) {cout <<"!!!!!! ERROR:NOT ALL CHANNELS HEP17 INVOLEVED FOR RUN WITH k1= " << k1 <<" totalhep17count= " << totalhep17count <<endl;} 0932 0933 if (verbosity == 4 && k1 == 0) { 0934 cout << " k1= " << k1 << " totalhep17count= " << totalhep17count << endl; 0935 cout << " k1= " << k1 << " totalhep17count1= " << totalhep17count1 << endl; 0936 cout << " k1= " << k1 << " totalhep17count2= " << totalhep17count2 << endl; 0937 cout << " k1= " << k1 << " totalhep17count3= " << totalhep17count3 << endl; 0938 cout << " k1= " << k1 << " totalhep17count4= " << totalhep17count4 << endl; 0939 cout << " k1= " << k1 << " totalhep17count5= " << totalhep17count5 << endl; 0940 cout << " k1= " << k1 << " totalhep17count6= " << totalhep17count6 << endl; 0941 cout << " k1= " << k1 << " totalhep17count7= " << totalhep17count7 << endl; 0942 } 0943 0944 //////////////------------------------------ and now averaging over depthes and get final mapRATIOD2[jjj][kkk] 0945 //////////////////--------------------------------------- 0946 Int_t depthAVERAGEcount = 0; 0947 for (int jjj = 0; jjj < nx; jjj++) { 0948 for (int kkk = 0; kkk < ny; kkk++) { 0949 // for (int jjj=1;jjj<=82;jjj++) { 0950 //for(int kkk=1;kkk<=72;kkk++) { 0951 depthAVERAGEcount = 4 * (jjj - 57) + (kkk - 64); 0952 if (mapRATIOD20[jjj][kkk] != 0) { 0953 NotEmptyDepthes->Fill(float(depthAVERAGEcount)); 0954 if (verbosity == 1) 0955 cout << "****aver per depthes********* phi = " << kkk << " RunIndex = " << k1 << " eta = " << jjj 0956 << " #entries = " << mapRATIOD20[jjj][kkk] << endl; 0957 mapRATIOD2[jjj][kkk] /= mapRATIOD20[jjj][kkk]; 0958 if (verbosity == 3 && kkk == 3) 0959 cout << "****aver per depthes********* phi = " << jjj << " RunIndex = " << k1 << " eta = " << jjj 0960 << " Nphi = " << mapRATIOD20[jjj][kkk] << endl; 0961 } // if(mapRATIOD20 != 0 0962 } //for kkk 0963 } //for jjj 0964 //////////////////--------------------------------------- 0965 // define A for refRun : k1=[0] 0966 //////////////////--------------------------------------- 0967 if (k1 == firstrun && kmm == 0) { 0968 kmm = 1; //Int_t mcount=0; 0969 cout << "* to be printed once only CHECK IT please ************ kmm = " << kmm << endl; 0970 // for (int jjj=1;jjj<=82;jjj++) { 0971 // for (int kkk=1;kkk<=72;kkk++) { 0972 for (int jjj = 0; jjj < nx; jjj++) { 0973 for (int kkk = 0; kkk < ny; kkk++) { 0974 normalization[jjj][kkk] = mapRATIOD2[jjj][kkk]; 0975 } //for 0976 } //for 0977 } // if(k1=firstrun 0978 //-------------------------------------- 0979 //////////////------------------------------ get normalized ratio GSMRATIOD2[k1][jjj][kkk] 0980 //////////////////--------------------------------------- 0981 // int etaphicount = 0; 0982 // for (int jjj=1;jjj<=82;jjj++) { 0983 // for (int kkk=1;kkk<=72;kkk++) { 0984 for (int jjj = 0; jjj < nx; jjj++) { 0985 for (int kkk = 0; kkk < ny; kkk++) { 0986 if (normalization[jjj][kkk] != 0) { 0987 GSMRATIOD2[k1][jjj][kkk] = mapRATIOD2[jjj][kkk] / normalization[jjj][kkk]; 0988 // plotting: 0989 if (GSMRATIOD2[k1][jjj][kkk] < RrangeMAX && GSMRATIOD2[k1][jjj][kkk] > RrangeMIN) { 0990 gainkoeff->Fill(GSMRATIOD2[k1][jjj][kkk]); 0991 gainkoeff0->Fill(GSMRATIOD2[k1][jjj][kkk]); 0992 gainkoeff9->Fill(GSMRATIOD2[k1][jjj][kkk]); 0993 // printout 0994 // etaphicount++; 0995 // if(etaphicount > 30 ) cout <<"etaphicount = " << etaphicount << "for k1= " << k1 <<endl; 0996 // if(etaphicount == 30 ) cout <<"etaphicount == 30 for k1= " << k1 <<endl; 0997 // cout <<" k1= " << k1 <<" eta= " << jjj <<" phi= " << kkk <<endl; 0998 GOODruns->Fill(float(k1)); // fill #channels w/ R inside unit 0999 } else { 1000 if (GSMRATIOD2[k1][jjj][kkk] > 0.) 1001 BADruns->Fill(float(k1)); 1002 } // fill #channels outside R unit 1003 // else{if(GSMRATIOD2[k1][jjj][kkk]>0.) BADruns->Fill(float(k1));} 1004 1005 } // if(normalization[jjj][kkk] != 0 1006 } //for kkk 1007 } //for jjj 1008 1009 // 1010 //////////////////--------------------------------------- 1011 //////////////////--------------------------------------- 1012 //////////////////--------------------------------------- 1013 /////////////////////////////////////////////////////////////////////////////////////////////// nulling : 1014 ///////////////////////////////////////////////////////////////// nulling : 1015 for (int jjj = 0; jjj <= 82; jjj++) { 1016 for (int kkk = 0; kkk <= 72; kkk++) { 1017 mapRATIOD2[jjj][kkk] = 0.; 1018 mapRATIOD20[jjj][kkk] = 0.; 1019 for (int iii = 0; iii < NDEP; iii++) { 1020 mapRATIO[iii][jjj][kkk] = 0.; 1021 } 1022 } // for 1023 } // for 1024 1025 ///////////////////// hfile->Close(); 1026 hfile->Close(); 1027 ///////////////////// 1028 1029 // }//if(k1==0 || (k1>37 1030 ////////////////////////////////////////////////////////////////////////////////////////////////// END OF LOOP OVER LED RUNS 1031 } //for k1 loop over time points(LED runs) 1032 cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DONE: last LED run READ " << endl; 1033 1034 // c1->Clear(); 1035 1036 // ////////////////////////////////////////////////////////////////////////////////////////////////// END OF LOOP OVER LED RUNS 1037 //////////////////////////////////////////////////////////////////////////////////////////////////// END OF LOOP OVER LED RUNS 1038 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1039 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1040 1041 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DRAWING DRAWING DRAWING DRAWING DRAWING 1042 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DRAWING DRAWING DRAWING DRAWING DRAWING 1043 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DRAWING DRAWING DRAWING DRAWING DRAWING 1044 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DRAWING DRAWING DRAWING DRAWING DRAWING 1045 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DRAWING DRAWING DRAWING DRAWING DRAWING 1046 cout << "**** **** **** **** **** Draw Dependencies: *** " << endl; 1047 1048 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1049 Int_t Method = NMethodsStart; 1050 while (Method < NMethodsToUse + 1) { 1051 if (Method != 9999992) { 1052 cout << " **** START Method " << Method << endl; 1053 //======================================================================================================= PLOT0: <Aijk> for each event and all LED runs 1054 if (Method == 0) { 1055 cout << "****Draw 0 Dependencies: <Aijk> for each event and all LED runs *** " << endl; 1056 gPad->SetGridy(); 1057 gPad->SetGridx(); 1058 gPad->SetLogy(); 1059 gStyle->SetOptStat(101110); 1060 Ceff1D->SetMarkerStyle(20); 1061 Ceff1D->SetMarkerSize(0.4); 1062 Ceff1D->GetYaxis()->SetLabelSize(0.04); 1063 Ceff1D->SetTitle("all runs & channels"); 1064 Ceff1D->SetXTitle("<Aijk>"); 1065 Ceff1D->SetYTitle("N"); 1066 Ceff1D->SetMarkerColor(4); 1067 Ceff1D->SetLineColor(4); 1068 // Ceff1D->Draw("Error"); 1069 Ceff1D->Draw("PL"); 1070 } //Method = 0 1071 //======================================================================================================= PLOT1: <Aijk> for each event and all LED runs ZOOM 1072 if (Method == 1) { 1073 cout << "****Draw 1 Dependencies: <Aijk> for each event and all LED runs ZOOM *** " << endl; 1074 gPad->SetGridy(); 1075 gPad->SetGridx(); 1076 gPad->SetLogy(); 1077 gStyle->SetOptStat(101110); 1078 // Seff1D->SetTitle("any Error, HE Depth1 \n"); 1079 Seff1D->SetMarkerStyle(20); 1080 Seff1D->SetMarkerSize(0.4); 1081 Seff1D->GetYaxis()->SetLabelSize(0.04); 1082 Seff1D->SetTitle("ZOOM all runs & channels"); 1083 Seff1D->SetXTitle("<Aijk> ZOOM "); 1084 Seff1D->SetYTitle("N"); 1085 Seff1D->SetMarkerColor(4); 1086 Seff1D->SetLineColor(4); 1087 // Seff1D->Draw("Error"); 1088 Seff1D->Draw("PL"); 1089 } //Method = 1 1090 // ////////////////////////////////////////////////////////////////////////// 1091 //======================================================================================================= PLOT2 GSM ratio vs days 1092 if (Method == 2) { 1093 cout << "****Draw 2 Dependencies: GSM ratio vs days *** " << endl; 1094 for (int k1 = 0; k1 < NP; k1++) { 1095 YY[k1] = 0.; 1096 } 1097 // c1->Range(0,0,25,18); 1098 // c1->SetFillColor(0); 1099 // c1->Clear(); 1100 TPad* pad1 = new TPad("pad1", "This is pad1", 0.02, 0.02, 0.99, 0.99, 0); 1101 pad1->Draw(); 1102 pad1->cd(); 1103 pad1->Range(-0.255174, -19.25, 2.29657, -6.75); 1104 // x1 y1 x2 y2 1105 pad1->DrawFrame(x1, y1, x2, y2); // 1-A, 1106 // pad1->DrawFrame(1, 0., 370, 2.0); // 1-A, 1107 pad1->GetFrame()->SetFillColor(0); 1108 pad1->Draw(); 1109 gPad->SetGridy(); 1110 gPad->SetGridx(); 1111 // - - - - - - - - - - - - 1112 Int_t colorlines = 0; 1113 Int_t generalcount = 0; 1114 // for (int jjj=1;jjj<=82;jjj++) { 1115 // for (int kkk=1;kkk<=72;kkk++) { 1116 for (int jjj = 0; jjj < 82; jjj++) { 1117 for (int kkk = 0; kkk < 72; kkk++) { 1118 Int_t sscount = -1; 1119 for (int k1 = 0; k1 < NP; k1++) { 1120 if (GSMRATIOD2[k1][jjj][kkk] != 0) { 1121 // if(GSMRATIOD2[k1][jjj][kkk]< 1.033 && GSMRATIOD2[k1][jjj][kkk] > 0.91 ) { 1122 // if(GSMRATIOD2[k1][jjj][kkk]< 9. && GSMRATIOD2[k1][jjj][kkk] > 0. ) { 1123 if (GSMRATIOD2[k1][jjj][kkk] < RrangeMAX && GSMRATIOD2[k1][jjj][kkk] > RrangeMIN) { 1124 // if(GSMRATIOD2[k1][jjj][kkk]< 1.05 && GSMRATIOD2[k1][jjj][kkk] > 0.91 ) { 1125 // if(GSMRATIOD2[k1][jjj][kkk]< 1.15 && GSMRATIOD2[k1][jjj][kkk] > 0.85 ) { 1126 sscount++; 1127 YY[sscount] = GSMRATIOD2[k1][jjj][kkk]; // 1128 XXX[sscount] = XX[k1]; 1129 indWAS[sscount] = k1; 1130 mapBADchannels->Fill(double(jjj) - 42., double(kkk) - 1., GSMRATIOD2[k1][jjj][kkk]); 1131 mapBADchannels0->Fill(double(jjj) - 42., double(kkk) - 1., 1.); 1132 } // GSMRATIOD2[k1][jjj][kkk] < 1.05 1133 else { 1134 // mapBADchannels->Fill(double(jjj)-42., double(kkk)-1., GSMRATIOD2[k1][jjj][kkk]); 1135 } 1136 } // GSMRATIOD2[k1][jjj][kkk] != 0 1137 } //for k1 1138 Int_t MMcount = sscount + 1; 1139 if (MMcount > 0) { 1140 generalcount++; 1141 if (generalcount == 1 && verbosity == 2) 1142 for (int k1 = 0; k1 < MMcount; k1++) { 1143 cout << "**** All GOOD runs: indWAS[k1](1,..) = " << indWAS[k1] + 1 << " XXX[k1]+1 = " << XXX[k1] + 1 1144 << endl; 1145 } 1146 gr1 = new TGraph(MMcount, XXX, YY); 1147 colorlines = generalcount / 5. + 2; 1148 gr1->SetLineColor(colorlines); 1149 gr1->SetMarkerColor(colorlines); 1150 gr1->SetMarkerStyle(20); 1151 gr1->SetMarkerSize(1.2); 1152 gr1->SetFillStyle(0); 1153 gr1->GetXaxis()->SetTitle("days"); 1154 gr1->GetYaxis()->SetTitle("R"); 1155 gr1->Draw("PL"); 1156 } // if 1157 // else {cout<<"****ERROR for PLOT2: MMcount is lower 1, MMcount = *** " << MMcount << endl;} 1158 } //for kkk 1159 } //for jjj 1160 1161 // TLegend leg(.6,.67,.78,.88, " HEP Depth1"); 1162 // TLegend leg(xx1,yy1,xx2,yy2, "HEP17: R vs t"); 1163 TLegend leg(xx1, yy1, xx2, yy2, "HE SiPM: R vs t(days)"); 1164 // leg.AddEntry(gr1); 1165 leg.SetMargin(0.3); 1166 leg.SetBorderSize(1); 1167 leg.DrawClone("Same"); 1168 /* 1169 // Draw labels on the y axis 1170 TText *t7 = new TText(); 1171 t7->SetTextAlign(32); 1172 t7->SetTextSize(0.035); 1173 t7->SetTextFont(72); 1174 char *labels[NP+1] = {"31","1","7","7","8","9","12","13","19","22","22","24","24","24","24","24","24","Feb."}; 1175 float X7[NP]; 1176 for(int k1 = 0; k1<NP; k1++) { 1177 // cout<<"**** XXX[k1] = " << XXX[k1] <<" YY[k1] = " << YY[k1] << endl; 1178 t7->DrawText(0.2+XXX[k1],0.890,labels[k1]); 1179 } 1180 t7->DrawText(0.2+XXX[NP-1]+75.,0.890,labels[NP]); 1181 */ 1182 1183 } ////Method = 2 1184 // 1185 1186 //======================================================================================================= PLOT3: 2D SiPM channels 1187 if (Method == 3) { 1188 cout << "****Draw 3 Dependencies: 2D SiPM channels *** " << endl; 1189 TH2F* Cdepth2hbff = (TH2F*)mapBADchannels->Clone("Cdepth2hbff"); 1190 Cdepth2hbff->Divide(mapBADchannels, mapBADchannels0, 1, 1, "B"); 1191 Cdepth2hbff->Sumw2(); 1192 gPad->SetGridy(); 1193 gPad->SetGridx(); 1194 gStyle->SetOptStat(0000000); 1195 Cdepth2hbff->SetMarkerStyle(20); 1196 Cdepth2hbff->SetMarkerSize(0.4); 1197 Cdepth2hbff->GetYaxis()->SetLabelSize(0.04); 1198 Cdepth2hbff->SetTitle("within R & Weighted by R"); 1199 Cdepth2hbff->SetXTitle("#eta \b"); 1200 Cdepth2hbff->SetYTitle("#phi \b"); 1201 Cdepth2hbff->SetMarkerColor(4); 1202 Cdepth2hbff->SetLineColor(4); 1203 Cdepth2hbff->Draw("COLZ"); 1204 } //Method = 3 1205 //======================================================================================================= PLOT4:gains LED runs 1206 if (Method == 4) { 1207 cout << "****Draw 4 Dependencies: gains LED runs *** " << endl; 1208 gPad->SetGridy(); 1209 gPad->SetGridx(); 1210 // gPad->SetLogy(); 1211 //gStyle->SetOptStat(1110000); 1212 gStyle->SetOptStat(1100); // only mean & rms 1213 //gStyle->SetOptStat(1111111);// only mean & rms 1214 gainkoeff->SetMarkerStyle(20); 1215 gainkoeff->SetMarkerSize(0.4); 1216 gainkoeff->GetYaxis()->SetLabelSize(0.04); 1217 gainkoeff->SetXTitle("gains"); 1218 gainkoeff->SetYTitle("N"); 1219 gainkoeff->SetMarkerColor(4); 1220 gainkoeff->SetLineColor(4); 1221 // gainkoeff->Draw("Error"); 1222 gainkoeff->Draw("PL"); 1223 } //Method = 4 1224 //======================================================================================================= PLOT5:gains LED runs 1225 if (Method == 5) { 1226 cout << "****Draw 5 Dependencies: gains LED runs *** " << endl; 1227 gPad->SetGridy(); 1228 gPad->SetGridx(); 1229 gPad->SetLogy(); 1230 //gStyle->SetOptStat(1110000); 1231 gStyle->SetOptStat(1100); // only mean & rms 1232 //gStyle->SetOptStat(1111111);// only mean & rms 1233 gainkoeff9->SetMarkerStyle(20); 1234 gainkoeff9->SetMarkerSize(0.4); 1235 gainkoeff9->GetYaxis()->SetLabelSize(0.04); 1236 gainkoeff9->SetXTitle("gains"); 1237 gainkoeff9->SetYTitle("N"); 1238 gainkoeff9->SetMarkerColor(4); 1239 gainkoeff9->SetLineColor(4); 1240 // gainkoeff9->Draw("Error"); 1241 gainkoeff9->Draw("PL"); 1242 } //Method = 5 1243 //======================================================================================================= PLOT6:gains LED runs 1244 if (Method == 6) { 1245 cout << "****Draw 6 Dependencies: gains LED runs *** " << endl; 1246 gPad->SetGridy(); 1247 gPad->SetGridx(); 1248 gPad->SetLogy(); 1249 //gStyle->SetOptStat(1110000); 1250 gStyle->SetOptStat(1100); // only mean & rms 1251 //gStyle->SetOptStat(1111111);// only mean & rms 1252 gainkoeff0->SetMarkerStyle(20); 1253 gainkoeff0->SetMarkerSize(0.4); 1254 gainkoeff0->GetYaxis()->SetLabelSize(0.04); 1255 gainkoeff0->SetXTitle("gains"); 1256 gainkoeff0->SetYTitle("N"); 1257 gainkoeff0->SetMarkerColor(4); 1258 gainkoeff0->SetLineColor(4); 1259 // gainkoeff0->Draw("Error"); 1260 gainkoeff0->Draw("PL"); 1261 } //Method = 6 1262 //======================================================================================================= PLOT7: BADruns 1263 if (Method == 7) { 1264 cout << "****Draw 7 Dependencies: BADruns *** " << endl; 1265 gPad->Update(); 1266 gPad->SetGridy(); 1267 gPad->SetGridx(); 1268 gPad->SetLogy(kFALSE); 1269 gStyle->SetOptStat(101110); 1270 BADruns->SetMarkerStyle(20); 1271 BADruns->SetMarkerSize(0.4); 1272 BADruns->GetYaxis()->SetLabelSize(0.04); 1273 BADruns->SetTitle("#channels outside Rrange VS iRun"); 1274 BADruns->SetXTitle("iRun"); 1275 BADruns->SetYTitle("#channels"); 1276 BADruns->SetMarkerColor(4); 1277 BADruns->SetLineColor(4); 1278 // BADruns->Draw("Error"); 1279 BADruns->Draw("PL"); 1280 // PRINTOUT ONLY: 1281 // if(verbosity == 4 ){ 1282 int cx = BADruns->GetXaxis()->GetNbins(); 1283 cout << "***** ************* Number of runs w/ R outside unit-range = " << cx << endl; 1284 int nbadruns = 0; 1285 for (int jjj = 1; jjj <= cx; jjj++) { 1286 if (BADruns->GetBinContent(jjj) > 200.) { 1287 cout << "BADruns w/ content>60: jjj= " << jjj << " run= " << LEDruns[jjj - 1] 1288 << " R ouside unit-range for # channels= " << BADruns->GetBinContent(jjj) << endl; 1289 ++nbadruns; 1290 } 1291 // if( BADruns->GetBinContent(jjj) >8.) {cout<<"BADruns w/ content>60: jjj= " << jjj <<" run= " << LEDruns[jjj-1] <<" R ouside unit-range for # channels= " << BADruns->GetBinContent(jjj) <<endl;++nbadruns;} 1292 } //jjj 1293 cout << "BADruns w/ content>60 nbadruns= " << nbadruns << endl; 1294 // }// if(verbosity == 2 ) 1295 } //Method = 7 1296 1297 //======================================================================================================= PLOT8: Goodruns 1298 if (Method == 8) { 1299 cout << "****Draw 8 Dependencies: Goodruns *** " << endl; 1300 gPad->SetGridy(); 1301 gPad->SetGridx(); 1302 // gPad->SetLogy(); 1303 gStyle->SetOptStat(101110); 1304 GOODruns->SetMarkerStyle(20); 1305 GOODruns->SetMarkerSize(0.4); 1306 GOODruns->GetYaxis()->SetLabelSize(0.04); 1307 GOODruns->SetTitle("#channels inside Rrange VS iRun"); 1308 GOODruns->SetXTitle("iRun"); 1309 GOODruns->SetYTitle("#channels"); 1310 GOODruns->SetMarkerColor(4); 1311 GOODruns->SetLineColor(4); 1312 // GOODruns->Draw("Error"); 1313 GOODruns->Draw("PL"); 1314 // PRINTOUT ONLY: 1315 // if(verbosity == 4 ){ 1316 int cx = GOODruns->GetXaxis()->GetNbins(); 1317 cout << "************* cx = " << cx << endl; 1318 for (int jjj = 0; jjj <= cx; jjj++) { 1319 // if( GOODruns->GetBinContent(jjj) >100.) cout<<"GOODruns: k1= " << jjj <<endl; 1320 // if( GOODruns->GetBinContent(jjj) >5.) cout<<"GOODruns: k1= " << jjj <<endl; 1321 if (GOODruns->GetBinContent(jjj) > 1400.) 1322 cout << "GOODruns: k1(0,...)= " << jjj 1323 << " GOODruns->GetBinContent(jjj)= " << GOODruns->GetBinContent(jjj) << endl; 1324 } //jjj 1325 // }// if(verbosity == 2 ) 1326 } //Method = 8 1327 1328 //======================================================================================================= PLOT9:depthes with zero A 1329 if (Method == 9) { 1330 cout << "****Draw 9 Dependencies: depthes with zero A *** " << endl; 1331 gPad->SetGridy(); 1332 gPad->SetGridx(); 1333 gPad->SetLogy(kFALSE); 1334 gStyle->SetOptStat(1110000); 1335 NotEmptyDepthes->SetMarkerStyle(20); 1336 NotEmptyDepthes->SetMarkerSize(0.4); 1337 NotEmptyDepthes->GetYaxis()->SetLabelSize(0.04); 1338 NotEmptyDepthes->SetTitle("# Not Empty Channels in etq-phi projection"); 1339 NotEmptyDepthes->SetXTitle("4*(eta-57)+(phi-64)"); 1340 NotEmptyDepthes->SetYTitle("N"); 1341 NotEmptyDepthes->SetMarkerColor(4); 1342 NotEmptyDepthes->SetLineColor(4); 1343 // NotEmptyDepthes->Draw("Error"); 1344 NotEmptyDepthes->Draw("PL"); 1345 } //Method = 9 1346 //======================================================================================================= PLOT10: Aijk for each event and all LED runs 1347 if (Method == 10) { 1348 cout << "****Draw 10 Dependencies: Aijk for each event and all LED runs *** " << endl; 1349 1350 c1->Clear(); 1351 c1->Divide(1, 1); 1352 1353 c1->cd(1); 1354 // TString epsName = fname + LEDruns[0] +".root"; 1355 // TFile *hfile= new TFile(epsName, "READ"); 1356 // TH1F * Aeff1D= (TH1F*)hfile->Get("h_ADCAmpl_HE"); 1357 1358 gPad->SetGridy(); 1359 gPad->SetGridx(); 1360 gPad->SetLogy(); 1361 gStyle->SetOptStat(101110); 1362 // Aeff1D->SetStats(0); 1363 Aeff1D->SetMarkerStyle(20); 1364 Aeff1D->SetMarkerSize(0.4); 1365 Aeff1D->GetYaxis()->SetLabelSize(0.04); 1366 Aeff1D->SetTitle("all runs & events& channels"); 1367 Aeff1D->SetXTitle("Aijk"); 1368 Aeff1D->SetYTitle("N"); 1369 Aeff1D->SetMarkerColor(4); 1370 Aeff1D->SetLineColor(4); 1371 // Aeff1D->Draw("Error"); 1372 // Aeff1D->Draw("PL"); 1373 Aeff1D->SetMinimum(0.8); 1374 Aeff1D->Draw(""); 1375 1376 c1->Update(); 1377 1378 } //Method = 10 1379 //======================================================================================================= PLOT11: 2D SiPM channels Depthes1,2,3,4 1380 if (Method == 11) { 1381 cout << "****Draw 11 <A>: 2D Depthes1,2,3,4 *** " << endl; 1382 // gPad->SetGridy(); 1383 // gPad->SetGridx(); 1384 // gStyle->SetOptStat(0000000); 1385 c1->Clear(); 1386 c1->Divide(2, 2); 1387 1388 c1->cd(1); 1389 mapchannelsdepth1->SetStats(0); 1390 mapchannelsdepth1->SetTitle("<A> Depth1"); 1391 mapchannelsdepth1->SetXTitle("#eta \b"); 1392 mapchannelsdepth1->SetYTitle("#phi \b"); 1393 mapchannelsdepth1->Draw("COLZ"); 1394 c1->cd(2); 1395 mapchannelsdepth2->SetStats(0); 1396 mapchannelsdepth2->SetTitle("<A> Depth2"); 1397 mapchannelsdepth2->SetXTitle("#eta \b"); 1398 mapchannelsdepth2->SetYTitle("#phi \b"); 1399 mapchannelsdepth2->Draw("COLZ"); 1400 c1->cd(3); 1401 mapchannelsdepth3->SetStats(0); 1402 mapchannelsdepth3->SetTitle("<A> Depth3"); 1403 mapchannelsdepth3->SetXTitle("#eta \b"); 1404 mapchannelsdepth3->SetYTitle("#phi \b"); 1405 mapchannelsdepth3->Draw("COLZ"); 1406 c1->cd(4); 1407 mapchannelsdepth4->SetStats(0); 1408 mapchannelsdepth4->SetTitle("<A> Depth4"); 1409 mapchannelsdepth4->SetXTitle("#eta \b"); 1410 mapchannelsdepth4->SetYTitle("#phi \b"); 1411 mapchannelsdepth4->Draw("COLZ"); 1412 1413 c1->Update(); 1414 1415 } //Method = 11 1416 //======================================================================================================= PLOT12: 2D SiPM channels Depthes5,6,7 1417 if (Method == 12) { 1418 cout << "****Draw 12 <A>: 2D Depthes5,6,7 *** " << endl; 1419 // gPad->SetGridy(); 1420 // gPad->SetGridx(); 1421 // gStyle->SetOptStat(0000000); 1422 c1->Clear(); 1423 c1->Divide(2, 2); 1424 1425 c1->cd(1); 1426 mapchannelsdepth5->SetStats(0); 1427 mapchannelsdepth5->SetTitle("<A> Depth5"); 1428 mapchannelsdepth5->SetXTitle("#eta \b"); 1429 mapchannelsdepth5->SetYTitle("#phi \b"); 1430 mapchannelsdepth5->Draw("COLZ"); 1431 c1->cd(2); 1432 mapchannelsdepth6->SetStats(0); 1433 mapchannelsdepth6->SetTitle("<A> Depth6"); 1434 mapchannelsdepth6->SetXTitle("#eta \b"); 1435 mapchannelsdepth6->SetYTitle("#phi \b"); 1436 mapchannelsdepth6->Draw("COLZ"); 1437 c1->cd(3); 1438 mapchannelsdepth7->SetStats(0); 1439 mapchannelsdepth7->SetTitle("<A> Depth7"); 1440 mapchannelsdepth7->SetXTitle("#eta \b"); 1441 mapchannelsdepth7->SetYTitle("#phi \b"); 1442 mapchannelsdepth7->Draw("COLZ"); 1443 1444 c1->Update(); 1445 1446 } //Method = 12 1447 1448 //======================================================================================================= PLOT13: 2D SiPM channels Depthes5,6,7 1449 if (Method == 13) { 1450 cout << "****Draw 13 function, fC *** " << endl; 1451 c1->Clear(); 1452 c1->Divide(1, 1); 1453 1454 c1->cd(1); 1455 { 1456 double c0 = 1.000000; 1457 double b1 = 2.71238e-05; 1458 double a2 = 1.32877e-10; 1459 Int_t n = 50; 1460 Double_t x[n], y[n]; 1461 for (Int_t i = 0; i < n; i++) { 1462 x[i] = (i + 1) * 20000.; 1463 y[i] = a2 * x[i] * x[i] / 40. / 40. + b1 * x[i] / 40. + c0; 1464 } 1465 1466 // create graph 1467 TGraph* gr = new TGraph(n, x, y); 1468 1469 // draw the graph with axis, continuous line, and put 1470 // a * at each point 1471 gPad->SetGridy(); 1472 gPad->SetGridx(); 1473 // gPad->SetLogy(); 1474 gr->Draw("AC*"); 1475 /* 1476 gr1 = new TGraph(MMcount,XXX,YY); 1477 colorlines = generalcount/5.+2; 1478 gr1->SetLineColor(colorlines); gr1->SetMarkerColor(colorlines); 1479 gr1->SetMarkerStyle(20); gr1->SetMarkerSize(1.2); gr1->SetFillStyle(0); gr1->Draw("PL"); 1480 */ 1481 } 1482 1483 c1->Update(); 1484 1485 } //Method = 13 1486 1487 // ////////////////////////////////////////////////////////////////////////// 1488 1489 //======================================================================================================= 1490 //======================================================================================================= finish loop over Methods 1491 //======================================================================================================= 1492 TString fdir = "testamt0shunt6gsm2018/"; 1493 // 1494 TString plotName = fdir + MethodName[Method] + ".png"; 1495 c1->SaveAs(plotName); 1496 cout << "****PLOT " << Method << " drawn **** " << endl; 1497 1498 } //if( Method != 9 1499 ++Method; 1500 } //while loop over Methods 1501 //======================================================================================================= 1502 //======================================================================================================= 1503 //======================================================================================================= 1504 //======================================================================================================= 1505 //======================================================================================================= 1506 //======================================================================================================= 1507 //======================================================================================================= 1508 //======================================================================================================= 1509 //======================================================================================================= 1510 //______________________________________________________________________________ 1511 //______________________________________________________________________________ 1512 // 1513 //______________________________________________________________________________ 1514 //______________________________________________________________________________ 1515 // 1516 gSystem->Exit(0); 1517 //______________________________________________________________________________ 1518 } 1519 //______________________________________________________________________________
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |