64 #if !defined(__CINT__) || defined(__MAKECINT__)
70 #include <Riostream.h>
72 #include <TGraphErrors.h>
75 #include <TFileMerger.h>
76 #include <TMultiGraph.h>
80 #include <TGridCollection.h>
81 #include <TGridResult.h>
82 #include <TClonesArray.h>
83 #include <TObjString.h>
94 gROOT->SetStyle(
"Plain");
95 gStyle->SetOptStat(0);
96 gStyle->SetFillColor(kWhite);
97 gStyle->SetTitleFillColor(kWhite);
98 gStyle->SetPalette(1);
99 char out[120];
char title[100];
char name[100];
char name2[100];
100 TString slide(Form(
"Cells %d-%d",cell,cell));
102 sprintf(out,
"%d.gif",cell);
103 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
104 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
106 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",600,600) ;
110 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
112 sprintf(name,
"Cell %d",cell) ;
113 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell+1,cell+1);
115 sprintf(title,
"Cell %d Entries : %d Enties ref: %d",cell, (
Int_t)hCell->GetEntries(),(
Int_t)hCellref->GetEntries()) ;
116 hCell->SetLineColor(2) ;
118 hCell->SetMaximum(1e5);
120 hCell->SetAxisRange(0.,10.);
121 hCell->GetXaxis()->SetTitle(
"E (GeV)");
122 hCell->GetYaxis()->SetTitle(
"N Entries");
123 hCellref->SetAxisRange(0.,10.);
124 hCell->SetLineWidth(1) ;
125 hCellref->SetLineWidth(1) ;
126 hCell->SetTitle(title);
127 hCellref->SetLineColor(1) ;
128 leg->AddEntry(hCellref,
"reference",
"l");
129 leg->AddEntry(hCell,
"current",
"l");
131 hCellref->Draw(
"same") ;
133 sprintf(name2,
"Cell%dLHC13MB.gif",cell) ;
141 gROOT->SetStyle(
"Plain");
142 gStyle->SetOptStat(0);
143 gStyle->SetFillColor(kWhite);
144 gStyle->SetTitleFillColor(kWhite);
145 gStyle->SetPalette(1);
146 char out[120];
char title[100];
char name[100];
147 TString slide(Form(
"Cells %d-%d",cell[iBC],cell[iBC+nBC-1]));
149 TString reflegend = Form(
"reference Cell %i",cellref);
150 sprintf(out,
"%d-%d.gif",cell[iBC],cell[iBC+nBC-1]);
151 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
152 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
154 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",1000,750) ;
156 if(nBC > 6) c1->Divide(3,3) ;
157 else if (nBC > 3) c1->Divide(3,2) ;
158 else c1->Divide(3,1);
160 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
161 for(i=0; i<nBC ; i++){
162 sprintf(name,
"Cell %d",cell[iBC+i]) ;
163 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell[iBC+i]+1,cell[iBC+i]+1);
166 c1->cd(i%9 + 1)->SetLogy();
167 sprintf(title,
"Cell %d Entries : %d Ref : %d",cell[iBC+i], (
Int_t)hCell->GetEntries(), (
Int_t)hCellref->GetEntries() ) ;
168 hCell->SetLineColor(2) ;
170 hCell->SetMaximum(1e6);
172 hCell->SetAxisRange(0.,10.);
173 hCell->GetXaxis()->SetTitle(
"E (GeV)");
174 hCell->GetYaxis()->SetTitle(
"N Entries");
175 hCellref->SetAxisRange(0.,8.);
176 hCell->SetLineWidth(1) ;
177 hCellref->SetLineWidth(1) ;
178 hCell->SetTitle(title);
179 hCellref->SetLineColor(1) ;
185 leg->AddEntry(hCellref,reflegend,
"l");
186 leg->AddEntry(hCell,
"current",
"l");
189 hCellref->Draw(
"same") ;
194 TString PdfName = Form(
"%s/BadChannelNew/2016/%s%sList1Test%i.pdf",datapath.Data(),period.Data(),pass.Data(),trial);
199 c1->Print(PdfName.Data());}
202 c1->Print(PdfName.Data());}
203 else c1->Print(PdfName.Data());
223 TH2F *hCellAmplitude =
new TH2F(
"hCellAmplitude",
"Cell Amplitude",200,0,10,23040,0,23040);
224 TH2F *hCellTime =
new TH2F(
"hCellTime",
"Cell Time",250,-275,975,23040,0,23040);
226 TH1D *hNEventsProcessedPerRun =
new TH1D(
"hNEventsProcessedPerRun",
"Number of processed events vs run number",200000,100000,300000);
229 TString file = Form(
"%s/%s%sBC1.txt",datapath.Data(),period.Data(),pass.Data());
232 cout <<
" file = " << file << endl;;
233 pFile = fopen(file.Data(),
"r");
236 cout <<
" fcalo: " << fCalorimeter <<
"; period: " << period <<
"; pass: " << pass <<
" trigger "<<trigger<< endl;
248 ncols = fscanf(pFile,
" %d ",&q);
256 const Int_t nRun = nlines ;
263 TString direct(Form(
"CaloQA_%s",trigger.Data()));
266 for(
Int_t i = 0 ; i < nRun ; i++) {
269 base2 = Form(
"%s/%s/%s/",datapath.Data(),period.Data(),pass.Data());
270 base = Form(
"%s/%s/%s/%d",datapath.Data(),period.Data(),pass.Data(),RunId[i]);
271 BCfile=Form(
"%s%s%sRunlist1New.root",base2.Data(),period.Data(),pass.Data());
276 if ((pass==
"cpass1_pass2")||(pass==
"cpass1-2")){
277 if (trigger==
"default"){
278 infile = Form(
"%s_barrel.root",base.Data());}
279 else {infile = Form(
"%s_outer.root",base.Data());}
282 infile = Form(
"%s.root",base.Data()) ;
283 cout<<
"file : "<<infile<<endl;
284 TFile *f = TFile::Open(infile);
287 base=Form(
"%s/%s",base.Data(),trigger.Data());
289 cout <<
" jusqu'ici ca va "<< endl;
290 TDirectoryFile *
dir = (TDirectoryFile *)f->Get(direct);
292 cout <<
" jusqu'ici ca va dir OK "<< endl;
294 if (!outputList)
continue;
296 cout <<
" jusqu'ici ca va List OK "<< endl;
302 hAmpId =(
TH2F *)outputList->FindObject(
"EMCAL_hAmpId");
305 hTimeId =(
TH2F *)outputList->FindObject(
"EMCAL_hTimeId");
308 cout<<
"file : "<<infile<<endl;
309 hNEvents =(
TH2F *)outputList->FindObject(
"hNEvents");
310 if (!hNEvents)
continue;
311 Nentr = (
Int_t)hNEvents->GetEntries();
312 cout <<
" N entries " << Nentr << endl;
313 if (Nentr<100) continue ;
314 hNEventsProcessedPerRun->SetBinContent(RunId[i]-100000,(
Double_t)Nentr);
318 hCellAmplitude->Add(hAmpId);
319 hCellTime->Add(hTimeId);
323 if(i==0){ cout<<
"Merging/Converting procedure ..." ; cout.flush();}
324 else { cout<<
"..." ; cout.flush();}
325 outputList->Delete();
332 TFile *BCF = TFile::Open(BCfile,
"recreate");
333 hNEventsProcessedPerRun->Write();
334 hCellAmplitude->Write();
337 cout<<
"DONE !"<<endl;
354 gStyle->SetOptStat(1);
355 gStyle->SetOptFit(1);
356 Int_t crit = *pflag[0][0] ;
361 dmaxval = inhisto->GetMaximum()*1.01;
362 if(crit==2 && dmaxval > 1) dmaxval =1. ;
365 TH1 *distrib =
new TH1F(Form(
"%sDistr",inhisto->GetName()),
"", dnbins, inhisto->GetMinimum(), dmaxval);
366 distrib->SetXTitle(inhisto->GetYaxis()->GetTitle());
367 distrib->SetYTitle(
"Entries");
370 for (
Int_t c = 1;
c <= inhisto->GetNbinsX();
c++)
371 distrib->Fill(inhisto->GetBinContent(
c));
374 TCanvas *c1 =
new TCanvas(inhisto->GetName(),inhisto->GetName(), 800,400);
378 gPad->SetLeftMargin(0.14);
379 gPad->SetRightMargin(0.06);
381 inhisto->SetTitleOffset(1.7,
"Y");
385 gPad->SetLeftMargin(0.14);
386 gPad->SetRightMargin(0.10);
391 for (i = 2; i <= distrib->GetNbinsX(); i++){
392 if(distrib->GetBinContent(higherbin) < distrib->GetBinContent(i))
396 for(i=higherbin ; i<=dnbins ; i++)
397 if(distrib->GetBinContent(i)<2)
break ;
398 goodmax = distrib->GetBinCenter(i);
400 for(i=higherbin ; i>0 ; i--)
401 if(distrib->GetBinContent(i)<2)
break ;
402 goodmin = distrib->GetBinLowEdge(i);
404 TF1 *fit2 =
new TF1(
"fit2",
"gaus");
406 distrib->Fit(fit2,
"0LQEM",
"", goodmin, goodmax);
409 mean = fit2->GetParameter(1);
410 sig = fit2->GetParameter(2);
411 chi2ndf = fit2->GetChisquare()/fit2->GetNDF();
420 if (mean <0.) mean=0.;
422 goodmin = mean - Nsigma*sig ;
423 goodmax = mean + Nsigma*sig ;
425 if (goodmin<0) goodmin=0.;
431 cout <<
"-----------------------------------------------------------------"<< endl;
432 cout <<
" pass " << compteur <<
" mean " << mean <<
" rms" << sig <<
" goodmin " << goodmin<<
" goodmax" << goodmax << endl;
433 cout <<
"-----------------------------------------------------------------"<< endl;
436 TLine *lline =
new TLine(goodmin, 0, goodmin, distrib->GetMaximum());
437 lline->SetLineColor(kOrange);
438 lline->SetLineStyle(7);
441 TLine *rline =
new TLine(goodmax, 0, goodmax, distrib->GetMaximum());
442 rline->SetLineColor(kOrange);
443 rline->SetLineStyle(7);
447 TLegend *leg =
new TLegend(0.60,0.82,0.9,0.88);
448 leg->AddEntry(lline,
"Good region boundary",
"l");
461 for (
Int_t c = 1;
c <= inhisto->GetNbinsX();
c++) {
462 cel=(
Int_t)(inhisto->GetBinLowEdge(
c)+0.1);
463 if (inhisto->GetBinContent(
c) <= goodmin) {
467 else if (inhisto->GetBinContent(
c) > goodmax) {
492 TH2 *hCellAmplitude = (
TH2*) gFile->Get(hname);
495 Int_t ncells = hCellAmplitude->GetNbinsY();
496 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
497 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
499 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
502 TH1* hCellEtotal =
new TH1F(Form(
"%s_hCellEtotal_E%.2f",hname,Emin),
503 Form(
"Total deposited energy, E > %.2f GeV",Emin), ncells,amin,amax);
504 hCellEtotal->SetXTitle(
"AbsId");
505 hCellEtotal->SetYTitle(
"Energy, GeV");
507 TH1F *hCellNtotal =
new TH1F(Form(
"%s_hCellNtotal_E%.2f",hname,Emin),
508 Form(
"Number of entries per events, E > %.2f GeV",Emin), ncells,amin,amax);
509 hCellNtotal->SetXTitle(
"AbsId");
510 hCellNtotal->SetYTitle(
"Entries");
512 TH1F *hCellEtoNtotal =
new TH1F(Form(
"%s_hCellEtoNtotal_E%.2f",hname,Emin),
513 Form(
"Average energy per hit, E > %.2f GeV",Emin), ncells,amin,amax);
514 hCellEtoNtotal->SetXTitle(
"AbsId");
515 hCellEtoNtotal->SetYTitle(
"Energy, GeV");
517 TH1* hNEventsProcessedPerRun = (
TH1*) gFile->Get(
"hNEventsProcessedPerRun");
518 Double_t totalevents = hNEventsProcessedPerRun->Integral(1, hNEventsProcessedPerRun->GetNbinsX());
521 for (
Int_t c = 1;
c <= ncells;
c++) {
526 for (
Int_t j = 1; j <= hCellAmplitude->GetNbinsX(); j++) {
528 Double_t E = hCellAmplitude->GetXaxis()->GetBinCenter(j);
529 Double_t N = hCellAmplitude->GetBinContent(j,
c);
530 if (E < Emin || E>Emax)
continue;
537 hCellEtotal->SetBinContent(
c, Esum);
538 hCellNtotal->SetBinContent(
c, Nsum/totalevents);
542 hCellEtoNtotal->SetBinContent(
c, Esum/Nsum);
546 delete hCellAmplitude;
550 Process(pflag, hCellEtoNtotal, Nsigma, dnbins, -1,compteur);
552 Process(pflag, hCellNtotal, Nsigma, dnbins,-1, compteur);
565 TH2 *hCellAmplitude = (
TH2*) gFile->Get(Form(
"%s",hname));
568 Int_t ncells = hCellAmplitude->GetNbinsY();
569 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
570 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
571 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
574 TH1 *hFitA =
new TH1F(Form(
"hFitA_%s",hname),
"Fit A value", ncells,amin,amax);
575 hFitA->SetXTitle(
"AbsId");
576 hFitA->SetYTitle(
"A");
578 TH1 *hFitB =
new TH1F(Form(
"hFitB_%s",hname),
"Fit B value", ncells,amin,amax);
579 hFitB->SetXTitle(
"AbsId");
580 hFitB->SetYTitle(
"B");
582 TH1 *hFitChi2Ndf =
new TH1F(Form(
"hFitChi2Ndf_%s",hname),
"Fit #chi^{2}/ndf value", ncells,amin,amax);
583 hFitChi2Ndf->SetXTitle(
"AbsId");
584 hFitChi2Ndf->SetYTitle(
"#chi^{2}/ndf");
586 Double_t maxval1=0., maxval2=0., maxval3=0.;
587 Double_t prev=0., MSA=0., AvA = 0. ;
588 Double_t prev2=0., MSB=0., AvB = 0. ;
589 Double_t prev3=0., MSki2=0., Avki2 = 0. ;
591 for (
Int_t k = 1; k <= ncells; k++) {
592 TF1 *fit =
new TF1(
"fit",
"[0]*exp(-[1]*x)/x^2");
593 TH1 *hCell = hCellAmplitude->ProjectionX(
"",k,k);
594 if (hCell->GetEntries() == 0)
continue;
596 hCell->Fit(fit,
"0QEM",
"", fitEmin, fitEmax);
599 if(fit->GetParameter(0) < 5000.){
600 hFitA->SetBinContent(k, fit->GetParameter(0));
602 AvA += fit->GetParameter(0);
603 if(k==2999) maxval1 = AvA/3000. ;
604 if (prev < fit->GetParameter(0)) MSA += fit->GetParameter(0) - prev;
605 else MSA -= (fit->GetParameter(0) - prev) ;
606 prev = fit->GetParameter(0);
612 if((fit->GetParameter(0) - maxval1) > 0. && (fit->GetParameter(0) - maxval1) < (MSA/1000.))
614 maxval1 = fit->GetParameter(0);
618 else hFitA->SetBinContent(k, 5000.);
622 if(fit->GetParameter(1) < 5000.){
623 hFitB->SetBinContent(k, fit->GetParameter(1));
625 AvB += fit->GetParameter(1);
626 if(k==2999) maxval2 = AvB/3000. ;
627 if (prev2 < fit->GetParameter(1)) MSB += fit->GetParameter(1) - prev2;
628 else MSB -= (fit->GetParameter(1) - prev2) ;
629 prev2 = fit->GetParameter(1);
635 if((fit->GetParameter(1) - maxval2) > 0. && (fit->GetParameter(1) - maxval2) < (MSB/1000.))
637 maxval2 = fit->GetParameter(1);
641 else hFitB->SetBinContent(k, 5000.);
644 if (fit->GetNDF() != 0 ) ki2 = fit->GetChisquare()/fit->GetNDF();
648 hFitChi2Ndf->SetBinContent(k, ki2);
651 if(k==2999) maxval3 = Avki2/3000. ;
652 if (prev3 < ki2) MSki2 += ki2 - prev3;
653 else MSki2 -= (ki2 - prev3) ;
660 if((ki2 - maxval3) > 0. && (ki2 - maxval3) < (MSki2/1000.))
666 else hFitChi2Ndf->SetBinContent(k, 1000.);
672 delete hCellAmplitude;
681 Process(pflag, hFitChi2Ndf, Nsigma, dnbins, maxval3,compteur);
685 Process(pflag, hFitA, Nsigma, dnbins, maxval1,compteur);
689 Process(pflag, hFitB, Nsigma, dnbins, maxval2,compteur);
698 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
701 for (
Int_t c = 1;
c <= 23040;
c++) {
704 for (
Int_t l = 1; l <= hCellAmplitude->GetNbinsX(); l++) {
705 Double_t N = hCellAmplitude->GetBinContent(l,
c);
709 if(Nsum < 0.5 && *pexclu[
c-1]!=1)
714 delete hCellAmplitude;
722 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
724 for(
Int_t i =0; i<nbc; i++){
725 for(
Int_t j=0; j<= hCellAmplitude->GetNbinsX() ;j++){
726 hCellAmplitude->SetBinContent(j,filter[i]+1,0) ; }}
728 TH1* hNEventsProcessedPerRun = (
TH1*) gFile->Get(
"hNEventsProcessedPerRun");
730 TFile *tf =
new TFile(
"filter.root",
"recreate");
731 hCellAmplitude->Write();
732 hNEventsProcessedPerRun->Write();
735 delete hCellAmplitude;
delete hNEventsProcessedPerRun;
754 Int_t *pexclu[23040] ;
756 Int_t *pflag[23040][7] ;
757 Int_t flag[23040][7];
764 if(criterum == 7) bilan = Form(
"%s%sBC0Test%i.txt",period.Data(),pass.Data(),trial);
766 output.Form(
"Criterum-%d_Emin-%.2f_Emax-%.2f.txt",criterum,Emin,Emax);
767 for(i=0;i<23040;i++) { exclu[i]=0; pexclu[i] =&exclu[i];
768 for(j=0;j<7;j++) { flag[i][j] =1 ; pflag[i][j] = &flag[i][j];}}
769 flag[0][0]=criterum ;
782 cout<<
"FINAL RESULTS"<<endl;
783 ofstream fichier(bilan, ios::out | ios::trunc);
785 fichier<<
"Dead cells : "<<endl;
786 cout<<
"Dead cells : "<<endl;
789 for(i=0;i<17665;i++) {
791 if(exclu[i]!=0) {fichier<<i<<
"\n" ; cout<<i<<
", " ; nb++;}}
793 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl; nb=0;
795 TFile::Open(
"filter.root");
797 fichier<<
"Bad cells : "<<endl; cout<<
"Bad cells : "<<endl;
798 for(i=0;i<17665;i++) {
800 if(exclu[i]!=0) {bad[nb]=i; fichier<<i<<
"\n" ; cout<<i<<
", " ;
805 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl;}
812 for(w=0; (w*9)<=nb; w++) {
813 if(9<=(nb-w*9)) c = 9 ;
815 Draw(bad, w*9, c,datapath,period,pass,trial) ;
823 if (criterum < 3)
TestCellEandN(pflag, Emin, Emax,Nsigma,compteur);
824 else if (criterum < 6)
829 if(criterum < 6) { nb=0;
830 cout<<
"bad by lower value Emin : "<< Emin <<
" Emax = " << Emax << endl;
831 for(i=0;i<17665;i++) {
832 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
833 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
835 cout<<
"bad by higher value Emin : "<< Emin <<
" Emax = " << Emax <<endl;
836 for(i=0;i<17665;i++) {
837 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
838 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
840 cout<<
"total bad "<<endl;
841 for(i=0;i<17665;i++) {
842 if(flag[i][criterum]!=1 && exclu[i]==0) {
845 cout<<i<<
", " ; }} cout<<
"("<<nb<<
")"<<endl;
852 ofstream fichier(output, ios::out | ios::trunc);
855 fichier <<
"criterum : "<<criterum<<
", Emin = "<<Emin<<
" GeV"<<
", Emax = "<<Emax<<
" GeV"<<endl;
856 fichier<<
"bad by lower value : "<<endl;
857 for(i=0;i<17665;i++) {
858 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
859 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
861 fichier<<
"bad by higher value : "<<endl;
862 for(i=0;i<17665;i++) {
863 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
864 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
865 fichier<<
"total bad "<<endl;
866 for(i=0;i<17665;i++) {
867 if(flag[i][criterum]!=1 && exclu[i]==0) {
870 fichier<<i<<
", " ; }} fichier<<
"("<<nb<<
")"<<endl;
874 cerr <<
"opening error" << endl;
900 if(trigger==
"default"||trigger==
"INT7"||trigger==
"DMC7"||trigger==
"AnyINTnoBC"){
905 TFile::Open(
"filter.root");
907 TFile::Open(
"filter.root");
909 TFile::Open(
"filter.root");
911 TFile::Open(
"filter.root");
913 TFile::Open(
"filter.root");
918 TFile::Open(
"filter.root");
920 TFile::Open(
"filter.root");
922 TFile::Open(
"filter.root");
924 TFile::Open(
"filter.root");
937 TFile::Open(
"filter.root");
939 TFile::Open(
"filter.root");
941 TFile::Open(
"filter.root");
943 TFile::Open(
"filter.root");
945 TFile::Open(
"filter.root");
947 TFile::Open(
"filter.root");
969 TString inputfile(Form(
"%s/%s/%s/%s%sRunlist1New.root",datapath.Data(),period.Data(),pass.Data(),period.Data(),pass.Data(),trigger.Data()));
971 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])
TFile * file
TList with histograms for a given trigger.
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)