1 #if !defined(__CINT__) || defined(__MAKECINT__)
3 #include <TFileMerger.h>
4 #include <TAlienFile.h>
8 #include <TGridResult.h>
10 #include <TObjArray.h>
18 void TrendQASDD( Char_t filelist[150]="LHC10b.txt", Char_t filename[20]="FileQAtrend",Char_t pass[7]="pass1",Int_t year=2010, Char_t period[7]="LHC10b", Bool_t kUseOriginalFile=kFALSE , Char_t especiename[50]="LowMultiplicity")
22 //Char_t FileName[200];//="/home/msicilia/Desktop/createlists";
24 Char_t FileName1[150];
25 sprintf(FileName1,"%s",filelist);
27 pFile = fopen (FileName1,"r");
28 while (fscanf (pFile,"%d\n",&m)==1){
30 if(kUseOriginalFile)sprintf(FileName,"run%d/%s/File.QA.%d.%s.%s.Run.%d.root",m,pass,year,period,pass,m);
31 else sprintf(FileName, "run%d/%s/%s.root", m,pass,filename);
32 if(gSystem->Exec(Form("ls %s >/dev/null 2>&1", FileName))==0){
33 TFile mergedfile(FileName);
35 if(mergedfile.GetKey("ITS")==0x0){
36 printf("Run %d, In this run ITS QA has not been executed.-- Exit file\n",m);
39 else {n.push_back(m);} //this is to grow the vector
40 }else {n.push_back(m);}
42 else{printf("Run %d,: no file %s present -- Continue\n",m, FileName);continue;}
48 TH1F *histochargetrend[2];
53 for(Int_t layer=3;layer<5;layer++)
55 sprintf(name,"histochargetrend_%d", layer);
56 sprintf(title,"Trend of the Charge of the Layer %d", layer);
57 histochargetrend[layer-3]=new TH1F(name,title,n.size(),0.,(float)n.size());
60 gStyle->SetOptStat(0);
63 for(Int_t i=0;i<3;i++)
65 sprintf(name,"canvas%i",i);
66 canvas[i]=new TCanvas(name,name);
67 canvas[i]->Divide(2,1);
70 TLegend *legend =new TLegend(0.83,0.8,0.97,0.2);
71 TLegend *legend2=new TLegend(0.83,0.8,0.97,0.2);
79 Float_t fmaxoldtime=0;
80 Float_t fmaxmargintime=0;
87 printf("%d \n",n.size());
89 for(Int_t layer=3;layer<5;layer++){
90 for (Int_t irun=0; irun<(Int_t)(n.size());irun++)
92 if(kUseOriginalFile)sprintf(FileName,"run%d/%s/File.QA.%d.%s.%s.Run.%d.root",n[irun],pass,year,period,pass,n[irun]);
93 else sprintf(FileName, "run%d/%s/%s.root", n[irun],pass,filename);
95 TFile mergedfile(FileName);
97 if(mergedfile.GetKey("ITS")==0x0){
98 printf("Run %d, In this run ITS QA has not been executed.-- Exit file\n",n[irun]);
102 if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDLay%dTotCh",especiename,especiename,layer);
103 else sprintf(filepath,"%s_SDDLay%dTotCh",especiename,layer);
104 histocharge=(TH1F*)(mergedfile.Get(filepath));
108 sprintf(buffer, "%d", n[irun]);
109 histochargetrend[layer-3]->Fill(buffer,histocharge->GetMean());
110 histochargetrend[layer-3]->SetMinimum(0.);
111 histochargetrend[layer-3]->SetMaximum(250.);
112 histochargetrend[layer-3]->GetXaxis()->SetTitle("# Run");
113 histochargetrend[layer-3]->GetYaxis()->SetTitle("keV");
114 fmax=histocharge->GetMaximum();
115 if (j==0) { fmaxold=fmax;}
116 if (j!=0) { if(fmaxold<fmax) { fmaxold=fmax;} }
118 }//end if histocharge
124 if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDdrifttime_Layer%d",especiename,especiename,layer);
125 else sprintf(filepath,"%s_SDDdrifttime_Layer%d",especiename,layer);
126 histocharge=(TH1F*)(mergedfile.Get(filepath));
130 sprintf(buffer, "%d", n[irun]);
131 fmaxtime=histocharge->GetMaximum();
132 if (j==0) { fmaxoldtime=fmaxtime;}
133 if (j!=0) { if(fmaxoldtime<fmaxtime) { fmaxoldtime=fmaxtime;} }
135 }//end if histocharge
141 fmaxmargintime=1.023*fmaxoldtime;
142 printf("Max Y Range is %4.1f time %4.1f\n",fmaxmargin,fmaxmargintime);
144 canvas[0]->SetFillColor(46);
145 canvas[0]->cd(layer-2)->SetFillColor(46);
146 histochargetrend[layer-3]->SetMarkerStyle(20);
147 histochargetrend[layer-3]->SetMarkerSize(1);
148 histochargetrend[layer-3]->SetMarkerColor(kGreen+4);
149 histochargetrend[layer-3]->SetFillColor(42);
150 canvas[0]->cd(layer-2)->SetFrameFillColor(kAzure-9);
151 histochargetrend[layer-3]->SetBarWidth(0.9);
152 histochargetrend[layer-3]->SetBarOffset(0.05);
153 histochargetrend[layer-3]->DrawCopy("P");
158 for (Int_t irun=0; irun< (Int_t)(n.size());irun++)
161 if(kUseOriginalFile) sprintf(FileName, "run%d/%s/File.QA.%d.%s.%s.Run.%d.root", n[irun],pass,year,period,pass,n[irun]);
162 else sprintf(FileName, "run%d/%s/%s.root", n[irun],pass,filename);
164 TFile mergedfile(FileName);
165 if(kUseOriginalFile){
166 if(mergedfile.GetKey("ITS")==0x0){
167 printf("run %d In this run ITS QA has not been executed.--- Exit file\n",n[irun]);
171 if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDLay%dTotCh",especiename,especiename,layer);
172 else sprintf(filepath,"%s_SDDLay%dTotCh",especiename,layer);
173 sprintf(runnmbr,"run%d",n[irun]);
174 printf("%s %s",filepath,runnmbr);
175 histocharge=(TH1F*)(mergedfile.Get(filepath));
179 if (color>=12 && color<=27) { color=j+28; }
180 histocharge->SetLineColor(color);
183 canvas[1]->cd(layer-2);
185 canvas[1]->cd(layer-2)->SetFrameFillColor(kGray+3);
186 histocharge->SetMaximum(fmaxmargin);
187 histocharge->GetYaxis()->SetTitle("");
188 histocharge->DrawNormalized();
189 histocharge->SetMaximum(fmaxmargin);
190 canvas[1]->cd(layer-2)->Update();
195 canvas[1]->cd(layer-2);
196 histocharge->DrawNormalized("same");
197 canvas[1]->cd(layer-2)->Update();
199 if(layer==3)legend->AddEntry(histocharge,runnmbr,"l");
200 canvas[1]->cd(layer-2);
204 printf("...Found\n");
206 }//end if histocharge
207 else{printf("...Not Found....\n");}
210 //======================================================== Drift Time
211 if(kUseOriginalFile)sprintf(filepath,"ITS/RecPoints/%s/%s_SDDdrifttime_Layer%d",especiename,especiename,layer);
212 else sprintf(filepath,"%s_SDDdrifttime_Layer%d",especiename,layer);
213 sprintf(runnmbr,"run %d",n[irun]);
214 printf("%s %s",filepath,runnmbr);
215 histocharge=(TH1F*)(mergedfile.Get(filepath));
218 printf("...Found\n");
219 histocharge->SetLineColor(color);
222 canvas[2]->cd(layer-2);
223 canvas[2]->cd(layer-2)->SetFrameFillColor(kGray+3);
224 histocharge->SetMaximum(fmaxmargintime);
225 histocharge->GetYaxis()->SetTitle("");
226 histocharge->DrawNormalized();
227 histocharge->SetMaximum(fmaxmargintime);
231 canvas[2]->cd(layer-2);
232 histocharge->DrawNormalized("same");
234 if(layer==3)legend2->AddEntry(histocharge,runnmbr,"l");
235 canvas[2]->cd(layer-2);
239 }//end if histocharge
240 else{printf("...Not Found....\n");}
245 TFile trendfile(Form("SDDQAtrend%s%s.root",period,pass),"recreate");
247 for(Int_t ican=0;ican<3;ican++)canvas[ican]->Write();
250 sprintf(psfile,"SDDtrend%s%s.ps",period,pass);
251 canvas[0]->Print(Form("%s[",psfile));
252 for(Int_t ifile=0;ifile<3;ifile++){canvas[ifile]->Print(psfile);}
254 canvas[2]->Print(Form("%s]",psfile));