]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/PlotTDCcalibvsTime.C
introducing function IsSelected which allows child classes to selectively publish...
[u/mrichter/AliRoot.git] / ZDC / PlotTDCcalibvsTime.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include <Riostream.h>
3 #include <TSystem.h>
4 #include <TRandom.h>
5 #include <TROOT.h>
6 #include <TStyle.h>
7 #include <TCanvas.h>
8 #include <TGraphErrors.h>
9 #include <TGrid.h>
10 #include <TFile.h>
11 #include <TH1F.h>
12 #include "AliCDBEntry.h"
13 #include "AliCDBGrid.h"
14 #include "AliCDBId.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"
22 #include "AliZDC.h"
23 #include "AliZDCv3.h"
24 #include "AliZDCTDCCalib.h"
25
26 #endif
27
28
29 void PlotTDCcalibvsTime(Int_t year=2011, Int_t firstRun=166000, 
30                    Int_t lastRun=167000)
31 {
32
33
34   TGrid::Connect("alien:",0,0,"t");
35   gSystem->Exec(Form("gbbox find \"/alice/data/%d/OCDB/ZDC/Calib/TDCCalib/\" \"Run*.root\" > calibAlienFiles.txt",year));
36   FILE* listruns=fopen("calibAlienFiles.txt","r");
37   
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 calib. coeff. %d vs. run#",i);
44      graph[i]->SetName("graph");  graph[i]->SetTitle("title");
45   }
46
47   Char_t filnam[200], filnamalien[200];
48   Int_t iPoint=0;
49   Int_t nrun, nrun2, nv, ns;
50
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     if(!strstr(filnam,directory)) continue;
56     sscanf(filnam,"/alice/data/%d/OCDB/ZDC/Calib/TDCCalib/Run%d_%d_v%d_s%d.root",&year,&nrun,&nrun2,&nv,&ns);
57     if(nrun<firstRun) continue;
58     if(nrun>lastRun) continue;
59     sprintf(filnamalien,"alien://%s",filnam);
60     printf("Opening file: %s\n",filnam);
61     TFile *f = TFile::Open(filnamalien);  
62     AliCDBEntry *entry = (AliCDBEntry*)f->Get("AliCDBEntry");
63     AliZDCTDCCalib *calibdata = dynamic_cast<AliZDCTDCCalib*>  (entry->GetObject());
64     
65     for(int i=0; i<kNchannels; i++){
66          graph[i]->SetPoint(iPoint, (Double_t)nrun, calibdata->GetMeanTDC(i));
67         graph[i]->SetPointError(iPoint, 0., calibdata->GetWidthTDC(i));
68     }
69     iPoint++;
70     f->Close();
71  }
72
73  TFile *outfile=new TFile(Form("TDCCalib%dVsTime.root",year),"recreate");
74  outfile->cd();
75  for(int i=0; i<kNchannels; i++) graph[i]->Write();
76  outfile->Close();
77
78  //***********************************************************
79  // #### ROOT initialization
80  gROOT->Reset();
81  gStyle->SetCanvasColor(10);
82  gStyle->SetFrameFillColor(10);
83  gStyle->SetOptTitle(0);
84  gStyle->SetOptStat(1111);
85  gStyle->SetOptFit(0);
86  gStyle->SetTitleTextColor(4);
87  gStyle->SetStatTextColor(4);
88  gStyle->SetStatX(0.92);
89  gStyle->SetStatY(0.92);
90  gStyle->SetLineColor(1);
91  gStyle->SetPalette(1);
92  gStyle->SetPadTopMargin(0.05);
93  gStyle->SetPadRightMargin(0.05);
94  gStyle->SetPadBottomMargin(0.09);
95  gStyle->SetPadLeftMargin(0.09); 
96  gStyle->SetTitleOffset(1.1,"Y");  
97  // *************************************************************
98
99  TCanvas *cHadPeds = new TCanvas("cHadPeds","Hadronic ZDC pedestals",0,0,1200,800);
100  cHadPeds->Divide(3,2);
101  for(int ic=0; ic<6; ic++){
102    // *** ZNC pedestals
103    cHadPeds->cd(ic+1);
104    //
105    TH1F *haxis1 = gPad->DrawFrame(firstRun-100, -100, lastRun+100, 0);
106    haxis1->GetXaxis()->SetNoExponent();
107    haxis1->SetXTitle("RUN no.");
108    if(ic==0) haxis1->SetYTitle("ZNC TDC calib");
109    else if(ic==1)  haxis1->SetYTitle("ZNA TDC calib");
110    else if(ic==2)  haxis1->SetYTitle("ZPC TDC calib");
111    else if(ic==3)  haxis1->SetYTitle("ZPA TDC calib");
112    else if(ic==4)  haxis1->SetYTitle("ZEM1 TDC calib");
113    else if(ic==5)  haxis1->SetYTitle("ZEM2 TDC calib");
114    //
115    graph[ic]->SetMarkerStyle(20);
116    graph[ic]->SetMarkerColor(kAzure+ic);
117    graph[ic]->Draw("P, SAME");
118    // 
119  }
120  cHadPeds->SaveAs("ZDCTDCvsTime1.gif");
121  cHadPeds->SaveAs("ZDCTDCvsTime1.C");
122
123  
124 }