1 #if !defined(__CINT__) || defined(__MAKECINT__)
8 #include <TGraphErrors.h>
11 #include "AliCDBEntry.h"
12 #include "AliCDBGrid.h"
14 #include "AliCDBLocal.h"
15 #include "AliCDBManager.h"
16 #include "AliCDBMetaData.h"
17 #include "AliCDBPath.h"
18 #include "AliCDBRunRange.h"
19 #include "AliCDBStorage.h"
20 #include "AliDCSValue.h"
23 #include "AliZDCPedestals.h"
24 #include "AliZDCEnCalib.h"
25 #include "AliZDCTowerCalib.h"
26 #include "AliZDCChMap.h"
27 #include "AliZDCLaserCalib.h"
28 #include "AliZDCMBCalib.h"
29 #include "AliZDCDataDCS.h"
34 void PlotPedestalsvsTime(Int_t year=2010, Int_t firstRun=111000,
35 Int_t lastRun=999999999, Int_t ipedGainChain=0)
39 TGrid::Connect("alien:",0,0,"t");
40 gSystem->Exec(Form("gbbox find \"/alice/data/%d/OCDB/ZDC/Calib/Pedestals/\" \"Run*.root\" > calibAlienFiles.txt",year));
41 FILE* listruns=fopen("calibAlienFiles.txt","r");
43 const int kNchannels=24;
44 TGraphErrors* graph[24];
45 for(Int_t i=0; i<kNchannels; i++){
46 graph[i] = new TGraphErrors(0);
47 char name[50], title[50];
48 sprintf(name,"graph%d",i); sprintf(title,"Pedestal ch.%d vs. run#",i);
49 graph[i]->SetName("graph"); graph[i]->SetTitle("title");
52 Char_t filnam[200], filnamalien[200];
54 Int_t nrun, nrun2, nv, ns;
56 while(!feof(listruns)){
57 int st = fscanf(listruns,"%s\n",filnam);
58 Char_t directory[100];
59 sprintf(directory,"/alice/data/%d",year);
60 if(!strstr(filnam,directory)) continue;
61 sscanf(filnam,"/alice/data/%d/OCDB/ZDC/Calib/Pedestals/Run%d_%d_v%d_s%d.root",&year,&nrun,&nrun2,&nv,&ns);
62 if(nrun<firstRun) continue;
63 if(nrun>lastRun) continue;
64 sprintf(filnamalien,"alien://%s",filnam);
65 printf("Opening file: %s\n",filnam);
66 TFile *f = TFile::Open(filnamalien);
67 AliCDBEntry *entry = (AliCDBEntry*)f->Get("AliCDBEntry");
68 AliZDCPedestals *calibdata = dynamic_cast<AliZDCPedestals*> (entry->GetObject());
70 for(int i=0; i<kNchannels; i++){
72 graph[i]->SetPoint(iPoint, (Double_t)nrun, calibdata->GetMeanPed(i));
73 graph[i]->SetPointError(iPoint, 0., calibdata->GetMeanPedWidth(i));
76 graph[i]->SetPoint(iPoint, (Double_t)nrun, calibdata->GetMeanPed(i+kNchannels));
77 graph[i]->SetPointError(iPoint, 0., calibdata->GetMeanPedWidth(i+kNchannels));
84 TFile *outfile=new TFile(Form("Calib%dVsTime.root",year),"recreate");
86 for(int i=0; i<kNchannels; i++) graph[i]->Write();
89 //***********************************************************
90 // #### ROOT initialization
92 gStyle->SetCanvasColor(10);
93 gStyle->SetFrameFillColor(10);
94 gStyle->SetOptTitle(0);
95 gStyle->SetOptStat(1111);
97 gStyle->SetTitleTextColor(4);
98 gStyle->SetStatTextColor(4);
99 gStyle->SetStatX(0.92);
100 gStyle->SetStatY(0.92);
101 gStyle->SetLineColor(1);
102 gStyle->SetPalette(1);
103 gStyle->SetPadTopMargin(0.05);
104 gStyle->SetPadRightMargin(0.05);
105 gStyle->SetPadBottomMargin(0.09);
106 gStyle->SetPadLeftMargin(0.09);
107 gStyle->SetTitleOffset(1.1,"Y");
108 // *************************************************************
110 TCanvas *cHadPeds = new TCanvas("cHadPeds","Hadronic ZDC pedestals",0,0,900,700);
111 cHadPeds->Divide(5,4);
112 for(int ic=0; ic<5; ic++){
117 if(ipedGainChain==0) haxis1 = gPad->DrawFrame(firstRun-100, 20, lastRun+100, 90);
118 else haxis1 = gPad->DrawFrame(firstRun-100, 200, lastRun+100, 700);
119 haxis1->GetXaxis()->SetNoExponent();
120 haxis1->SetXTitle("RUN no.");
121 haxis1->SetYTitle("ZNC pedestals");
123 graph[ic]->SetMarkerStyle(20);
124 graph[ic]->SetMarkerColor(kBlue);
125 graph[ic]->Draw("P, SAME");
130 if(ipedGainChain==0) haxis2= gPad->DrawFrame(firstRun-100, 20, lastRun+100, 90);
131 else haxis2 = gPad->DrawFrame(firstRun-100, 200, lastRun+100, 700);
132 haxis2->GetXaxis()->SetNoExponent();
133 haxis2->SetXTitle("RUN no.");
134 haxis2->SetYTitle("ZPC pedestals");
136 graph[ic+5]->SetMarkerStyle(21);
137 graph[ic+5]->SetMarkerColor(kBlue+3);
138 graph[ic+5]->Draw("P, SAME");
143 if(ipedGainChain==0) haxis3 = gPad->DrawFrame(firstRun-100, 20, lastRun+100, 90);
144 else haxis3 = gPad->DrawFrame(firstRun-100, 200, lastRun+100, 700);
145 haxis3->GetXaxis()->SetNoExponent();
146 haxis3->SetXTitle("RUN no.");
147 haxis3->SetYTitle("ZNA pedestals");
149 graph[ic+12]->SetMarkerStyle(20);
150 graph[ic+12]->SetMarkerColor(kRed);
151 graph[ic+12]->Draw("P, SAME");
156 if(ipedGainChain==0) haxis4 = gPad->DrawFrame(firstRun-100, 20, lastRun+100, 90);
157 else haxis4 = gPad->DrawFrame(firstRun-100, 200, lastRun+100, 700);
158 haxis4->GetXaxis()->SetNoExponent();
159 haxis4->SetXTitle("RUN no.");
160 haxis4->SetYTitle("ZPA pedestals");
162 graph[ic+17]->SetMarkerStyle(21);
163 graph[ic+17]->SetMarkerColor(kRed+1);
164 graph[ic+17]->Draw("P, SAME");
166 cHadPeds->SaveAs("ZDCPedvsTime1.gif");
168 TCanvas *cothPeds = new TCanvas("cothPeds","ZEM + Ref. pedestals",800,0,600,600);
169 cothPeds->Divide(2,2);
170 for(int ic=0; ic<2; ic++){
175 if(ipedGainChain==0) haxis5 = gPad->DrawFrame(firstRun-100, 20, lastRun+20, 90);
176 else haxis5 = gPad->DrawFrame(firstRun-100, 200, lastRun+100, 700);
177 haxis5->GetXaxis()->SetNoExponent();
178 haxis5->SetXTitle("RUN no.");
179 haxis5->SetYTitle("ZEM pedestals");
181 graph[ic+10]->SetMarkerStyle(22);
182 graph[ic+10]->SetMarkerColor(kGreen+1);
183 graph[ic+10]->Draw("P, SAME");
184 // *** Ref. pedestals
188 if(ipedGainChain==0) haxis6 = gPad->DrawFrame(firstRun-100, 20, lastRun+100, 90);
189 else haxis6 = gPad->DrawFrame(firstRun-100, 150, lastRun+100, 700);
190 haxis6->GetXaxis()->SetNoExponent();
191 haxis6->SetXTitle("RUN no.");
192 haxis6->SetYTitle("PMRef. pedestals");
194 graph[ic+22]->SetMarkerStyle(23);
195 graph[ic+22]->SetMarkerColor(kGreen+4);
196 graph[ic+22]->Draw("P, SAME");
198 cothPeds->SaveAs("ZDCPedvsTime2.gif");