1 #if !defined(__CINT__) || defined(__MAKECINT__)
8 #include <TGraphErrors.h>
12 #include "AliCDBEntry.h"
13 #include "AliCDBGrid.h"
15 #include "AliCDBLocal.h"
16 #include "AliCDBManager.h"
17 #include "AliCDBMetaData.h"
18 #include "AliCDBPath.h"
19 #include "AliCDBRunRange.h"
20 #include "AliCDBStorage.h"
21 #include "AliDCSValue.h"
24 #include "AliZDCTDCCalib.h"
29 void PlotTDCcalibvsTime(Int_t year=2011, Int_t firstRun=166000,
34 TGrid::Connect("alien:",0,0,"t");
35 gSystem->Exec(Form("gbbox find \"/alice/data/%d/OCDB/ZDC/Calib/TDCCalib/\" \"Run*.root\" > TDCcalibAlienFiles.txt",year));
36 FILE* listruns=fopen("TDCcalibAlienFiles.txt","r");
38 const int kNchannels=6;
39 TGraphErrors* graph[6];
40 for(Int_t i=0; i<kNchannels; i++){
41 graph[i] = new TGraphErrors(0);
42 char name[50], title[50];
43 sprintf(name,"graph%d",i); sprintf(title,"TDC.%d vs. run#",i);
44 graph[i]->SetName("graph"); graph[i]->SetTitle("title");
47 Char_t filnam[200], filnamalien[200];
49 Int_t nrun, nrun2, nv, ns;
51 while(!feof(listruns)){
52 int st = fscanf(listruns,"%s\n",filnam);
53 Char_t directory[100];
54 sprintf(directory,"/alice/data/%d",year);
55 printf(" Checking for %s\n",filnam);
56 if(!strstr(filnam,directory)) continue;
57 sscanf(filnam,"/alice/data/%d/OCDB/ZDC/Calib/TDCCalib/Run%d_%d_v%d_s%d.root",&year,&nrun,&nrun2,&nv,&ns);
58 if(nrun<firstRun) continue;
59 if(nrun>lastRun) continue;
60 sprintf(filnamalien,"alien://%s",filnam);
61 printf("Opening file: %s\n",filnam);
62 TFile *f = TFile::Open(filnamalien);
63 AliCDBEntry *entry = (AliCDBEntry*)f->Get("AliCDBEntry");
64 AliZDCTDCCalib *calibdata = dynamic_cast<AliZDCTDCCalib*> (entry->GetObject());
66 for(int i=0; i<kNchannels; i++){
67 graph[i]->SetPoint(iPoint, (Double_t)nrun, calibdata->GetMeanTDC(i));
68 graph[i]->SetPointError(iPoint, 0., calibdata->GetWidthTDC(i));
74 TFile *outfile=new TFile(Form("TDCCalib%dVsTime.root",year),"recreate");
76 for(int i=0; i<kNchannels; i++) graph[i]->Write();
79 //***********************************************************
80 // #### ROOT initialization
82 gStyle->SetCanvasColor(10);
83 gStyle->SetFrameFillColor(10);
84 gStyle->SetOptTitle(0);
85 gStyle->SetOptStat(1111);
87 gStyle->SetTitleTextColor(4);
88 gStyle->SetStatTextColor(4);
89 gStyle->SetStatX(0.92);
90 gStyle->SetStatY(0.92);
91 gStyle->SetLineColor(1);
92 gStyle->SetPalette(1);
93 gStyle->SetPadTopMargin(0.05);
94 gStyle->SetPadRightMargin(0.05);
95 gStyle->SetPadBottomMargin(0.09);
96 gStyle->SetPadLeftMargin(0.09);
97 gStyle->SetTitleOffset(1.1,"Y");
98 // *************************************************************
100 TCanvas *cHadPeds = new TCanvas("cHadPeds","TDC mean values",0,0,1000,800);
101 cHadPeds->Divide(3,2);
102 for(int ic=0; ic<6; ic++){
106 TH1F *haxis1 = gPad->DrawFrame(firstRun-100, -100, lastRun+100, -10);
107 haxis1->GetXaxis()->SetNoExponent();
108 haxis1->SetXTitle("RUN no.");
109 if(ic==0) haxis1->SetYTitle("ZNC TDC calib");
110 else if(ic==1) haxis1->SetYTitle("ZNA TDC calib");
111 else if(ic==2) haxis1->SetYTitle("ZPC TDC calib");
112 else if(ic==3) haxis1->SetYTitle("ZPA TDC calib");
113 else if(ic==4) haxis1->SetYTitle("ZEM1 TDC calib");
114 else if(ic==5) haxis1->SetYTitle("ZEM2 TDC calib");
116 graph[ic]->SetMarkerStyle(20);
117 graph[ic]->SetMarkerColor(kAzure+ic);
118 graph[ic]->Draw("P, SAME");
120 cHadPeds->SaveAs("ZDCTDCvsTime.gif");
121 cHadPeds->SaveAs("ZDCTDCvsTime.C");