58 #if !defined(__CINT__) || defined(__MAKECINT__)
64 #include <Riostream.h>
66 #include <TGraphErrors.h>
69 #include <TFileMerger.h>
70 #include <TMultiGraph.h>
74 #include <TGridCollection.h>
75 #include <TGridResult.h>
76 #include <TClonesArray.h>
77 #include <TObjString.h>
87 void Draw2(Int_t cell, Int_t cellref=400) {
88 gROOT->SetStyle(
"Plain");
89 gStyle->SetOptStat(0);
90 gStyle->SetFillColor(kWhite);
91 gStyle->SetTitleFillColor(kWhite);
92 gStyle->SetPalette(1);
93 char out[120];
char title[100];
char name[100];
char name2[100];
94 TString slide(Form(
"Cells %d-%d",cell,cell));
96 sprintf(out,
"%d.gif",cell);
97 TH2 *hCellAmplitude = (TH2*) gFile->Get(
"hCellAmplitude");
98 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
100 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",600,600) ;
104 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
106 sprintf(name,
"Cell %d",cell) ;
107 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell+1,cell+1);
109 sprintf(title,
"Cell %d Entries : %d Enties ref: %d",cell, (Int_t)hCell->GetEntries(),(Int_t)hCellref->GetEntries()) ;
110 hCell->SetLineColor(2) ;
112 hCell->SetMaximum(1e5);
114 hCell->SetAxisRange(0.,10.);
115 hCell->GetXaxis()->SetTitle(
"E (GeV)");
116 hCell->GetYaxis()->SetTitle(
"N Entries");
117 hCellref->SetAxisRange(0.,10.);
118 hCell->SetLineWidth(1) ;
119 hCellref->SetLineWidth(1) ;
120 hCell->SetTitle(title);
121 hCellref->SetLineColor(1) ;
122 leg->AddEntry(hCellref,
"reference",
"l");
123 leg->AddEntry(hCell,
"current",
"l");
125 hCellref->Draw(
"same") ;
127 sprintf(name2,
"Cell%dLHC13MB.gif",cell) ;
132 void Draw(Int_t cell[], Int_t iBC, Int_t nBC,TString datapath=
"/scratch/alicehp2/germain/QANew2/", TString period=
"LHC15f", TString pass=
"pass2", Int_t trial=0,
const Int_t cellref=2377){
135 gROOT->SetStyle(
"Plain");
136 gStyle->SetOptStat(0);
137 gStyle->SetFillColor(kWhite);
138 gStyle->SetTitleFillColor(kWhite);
139 gStyle->SetPalette(1);
140 char out[120];
char title[100];
char name[100];
141 TString slide(Form(
"Cells %d-%d",cell[iBC],cell[iBC+nBC-1]));
143 TString reflegend = Form(
"reference Cell %i",cellref);
144 sprintf(out,
"%d-%d.gif",cell[iBC],cell[iBC+nBC-1]);
145 TH2 *hCellAmplitude = (TH2*) gFile->Get(
"hCellAmplitude");
146 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
148 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",1000,750) ;
150 if(nBC > 6) c1->Divide(3,3) ;
151 else if (nBC > 3) c1->Divide(3,2) ;
152 else c1->Divide(3,1);
154 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
155 for(i=0; i<nBC ; i++){
156 sprintf(name,
"Cell %d",cell[iBC+i]) ;
157 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell[iBC+i]+1,cell[iBC+i]+1);
160 c1->cd(i%9 + 1)->SetLogy();
161 sprintf(title,
"Cell %d Entries : %d Ref : %d",cell[iBC+i], (Int_t)hCell->GetEntries(), (Int_t)hCellref->GetEntries() ) ;
162 hCell->SetLineColor(2) ;
164 hCell->SetMaximum(1e6);
166 hCell->SetAxisRange(0.,10.);
167 hCell->GetXaxis()->SetTitle(
"E (GeV)");
168 hCell->GetYaxis()->SetTitle(
"N Entries");
169 hCellref->SetAxisRange(0.,8.);
170 hCell->SetLineWidth(1) ;
171 hCellref->SetLineWidth(1) ;
172 hCell->SetTitle(title);
173 hCellref->SetLineColor(1) ;
179 leg->AddEntry(hCellref,reflegend,
"l");
180 leg->AddEntry(hCell,
"current",
"l");
183 hCellref->Draw(
"same") ;
188 TString PdfName = Form(
"%s/BadChannelNew/2016/%s%sList1Test%i.pdf",datapath.Data(),period.Data(),pass.Data(),trial);
193 c1->Print(PdfName.Data());}
196 c1->Print(PdfName.Data());}
197 else c1->Print(PdfName.Data());
210 void Convert(TString datapath=
"/scratch/alicehp2/germain/QANew2",TString fCalorimeter =
"EMCAL", TString period =
"LHC11h", TString pass =
"pass1_HLT", TString trigger=
"default"){
217 TH2F *hCellAmplitude =
new TH2F(
"hCellAmplitude",
"Cell Amplitude",200,0,10,23040,0,23040);
218 TH2F *hCellTime =
new TH2F(
"hCellTime",
"Cell Time",250,-275,975,23040,0,23040);
220 TH1D *hNEventsProcessedPerRun =
new TH1D(
"hNEventsProcessedPerRun",
"Number of processed events vs run number",200000,100000,300000);
223 TString
file = Form(
"%s/%s%sBC1.txt",datapath.Data(),period.Data(),pass.Data());
226 cout <<
" file = " << file << endl;;
227 pFile = fopen(file.Data(),
"r");
230 cout <<
" fcalo: " << fCalorimeter <<
"; period: " << period <<
"; pass: " << pass <<
" trigger "<<trigger<< endl;
242 ncols = fscanf(pFile,
" %d ",&q);
250 const Int_t nRun = nlines ;
257 TString direct(Form(
"CaloQA_%s",trigger.Data()));
260 for(Int_t i = 0 ; i < nRun ; i++) {
263 base2 = Form(
"%s/%s/%s/",datapath.Data(),period.Data(),pass.Data());
264 base = Form(
"%s/%s/%s/%d",datapath.Data(),period.Data(),pass.Data(),RunId[i]);
265 BCfile=Form(
"%s%s%sRunlist1New.root",base2.Data(),period.Data(),pass.Data());
270 if ((pass==
"cpass1_pass2")||(pass==
"cpass1-2")){
271 if (trigger==
"default"){
272 infile = Form(
"%s_barrel.root",base.Data());}
273 else {infile = Form(
"%s_outer.root",base.Data());}
276 infile = Form(
"%s.root",base.Data()) ;
277 cout<<
"file : "<<infile<<endl;
278 TFile *f = TFile::Open(infile);
281 base=Form(
"%s/%s",base.Data(),trigger.Data());
283 cout <<
" jusqu'ici ca va "<< endl;
284 TDirectoryFile *dir = (TDirectoryFile *)f->Get(direct);
286 cout <<
" jusqu'ici ca va dir OK "<< endl;
287 TList *outputList = (TList*)dir->Get(direct);
288 if (!outputList)
continue;
290 cout <<
" jusqu'ici ca va List OK "<< endl;
296 hAmpId =(TH2F *)outputList->FindObject(
"EMCAL_hAmpId");
299 hTimeId =(TH2F *)outputList->FindObject(
"EMCAL_hTimeId");
302 cout<<
"file : "<<infile<<endl;
303 hNEvents =(TH2F *)outputList->FindObject(
"hNEvents");
304 if (!hNEvents)
continue;
305 Nentr = (Int_t)hNEvents->GetEntries();
306 cout <<
" N entries " << Nentr << endl;
307 if (Nentr<100) continue ;
308 hNEventsProcessedPerRun->SetBinContent(RunId[i]-100000,(Double_t)Nentr);
312 hCellAmplitude->Add(hAmpId);
313 hCellTime->Add(hTimeId);
317 if(i==0){ cout<<
"Merging/Converting procedure ..." ; cout.flush();}
318 else { cout<<
"..." ; cout.flush();}
319 outputList->Delete();
326 TFile *BCF = TFile::Open(BCfile,
"recreate");
327 hNEventsProcessedPerRun->Write();
328 hCellAmplitude->Write();
331 cout<<
"DONE !"<<endl;
338 void Process(Int_t *pflag[23040][7], TH1* inhisto, Double_t Nsigma = 4., Int_t dnbins = 200, Double_t dmaxval = -1., Int_t compteur = 1)
348 gStyle->SetOptStat(1);
349 gStyle->SetOptFit(1);
350 Int_t crit = *pflag[0][0] ;
351 Double_t goodmax= 0. ;
352 Double_t goodmin= 0. ;
355 dmaxval = inhisto->GetMaximum()*1.01;
356 if(crit==2 && dmaxval > 1) dmaxval =1. ;
359 TH1 *distrib =
new TH1F(Form(
"%sDistr",inhisto->GetName()),
"", dnbins, inhisto->GetMinimum(), dmaxval);
360 distrib->SetXTitle(inhisto->GetYaxis()->GetTitle());
361 distrib->SetYTitle(
"Entries");
364 for (Int_t c = 1; c <= inhisto->GetNbinsX(); c++)
365 distrib->Fill(inhisto->GetBinContent(c));
368 TCanvas *c1 =
new TCanvas(inhisto->GetName(),inhisto->GetName(), 800,400);
372 gPad->SetLeftMargin(0.14);
373 gPad->SetRightMargin(0.06);
375 inhisto->SetTitleOffset(1.7,
"Y");
379 gPad->SetLeftMargin(0.14);
380 gPad->SetRightMargin(0.10);
385 for (i = 2; i <= distrib->GetNbinsX(); i++){
386 if(distrib->GetBinContent(higherbin) < distrib->GetBinContent(i))
390 for(i=higherbin ; i<=dnbins ; i++)
391 if(distrib->GetBinContent(i)<2)
break ;
392 goodmax = distrib->GetBinCenter(i);
394 for(i=higherbin ; i>0 ; i--)
395 if(distrib->GetBinContent(i)<2)
break ;
396 goodmin = distrib->GetBinLowEdge(i);
398 TF1 *fit2 =
new TF1(
"fit2",
"gaus");
400 distrib->Fit(fit2,
"0LQEM",
"", goodmin, goodmax);
401 Double_t sig, mean, chi2ndf;
403 mean = fit2->GetParameter(1);
404 sig = fit2->GetParameter(2);
405 chi2ndf = fit2->GetChisquare()/fit2->GetNDF();
414 if (mean <0.) mean=0.;
416 goodmin = mean - Nsigma*sig ;
417 goodmax = mean + Nsigma*sig ;
419 if (goodmin<0) goodmin=0.;
425 cout <<
"-----------------------------------------------------------------"<< endl;
426 cout <<
" pass " << compteur <<
" mean " << mean <<
" rms" << sig <<
" goodmin " << goodmin<<
" goodmax" << goodmax << endl;
427 cout <<
"-----------------------------------------------------------------"<< endl;
430 TLine *lline =
new TLine(goodmin, 0, goodmin, distrib->GetMaximum());
431 lline->SetLineColor(kOrange);
432 lline->SetLineStyle(7);
435 TLine *rline =
new TLine(goodmax, 0, goodmax, distrib->GetMaximum());
436 rline->SetLineColor(kOrange);
437 rline->SetLineStyle(7);
441 TLegend *leg =
new TLegend(0.60,0.82,0.9,0.88);
442 leg->AddEntry(lline,
"Good region boundary",
"l");
447 TString name =
"criteria-" ;
455 for (Int_t c = 1; c <= inhisto->GetNbinsX(); c++) {
456 cel=(Int_t)(inhisto->GetBinLowEdge(c)+0.1);
457 if (inhisto->GetBinContent(c) <= goodmin) {
461 else if (inhisto->GetBinContent(c) > goodmax) {
471 void TestCellEandN(Int_t *pflag[23040][7], Double_t Emin = 0.1, Double_t Emax=2., Double_t Nsigma = 4., Int_t compteur = 1,
char const * hname =
"hCellAmplitude", Int_t dnbins = 200)
486 TH2 *hCellAmplitude = (TH2*) gFile->Get(hname);
489 Int_t ncells = hCellAmplitude->GetNbinsY();
490 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
491 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
493 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
496 TH1* hCellEtotal =
new TH1F(Form(
"%s_hCellEtotal_E%.2f",hname,Emin),
497 Form(
"Total deposited energy, E > %.2f GeV",Emin), ncells,amin,amax);
498 hCellEtotal->SetXTitle(
"AbsId");
499 hCellEtotal->SetYTitle(
"Energy, GeV");
501 TH1F *hCellNtotal =
new TH1F(Form(
"%s_hCellNtotal_E%.2f",hname,Emin),
502 Form(
"Number of entries per events, E > %.2f GeV",Emin), ncells,amin,amax);
503 hCellNtotal->SetXTitle(
"AbsId");
504 hCellNtotal->SetYTitle(
"Entries");
506 TH1F *hCellEtoNtotal =
new TH1F(Form(
"%s_hCellEtoNtotal_E%.2f",hname,Emin),
507 Form(
"Average energy per hit, E > %.2f GeV",Emin), ncells,amin,amax);
508 hCellEtoNtotal->SetXTitle(
"AbsId");
509 hCellEtoNtotal->SetYTitle(
"Energy, GeV");
511 TH1* hNEventsProcessedPerRun = (TH1*) gFile->Get(
"hNEventsProcessedPerRun");
512 Double_t totalevents = hNEventsProcessedPerRun->Integral(1, hNEventsProcessedPerRun->GetNbinsX());
515 for (Int_t c = 1; c <= ncells; c++) {
520 for (Int_t j = 1; j <= hCellAmplitude->GetNbinsX(); j++) {
522 Double_t E = hCellAmplitude->GetXaxis()->GetBinCenter(j);
523 Double_t N = hCellAmplitude->GetBinContent(j, c);
524 if (E < Emin || E>Emax)
continue;
531 hCellEtotal->SetBinContent(c, Esum);
532 hCellNtotal->SetBinContent(c, Nsum/totalevents);
536 hCellEtoNtotal->SetBinContent(c, Esum/Nsum);
540 delete hCellAmplitude;
544 Process(pflag, hCellEtoNtotal, Nsigma, dnbins, -1,compteur);
546 Process(pflag, hCellNtotal, Nsigma, dnbins,-1, compteur);
552 void TestCellShapes(Int_t *pflag[23040][7], Double_t fitEmin, Double_t fitEmax, Double_t Nsigma =4., Int_t compteur= 1,
char const * hname =
"hCellAmplitude", Int_t dnbins = 1000)
559 TH2 *hCellAmplitude = (TH2*) gFile->Get(Form(
"%s",hname));
562 Int_t ncells = hCellAmplitude->GetNbinsY();
563 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
564 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
565 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
568 TH1 *hFitA =
new TH1F(Form(
"hFitA_%s",hname),
"Fit A value", ncells,amin,amax);
569 hFitA->SetXTitle(
"AbsId");
570 hFitA->SetYTitle(
"A");
572 TH1 *hFitB =
new TH1F(Form(
"hFitB_%s",hname),
"Fit B value", ncells,amin,amax);
573 hFitB->SetXTitle(
"AbsId");
574 hFitB->SetYTitle(
"B");
576 TH1 *hFitChi2Ndf =
new TH1F(Form(
"hFitChi2Ndf_%s",hname),
"Fit #chi^{2}/ndf value", ncells,amin,amax);
577 hFitChi2Ndf->SetXTitle(
"AbsId");
578 hFitChi2Ndf->SetYTitle(
"#chi^{2}/ndf");
580 Double_t maxval1=0., maxval2=0., maxval3=0.;
581 Double_t prev=0., MSA=0., AvA = 0. ;
582 Double_t prev2=0., MSB=0., AvB = 0. ;
583 Double_t prev3=0., MSki2=0., Avki2 = 0. ;
585 for (Int_t k = 1; k <= ncells; k++) {
586 TF1 *fit =
new TF1(
"fit",
"[0]*exp(-[1]*x)/x^2");
587 TH1 *hCell = hCellAmplitude->ProjectionX(
"",k,k);
588 if (hCell->GetEntries() == 0)
continue;
590 hCell->Fit(fit,
"0QEM",
"", fitEmin, fitEmax);
593 if(fit->GetParameter(0) < 5000.){
594 hFitA->SetBinContent(k, fit->GetParameter(0));
596 AvA += fit->GetParameter(0);
597 if(k==2999) maxval1 = AvA/3000. ;
598 if (prev < fit->GetParameter(0)) MSA += fit->GetParameter(0) - prev;
599 else MSA -= (fit->GetParameter(0) - prev) ;
600 prev = fit->GetParameter(0);
606 if((fit->GetParameter(0) - maxval1) > 0. && (fit->GetParameter(0) - maxval1) < (MSA/1000.))
608 maxval1 = fit->GetParameter(0);
612 else hFitA->SetBinContent(k, 5000.);
616 if(fit->GetParameter(1) < 5000.){
617 hFitB->SetBinContent(k, fit->GetParameter(1));
619 AvB += fit->GetParameter(1);
620 if(k==2999) maxval2 = AvB/3000. ;
621 if (prev2 < fit->GetParameter(1)) MSB += fit->GetParameter(1) - prev2;
622 else MSB -= (fit->GetParameter(1) - prev2) ;
623 prev2 = fit->GetParameter(1);
629 if((fit->GetParameter(1) - maxval2) > 0. && (fit->GetParameter(1) - maxval2) < (MSB/1000.))
631 maxval2 = fit->GetParameter(1);
635 else hFitB->SetBinContent(k, 5000.);
638 if (fit->GetNDF() != 0 ) ki2 = fit->GetChisquare()/fit->GetNDF();
642 hFitChi2Ndf->SetBinContent(k, ki2);
645 if(k==2999) maxval3 = Avki2/3000. ;
646 if (prev3 < ki2) MSki2 += ki2 - prev3;
647 else MSki2 -= (ki2 - prev3) ;
654 if((ki2 - maxval3) > 0. && (ki2 - maxval3) < (MSki2/1000.))
660 else hFitChi2Ndf->SetBinContent(k, 1000.);
666 delete hCellAmplitude;
675 Process(pflag, hFitChi2Ndf, Nsigma, dnbins, maxval3,compteur);
679 Process(pflag, hFitA, Nsigma, dnbins, maxval1,compteur);
683 Process(pflag, hFitB, Nsigma, dnbins, maxval2,compteur);
692 TH2 *hCellAmplitude = (TH2*) gFile->Get(
"hCellAmplitude");
695 for (Int_t c = 1; c <= 23040; c++) {
698 for (Int_t l = 1; l <= hCellAmplitude->GetNbinsX(); l++) {
699 Double_t N = hCellAmplitude->GetBinContent(l, c);
703 if(Nsum < 0.5 && *pexclu[c-1]!=1)
708 delete hCellAmplitude;
716 TH2 *hCellAmplitude = (TH2*) gFile->Get(
"hCellAmplitude");
718 for(Int_t i =0; i<nbc; i++){
719 for(Int_t j=0; j<= hCellAmplitude->GetNbinsX() ;j++){
720 hCellAmplitude->SetBinContent(j,filter[i]+1,0) ; }}
722 TH1* hNEventsProcessedPerRun = (TH1*) gFile->Get(
"hNEventsProcessedPerRun");
724 TFile *tf =
new TFile(
"filter.root",
"recreate");
725 hCellAmplitude->Write();
726 hNEventsProcessedPerRun->Write();
729 delete hCellAmplitude;
delete hNEventsProcessedPerRun;
735 void PeriodAnalysis(Int_t criterum=7, Double_t Nsigma = 4.0, Double_t Emin=0.1, Double_t Emax=2.0, Int_t compteur = 1, TString datapath=
"/scratch/alicehp2/germain/QANew2",TString period =
"LHC15f", TString pass =
"pass2", Int_t trial=0, TString
file =
"none"){
748 Int_t *pexclu[23040] ;
750 Int_t *pflag[23040][7] ;
751 Int_t flag[23040][7];
756 TString output, bilan;
758 if(criterum == 7) bilan = Form(
"%s%sBC0Test%i.txt",period.Data(),pass.Data(),trial);
760 output.Form(
"Criterum-%d_Emin-%.2f_Emax-%.2f.txt",criterum,Emin,Emax);
761 for(i=0;i<23040;i++) { exclu[i]=0; pexclu[i] =&exclu[i];
762 for(j=0;j<7;j++) { flag[i][j] =1 ; pflag[i][j] = &flag[i][j];}}
763 flag[0][0]=criterum ;
776 cout<<
"FINAL RESULTS"<<endl;
777 ofstream fichier(bilan, ios::out | ios::trunc);
779 fichier<<
"Dead cells : "<<endl;
780 cout<<
"Dead cells : "<<endl;
783 for(i=0;i<17665;i++) {
785 if(exclu[i]!=0) {fichier<<i<<
"\n" ; cout<<i<<
", " ; nb++;}}
787 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl; nb=0;
789 TFile::Open(
"filter.root");
791 fichier<<
"Bad cells : "<<endl; cout<<
"Bad cells : "<<endl;
792 for(i=0;i<17665;i++) {
794 if(exclu[i]!=0) {bad[nb]=i; fichier<<i<<
"\n" ; cout<<i<<
", " ;
799 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl;}
806 for(w=0; (w*9)<=nb; w++) {
807 if(9<=(nb-w*9)) c = 9 ;
809 Draw(bad, w*9, c,datapath,period,pass,trial) ;
817 if (criterum < 3)
TestCellEandN(pflag, Emin, Emax,Nsigma,compteur);
818 else if (criterum < 6)
823 if(criterum < 6) { nb=0;
824 cout<<
"bad by lower value Emin : "<< Emin <<
" Emax = " << Emax << endl;
825 for(i=0;i<17665;i++) {
826 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
827 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
829 cout<<
"bad by higher value Emin : "<< Emin <<
" Emax = " << Emax <<endl;
830 for(i=0;i<17665;i++) {
831 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
832 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
834 cout<<
"total bad "<<endl;
835 for(i=0;i<17665;i++) {
836 if(flag[i][criterum]!=1 && exclu[i]==0) {
839 cout<<i<<
", " ; }} cout<<
"("<<nb<<
")"<<endl;
846 ofstream fichier(output, ios::out | ios::trunc);
849 fichier <<
"criterum : "<<criterum<<
", Emin = "<<Emin<<
" GeV"<<
", Emax = "<<Emax<<
" GeV"<<endl;
850 fichier<<
"bad by lower value : "<<endl;
851 for(i=0;i<17665;i++) {
852 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
853 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
855 fichier<<
"bad by higher value : "<<endl;
856 for(i=0;i<17665;i++) {
857 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
858 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
859 fichier<<
"total bad "<<endl;
860 for(i=0;i<17665;i++) {
861 if(flag[i][criterum]!=1 && exclu[i]==0) {
864 fichier<<i<<
", " ; }} fichier<<
"("<<nb<<
")"<<endl;
868 cerr <<
"opening error" << endl;
878 void BCAnalysis(TString
file, TString datapath=
"scratch/alicehp2/germain/QANew2",TString trigger =
"default",TString period =
"LHC15f", TString pass =
"pass2",Int_t trial = 0){
886 Double_t Emini, Emaxi, Nsig;
894 if(trigger==
"default"||trigger==
"INT7"||trigger==
"DMC7"||trigger==
"AnyINTnoBC"){
899 TFile::Open(
"filter.root");
901 TFile::Open(
"filter.root");
903 TFile::Open(
"filter.root");
905 TFile::Open(
"filter.root");
907 TFile::Open(
"filter.root");
912 TFile::Open(
"filter.root");
914 TFile::Open(
"filter.root");
916 TFile::Open(
"filter.root");
918 TFile::Open(
"filter.root");
931 TFile::Open(
"filter.root");
933 TFile::Open(
"filter.root");
935 TFile::Open(
"filter.root");
937 TFile::Open(
"filter.root");
939 TFile::Open(
"filter.root");
941 TFile::Open(
"filter.root");
959 void BadChannelAnalysis(TString datapath=
"/scratch/alicehp2,germain/QANew2",TString fCalorimeter =
"EMCAL", TString period =
"LHC15f", TString pass =
"pass2", TString trigger=
"default",Int_t trial=0){
963 TString inputfile(Form(
"%s/%s/%s/%s%sRunlist1New.root",datapath.Data(),period.Data(),pass.Data(),period.Data(),pass.Data(),trigger.Data()));
965 BCAnalysis(inputfile,datapath,trigger,period,pass,trial);
void TestCellShapes(Int_t *pflag[23040][7], Double_t fitEmin, Double_t fitEmax, Double_t Nsigma=4., Int_t compteur=1, char const *hname="hCellAmplitude", Int_t dnbins=1000)
void Draw(Int_t cell[], Int_t iBC, Int_t nBC, TString datapath="/scratch/alicehp2/germain/QANew2/", TString period="LHC15f", TString pass="pass2", Int_t trial=0, const Int_t cellref=2377)
void BCAnalysis(TString file, TString datapath="scratch/alicehp2/germain/QANew2", TString trigger="default", TString period="LHC15f", TString pass="pass2", Int_t trial=0)
void PeriodAnalysis(Int_t criterum=7, Double_t Nsigma=4.0, Double_t Emin=0.1, Double_t Emax=2.0, Int_t compteur=1, TString datapath="/scratch/alicehp2/germain/QANew2", TString period="LHC15f", TString pass="pass2", Int_t trial=0, TString file="none")
void BadChannelAnalysis(TString datapath="/scratch/alicehp2,germain/QANew2", TString fCalorimeter="EMCAL", TString period="LHC15f", TString pass="pass2", TString trigger="default", Int_t trial=0)
void Convert(TString datapath="/scratch/alicehp2/germain/QANew2", TString fCalorimeter="EMCAL", TString period="LHC11h", TString pass="pass1_HLT", TString trigger="default")
void KillCells(Int_t filter[], Int_t nbc)
void ExcludeCells(Int_t *pexclu[23040])
void Process(Int_t *pflag[23040][7], TH1 *inhisto, Double_t Nsigma=4., Int_t dnbins=200, Double_t dmaxval=-1., Int_t compteur=1)
void Draw2(Int_t cell, Int_t cellref=400)
void TestCellEandN(Int_t *pflag[23040][7], Double_t Emin=0.1, Double_t Emax=2., Double_t Nsigma=4., Int_t compteur=1, char const *hname="hCellAmplitude", Int_t dnbins=200)