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> 105 Int_t compteur = 1,
char const * hname =
"hCellAmplitude",
Int_t dnbins = 200);
108 Int_t compteur= 1,
char const * hname =
"hCellAmplitude",
Int_t dnbins = 1000);
116 TString datapath=
"/scratch/alicehp2/germain/QANew2",
130 gROOT->SetStyle(
"Plain");
131 gStyle->SetOptStat(0);
132 gStyle->SetFillColor(kWhite);
133 gStyle->SetTitleFillColor(kWhite);
134 gStyle->SetPalette(1);
135 char out[120];
char title[100];
char name[100];
char name2[100];
136 TString slide(Form(
"Cells %d-%d",cell,cell));
138 sprintf(out,
"%d.gif",cell);
139 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
140 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
142 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",600,600) ;
146 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
148 sprintf(name,
"Cell %d",cell) ;
149 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell+1,cell+1);
151 sprintf(title,
"Cell %d Entries : %d Enties ref: %d",cell, (
Int_t)hCell->GetEntries(),(
Int_t)hCellref->GetEntries()) ;
152 hCell->SetLineColor(2) ;
154 hCell->SetMaximum(1e5);
156 hCell->SetAxisRange(0.,10.);
157 hCell->GetXaxis()->SetTitle(
"E (GeV)");
158 hCell->GetYaxis()->SetTitle(
"N Entries");
159 hCellref->SetAxisRange(0.,10.);
160 hCell->SetLineWidth(1) ;
161 hCellref->SetLineWidth(1) ;
162 hCell->SetTitle(title);
163 hCellref->SetLineColor(1) ;
164 leg->AddEntry(hCellref,
"reference",
"l");
165 leg->AddEntry(hCell,
"current",
"l");
167 hCellref->Draw(
"same") ;
169 sprintf(name2,
"Cell%dLHC13MB.gif",cell) ;
179 gROOT->SetStyle(
"Plain");
180 gStyle->SetOptStat(0);
181 gStyle->SetFillColor(kWhite);
182 gStyle->SetTitleFillColor(kWhite);
183 gStyle->SetPalette(1);
184 char out[120];
char title[100];
char name[100];
185 TString slide(Form(
"Cells %d-%d",cell[iBC],cell[iBC+nBC-1]));
187 TString reflegend = Form(
"reference Cell %i",cellref);
188 sprintf(out,
"%d-%d.gif",cell[iBC],cell[iBC+nBC-1]);
189 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
190 TH1 *hCellref = hCellAmplitude->ProjectionX(
"badcells",cellref+1,cellref+1);
192 TCanvas *c1 =
new TCanvas(
"badcells",
"badcells",1000,750) ;
194 if(nBC > 6) c1->Divide(3,3) ;
195 else if (nBC > 3) c1->Divide(3,2) ;
196 else c1->Divide(3,1);
198 TLegend *leg =
new TLegend(0.7, 0.7, 0.9, 0.9);
199 for(i=0; i<nBC ; i++){
200 sprintf(name,
"Cell %d",cell[iBC+i]) ;
201 TH1 *hCell = hCellAmplitude->ProjectionX(name,cell[iBC+i]+1,cell[iBC+i]+1);
204 c1->cd(i%9 + 1)->SetLogy();
205 sprintf(title,
"Cell %d Entries : %d Ref : %d",cell[iBC+i], (
Int_t)hCell->GetEntries(), (
Int_t)hCellref->GetEntries() ) ;
206 hCell->SetLineColor(2) ;
208 hCell->SetMaximum(1e6);
210 hCell->SetAxisRange(0.,10.);
211 hCell->GetXaxis()->SetTitle(
"E (GeV)");
212 hCell->GetYaxis()->SetTitle(
"N Entries");
213 hCellref->SetAxisRange(0.,8.);
214 hCell->SetLineWidth(1) ;
215 hCellref->SetLineWidth(1) ;
216 hCell->SetTitle(title);
217 hCellref->SetLineColor(1) ;
223 leg->AddEntry(hCellref,reflegend,
"l");
224 leg->AddEntry(hCell,
"current",
"l");
227 hCellref->Draw(
"same") ;
232 TString PdfName = Form(
"%s/BadChannelNew/2016/%s%sList1Test%i.pdf",datapath.Data(),period.Data(),pass.Data(),trial);
237 c1->Print(PdfName.Data());}
240 c1->Print(PdfName.Data());}
241 else c1->Print(PdfName.Data());
262 TH2F *hCellAmplitude =
new TH2F(
"hCellAmplitude",
"Cell Amplitude",200,0,10,23040,0,23040);
263 TH2F *hCellTime =
new TH2F(
"hCellTime",
"Cell Time",250,-275,975,23040,0,23040);
265 TH1D *hNEventsProcessedPerRun =
new TH1D(
"hNEventsProcessedPerRun",
"Number of processed events vs run number",200000,100000,300000);
268 TString file = Form(
"%s/%s%sBC1.txt",datapath.Data(),period.Data(),pass.Data());
271 cout <<
" file = " << file << endl;;
272 pFile = fopen(file.Data(),
"r");
275 cout <<
" fcalo: " << fCalorimeter <<
"; period: " << period <<
"; pass: " << pass <<
" trigger "<<trigger<< endl;
287 ncols = fscanf(pFile,
" %d ",&q);
295 const Int_t nRun = nlines ;
302 TString direct(Form(
"CaloQA_%s",trigger.Data()));
305 for(
Int_t i = 0 ; i < nRun ; i++) {
308 base2 = Form(
"%s/%s/%s/",datapath.Data(),period.Data(),pass.Data());
309 base = Form(
"%s/%s/%s/%d",datapath.Data(),period.Data(),pass.Data(),RunId[i]);
310 BCfile=Form(
"%s%s%sRunlist1New.root",base2.Data(),period.Data(),pass.Data());
315 if ((pass==
"cpass1_pass2")||(pass==
"cpass1-2")){
316 if (trigger==
"default"){
317 infile = Form(
"%s_barrel.root",base.Data());}
318 else {infile = Form(
"%s_outer.root",base.Data());}
321 infile = Form(
"%s.root",base.Data()) ;
322 cout<<
"file : "<<infile<<endl;
323 TFile *f = TFile::Open(infile);
326 base=Form(
"%s/%s",base.Data(),trigger.Data());
328 cout <<
" jusqu'ici ca va "<< endl;
329 TDirectoryFile *
dir = (TDirectoryFile *)f->Get(direct);
331 cout <<
" jusqu'ici ca va dir OK "<< endl;
333 if (!outputList)
continue;
335 cout <<
" jusqu'ici ca va List OK "<< endl;
341 hAmpId =(
TH2F *)outputList->FindObject(
"EMCAL_hAmpId");
344 hTimeId =(
TH2F *)outputList->FindObject(
"EMCAL_hTimeId");
347 cout<<
"file : "<<infile<<endl;
348 hNEvents =(
TH2F *)outputList->FindObject(
"hNEvents");
349 if (!hNEvents)
continue;
350 Nentr = (
Int_t)hNEvents->GetEntries();
351 cout <<
" N entries " << Nentr << endl;
352 if (Nentr<100) continue ;
353 hNEventsProcessedPerRun->SetBinContent(RunId[i]-100000,(
Double_t)Nentr);
357 hCellAmplitude->Add(hAmpId);
358 hCellTime->Add(hTimeId);
362 if(i==0){ cout<<
"Merging/Converting procedure ..." ; cout.flush();}
363 else { cout<<
"..." ; cout.flush();}
364 outputList->Delete();
371 TFile *BCF = TFile::Open(BCfile,
"recreate");
372 hNEventsProcessedPerRun->Write();
373 hCellAmplitude->Write();
376 cout<<
"DONE !"<<endl;
394 gStyle->SetOptStat(1);
395 gStyle->SetOptFit(1);
396 Int_t crit = *pflag[0][0] ;
401 dmaxval = inhisto->GetMaximum()*1.01;
402 if(crit==2 && dmaxval > 1) dmaxval =1. ;
405 TH1 *distrib =
new TH1F(Form(
"%sDistr",inhisto->GetName()),
"", dnbins, inhisto->GetMinimum(), dmaxval);
406 distrib->SetXTitle(inhisto->GetYaxis()->GetTitle());
407 distrib->SetYTitle(
"Entries");
410 for (
Int_t c = 1;
c <= inhisto->GetNbinsX();
c++)
411 distrib->Fill(inhisto->GetBinContent(
c));
414 TCanvas *c1 =
new TCanvas(inhisto->GetName(),inhisto->GetName(), 800,400);
418 gPad->SetLeftMargin(0.14);
419 gPad->SetRightMargin(0.06);
421 inhisto->SetTitleOffset(1.7,
"Y");
425 gPad->SetLeftMargin(0.14);
426 gPad->SetRightMargin(0.10);
431 for (i = 2; i <= distrib->GetNbinsX(); i++){
432 if(distrib->GetBinContent(higherbin) < distrib->GetBinContent(i))
436 for(i=higherbin ; i<=dnbins ; i++)
437 if(distrib->GetBinContent(i)<2)
break ;
438 goodmax = distrib->GetBinCenter(i);
440 for(i=higherbin ; i>0 ; i--)
441 if(distrib->GetBinContent(i)<2)
break ;
442 goodmin = distrib->GetBinLowEdge(i);
444 TF1 *fit2 =
new TF1(
"fit2",
"gaus");
446 distrib->Fit(fit2,
"0LQEM",
"", goodmin, goodmax);
449 mean = fit2->GetParameter(1);
450 sig = fit2->GetParameter(2);
451 chi2ndf = fit2->GetChisquare()/fit2->GetNDF();
460 if (mean <0.) mean=0.;
462 goodmin = mean - Nsigma*sig ;
463 goodmax = mean + Nsigma*sig ;
465 if (goodmin<0) goodmin=0.;
471 cout <<
"-----------------------------------------------------------------"<< endl;
472 cout <<
" pass " << compteur <<
" mean " << mean <<
" rms" << sig <<
" goodmin " << goodmin<<
" goodmax" << goodmax << endl;
473 cout <<
"-----------------------------------------------------------------"<< endl;
476 TLine *lline =
new TLine(goodmin, 0, goodmin, distrib->GetMaximum());
477 lline->SetLineColor(kOrange);
478 lline->SetLineStyle(7);
481 TLine *rline =
new TLine(goodmax, 0, goodmax, distrib->GetMaximum());
482 rline->SetLineColor(kOrange);
483 rline->SetLineStyle(7);
487 TLegend *leg =
new TLegend(0.60,0.82,0.9,0.88);
488 leg->AddEntry(lline,
"Good region boundary",
"l");
501 for (
Int_t c = 1;
c <= inhisto->GetNbinsX();
c++) {
502 cel=(
Int_t)(inhisto->GetBinLowEdge(
c)+0.1);
503 if (inhisto->GetBinContent(
c) <= goodmin) {
507 else if (inhisto->GetBinContent(
c) > goodmax) {
531 TH2 *hCellAmplitude = (
TH2*) gFile->Get(hname);
534 Int_t ncells = hCellAmplitude->GetNbinsY();
535 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
536 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
538 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
541 TH1* hCellEtotal =
new TH1F(Form(
"%s_hCellEtotal_E%.2f",hname,Emin),
542 Form(
"Total deposited energy, E > %.2f GeV",Emin), ncells,amin,amax);
543 hCellEtotal->SetXTitle(
"AbsId");
544 hCellEtotal->SetYTitle(
"Energy, GeV");
546 TH1F *hCellNtotal =
new TH1F(Form(
"%s_hCellNtotal_E%.2f",hname,Emin),
547 Form(
"Number of entries per events, E > %.2f GeV",Emin), ncells,amin,amax);
548 hCellNtotal->SetXTitle(
"AbsId");
549 hCellNtotal->SetYTitle(
"Entries");
551 TH1F *hCellEtoNtotal =
new TH1F(Form(
"%s_hCellEtoNtotal_E%.2f",hname,Emin),
552 Form(
"Average energy per hit, E > %.2f GeV",Emin), ncells,amin,amax);
553 hCellEtoNtotal->SetXTitle(
"AbsId");
554 hCellEtoNtotal->SetYTitle(
"Energy, GeV");
556 TH1* hNEventsProcessedPerRun = (
TH1*) gFile->Get(
"hNEventsProcessedPerRun");
557 Double_t totalevents = hNEventsProcessedPerRun->Integral(1, hNEventsProcessedPerRun->GetNbinsX());
560 for (
Int_t c = 1;
c <= ncells;
c++) {
565 for (
Int_t j = 1; j <= hCellAmplitude->GetNbinsX(); j++) {
567 Double_t E = hCellAmplitude->GetXaxis()->GetBinCenter(j);
568 Double_t N = hCellAmplitude->GetBinContent(j,
c);
569 if (E < Emin || E>Emax)
continue;
576 hCellEtotal->SetBinContent(
c, Esum);
577 hCellNtotal->SetBinContent(
c, Nsum/totalevents);
581 hCellEtoNtotal->SetBinContent(
c, Esum/Nsum);
585 delete hCellAmplitude;
589 Process(pflag, hCellEtoNtotal, Nsigma, dnbins, -1,compteur);
591 Process(pflag, hCellNtotal, Nsigma, dnbins,-1, compteur);
605 TH2 *hCellAmplitude = (
TH2*) gFile->Get(Form(
"%s",hname));
608 Int_t ncells = hCellAmplitude->GetNbinsY();
609 Double_t amin = hCellAmplitude->GetYaxis()->GetXmin();
610 Double_t amax = hCellAmplitude->GetYaxis()->GetXmax();
611 cout <<
"ncells " << ncells <<
" amin = " << amin <<
"amax = " << amax<< endl;
614 TH1 *hFitA =
new TH1F(Form(
"hFitA_%s",hname),
"Fit A value", ncells,amin,amax);
615 hFitA->SetXTitle(
"AbsId");
616 hFitA->SetYTitle(
"A");
618 TH1 *hFitB =
new TH1F(Form(
"hFitB_%s",hname),
"Fit B value", ncells,amin,amax);
619 hFitB->SetXTitle(
"AbsId");
620 hFitB->SetYTitle(
"B");
622 TH1 *hFitChi2Ndf =
new TH1F(Form(
"hFitChi2Ndf_%s",hname),
"Fit #chi^{2}/ndf value", ncells,amin,amax);
623 hFitChi2Ndf->SetXTitle(
"AbsId");
624 hFitChi2Ndf->SetYTitle(
"#chi^{2}/ndf");
626 Double_t maxval1=0., maxval2=0., maxval3=0.;
627 Double_t prev=0., MSA=0., AvA = 0. ;
628 Double_t prev2=0., MSB=0., AvB = 0. ;
629 Double_t prev3=0., MSki2=0., Avki2 = 0. ;
631 for (
Int_t k = 1; k <= ncells; k++) {
632 TF1 *fit =
new TF1(
"fit",
"[0]*exp(-[1]*x)/x^2");
633 TH1 *hCell = hCellAmplitude->ProjectionX(
"",k,k);
634 if (hCell->GetEntries() == 0)
continue;
636 hCell->Fit(fit,
"0QEM",
"", fitEmin, fitEmax);
639 if(fit->GetParameter(0) < 5000.){
640 hFitA->SetBinContent(k, fit->GetParameter(0));
642 AvA += fit->GetParameter(0);
643 if(k==2999) maxval1 = AvA/3000. ;
644 if (prev < fit->GetParameter(0)) MSA += fit->GetParameter(0) - prev;
645 else MSA -= (fit->GetParameter(0) - prev) ;
646 prev = fit->GetParameter(0);
652 if((fit->GetParameter(0) - maxval1) > 0. && (fit->GetParameter(0) - maxval1) < (MSA/1000.))
654 maxval1 = fit->GetParameter(0);
658 else hFitA->SetBinContent(k, 5000.);
662 if(fit->GetParameter(1) < 5000.){
663 hFitB->SetBinContent(k, fit->GetParameter(1));
665 AvB += fit->GetParameter(1);
666 if(k==2999) maxval2 = AvB/3000. ;
667 if (prev2 < fit->GetParameter(1)) MSB += fit->GetParameter(1) - prev2;
668 else MSB -= (fit->GetParameter(1) - prev2) ;
669 prev2 = fit->GetParameter(1);
675 if((fit->GetParameter(1) - maxval2) > 0. && (fit->GetParameter(1) - maxval2) < (MSB/1000.))
677 maxval2 = fit->GetParameter(1);
681 else hFitB->SetBinContent(k, 5000.);
684 if (fit->GetNDF() != 0 ) ki2 = fit->GetChisquare()/fit->GetNDF();
688 hFitChi2Ndf->SetBinContent(k, ki2);
691 if(k==2999) maxval3 = Avki2/3000. ;
692 if (prev3 < ki2) MSki2 += ki2 - prev3;
693 else MSki2 -= (ki2 - prev3) ;
700 if((ki2 - maxval3) > 0. && (ki2 - maxval3) < (MSki2/1000.))
706 else hFitChi2Ndf->SetBinContent(k, 1000.);
712 delete hCellAmplitude;
721 Process(pflag, hFitChi2Ndf, Nsigma, dnbins, maxval3,compteur);
725 Process(pflag, hFitA, Nsigma, dnbins, maxval1,compteur);
729 Process(pflag, hFitB, Nsigma, dnbins, maxval2,compteur);
739 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
742 for (
Int_t c = 1;
c <= 23040;
c++) {
745 for (
Int_t l = 1; l <= hCellAmplitude->GetNbinsX(); l++) {
746 Double_t N = hCellAmplitude->GetBinContent(l,
c);
750 if(Nsum < 0.5 && *pexclu[
c-1]!=1)
755 delete hCellAmplitude;
764 TH2 *hCellAmplitude = (
TH2*) gFile->Get(
"hCellAmplitude");
766 for(
Int_t i =0; i<nbc; i++){
767 for(
Int_t j=0; j<= hCellAmplitude->GetNbinsX() ;j++){
768 hCellAmplitude->SetBinContent(j,filter[i]+1,0) ; }}
770 TH1* hNEventsProcessedPerRun = (
TH1*) gFile->Get(
"hNEventsProcessedPerRun");
772 TFile *tf =
new TFile(
"filter.root",
"recreate");
773 hCellAmplitude->Write();
774 hNEventsProcessedPerRun->Write();
777 delete hCellAmplitude;
delete hNEventsProcessedPerRun;
798 Int_t *pexclu[23040] ;
800 Int_t *pflag[23040][7] ;
801 Int_t flag[23040][7];
808 if(criterum == 7) bilan = Form(
"%s%sBC0Test%i.txt",period.Data(),pass.Data(),trial);
810 output.Form(
"Criterum-%d_Emin-%.2f_Emax-%.2f.txt",criterum,Emin,Emax);
811 for(i=0;i<23040;i++) { exclu[i]=0; pexclu[i] =&exclu[i];
812 for(j=0;j<7;j++) { flag[i][j] =1 ; pflag[i][j] = &flag[i][j];}}
813 flag[0][0]=criterum ;
826 cout<<
"FINAL RESULTS"<<endl;
827 ofstream fichier(bilan, ios::out | ios::trunc);
829 fichier<<
"Dead cells : "<<endl;
830 cout<<
"Dead cells : "<<endl;
833 for(i=0;i<17665;i++) {
835 if(exclu[i]!=0) {fichier<<i<<
"\n" ; cout<<i<<
", " ; nb++;}}
837 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl; nb=0;
839 TFile::Open(
"filter.root");
841 fichier<<
"Bad cells : "<<endl; cout<<
"Bad cells : "<<endl;
842 for(i=0;i<17665;i++) {
844 if(exclu[i]!=0) {bad[nb]=i; fichier<<i<<
"\n" ; cout<<i<<
", " ;
849 fichier<<
"("<<nb<<
")"<<endl; cout<<
"("<<nb<<
")"<<endl;}
856 for(w=0; (w*9)<=nb; w++) {
857 if(9<=(nb-w*9)) c = 9 ;
859 Draw(bad, w*9, c,datapath,period,pass,trial) ;
867 if (criterum < 3)
TestCellEandN(pflag, Emin, Emax,Nsigma,compteur);
868 else if (criterum < 6)
873 if(criterum < 6) { nb=0;
874 cout<<
"bad by lower value Emin : "<< Emin <<
" Emax = " << Emax << endl;
875 for(i=0;i<17665;i++) {
876 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
877 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
879 cout<<
"bad by higher value Emin : "<< Emin <<
" Emax = " << Emax <<endl;
880 for(i=0;i<17665;i++) {
881 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
882 cout<<i<<
", " ;}} cout<<
"("<<nb<<
")"<<endl; nb=0;
884 cout<<
"total bad "<<endl;
885 for(i=0;i<17665;i++) {
886 if(flag[i][criterum]!=1 && exclu[i]==0) {
889 cout<<i<<
", " ; }} cout<<
"("<<nb<<
")"<<endl;
896 ofstream fichier(output, ios::out | ios::trunc);
899 fichier <<
"criterum : "<<criterum<<
", Emin = "<<Emin<<
" GeV"<<
", Emax = "<<Emax<<
" GeV"<<endl;
900 fichier<<
"bad by lower value : "<<endl;
901 for(i=0;i<17665;i++) {
902 if(flag[i][criterum]==0 && exclu[i]==0){nb++;
903 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
905 fichier<<
"bad by higher value : "<<endl;
906 for(i=0;i<17665;i++) {
907 if(flag[i][criterum]==2 && exclu[i]==0) {nb++;
908 fichier<<i<<
", " ;}} fichier<<
"("<<nb<<
")"<<endl; nb=0;
909 fichier<<
"total bad "<<endl;
910 for(i=0;i<17665;i++) {
911 if(flag[i][criterum]!=1 && exclu[i]==0) {
914 fichier<<i<<
", " ; }} fichier<<
"("<<nb<<
")"<<endl;
918 cerr <<
"opening error" << endl;
945 if(trigger==
"default"||trigger==
"INT7"||trigger==
"DMC7"||trigger==
"AnyINTnoBC"){
949 TFile::Open(
"filter.root");
951 TFile::Open(
"filter.root");
953 TFile::Open(
"filter.root");
955 TFile::Open(
"filter.root");
957 TFile::Open(
"filter.root");
962 TFile::Open(
"filter.root");
964 TFile::Open(
"filter.root");
966 TFile::Open(
"filter.root");
968 TFile::Open(
"filter.root");
981 TFile::Open(
"filter.root");
983 TFile::Open(
"filter.root");
985 TFile::Open(
"filter.root");
987 TFile::Open(
"filter.root");
989 TFile::Open(
"filter.root");
991 TFile::Open(
"filter.root");
1015 TString inputfile(Form(
"%s/%s/%s/%s%sRunlist1New.root",datapath.Data(),period.Data(),pass.Data(),period.Data(),trigger.Data()));
1017 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)