1 #if !defined(__CINT__) || defined(__MAKECINT__)
10 #include "AliCDBEntry.h"
11 #include "AliITSDriftSpeedArraySDD.h"
14 // Macro to plot the calibration parameters from the OCDB file
15 // created from an INJECTOR run (OCDB/ITS/Calib/DriftSpeedSDD)
16 // Two methods ShowDriftSpeedSDD:
17 // - the first takes the name of the file to be displayed
18 // - the second builds the alien path+name from run number and file version
20 // Origin: F. Prino (prino@to.infn.it)
22 void ShowDriftSpeedSDD(Char_t filnam[150]="$ALICE_ROOT/ITS/Calib/DriftSpeedSDD/Run0_9999999_v0_s0.root", Int_t firstmod=0, Int_t lastmod=260){
23 TFile *f= TFile::Open(filnam);
24 AliCDBEntry *ent=(AliCDBEntry*)f->Get("AliCDBEntry");
25 TObjArray *drspSDD = (TObjArray *)ent->GetObject();
26 AliITSDriftSpeedArraySDD *vdriftarr0;
27 AliITSDriftSpeedArraySDD *vdriftarr1;
28 TGraph **gvdr0=new TGraph*[260];
29 TGraph **gvdr1=new TGraph*[260];
31 TCanvas *c0=new TCanvas("c0","Module Drift Speed",1100,500);
33 TGraph *vvsmod0=new TGraph(0);
34 TGraph *vvsmod1=new TGraph(0);
35 vvsmod0->SetTitle("Drift Speed vs. mod. number");
36 vvsmod1->SetTitle("Drift Speed vs. mod. number");
38 for(Int_t i=firstmod; i<lastmod; i++){
44 vdriftarr0=(AliITSDriftSpeedArraySDD*)drspSDD->At(i0);
45 vdriftarr1=(AliITSDriftSpeedArraySDD*)drspSDD->At(i1);
47 gvdr0[i]=new TGraph(0);
48 gvdr1[i]=new TGraph(0);
49 gvdr0[i]->SetMarkerStyle(7);
50 gvdr1[i]->SetMarkerStyle(7);
51 gvdr0[i]->SetMinimum(5.);
52 gvdr1[i]->SetMinimum(5.);
53 gvdr0[i]->SetMaximum(9.);
54 gvdr1[i]->SetMaximum(9.);
55 sprintf(tit,"Mod %d\n",iMod);
56 gvdr0[i]->SetTitle(tit);
57 gvdr1[i]->SetTitle(tit);
59 for(Int_t iAn=0; iAn<256; iAn++){
61 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(1,iAn);
63 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(1,iAn);
64 gvdr0[i]->SetPoint(iAn,(Float_t)iAn,vel0);
65 gvdr1[i]->SetPoint(iAn,(Float_t)iAn,vel1);
67 printf(" Mod. %d \tStatusLR=%X %X \t v(an 128l)= %f",iMod,vdriftarr0->GetInjectorStatus(),vdriftarr1->GetInjectorStatus(),vdriftarr0->GetDriftSpeed(0,128));
68 printf(" \t v(an 128r)= %f\n",vdriftarr1->GetDriftSpeed(0,128));
71 gvdr0[i]->GetXaxis()->SetTitle("Anode");
72 gvdr0[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
75 gvdr1[i]->GetXaxis()->SetTitle("Anode");
76 gvdr1[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
80 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(0,128);
82 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(0,128);
83 vvsmod0->SetPoint(vvsmod0->GetN(),(Float_t)iMod,vel0);
84 vvsmod1->SetPoint(vvsmod1->GetN(),(Float_t)iMod,vel1);
89 c2=new TCanvas("c2","",1000,700);
90 vvsmod0->SetMarkerStyle(20);
92 vvsmod0->GetXaxis()->SetTitle("Module Number");
93 vvsmod0->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
94 vvsmod1->SetMarkerStyle(21);
95 vvsmod1->SetMarkerColor(2);
96 vvsmod1->Draw("SAMEP");
97 TLatex* tleft=new TLatex(0.7,0.82,"Side 0");
99 tleft->SetTextColor(1);
101 TLatex* tright=new TLatex(0.7,0.75,"Side 1");
103 tright->SetTextColor(2);
110 void ShowDriftSpeedSDD(Int_t nrun, Int_t nv, Int_t year=2009){
111 TGrid::Connect("alien:",0,0,"t");
113 sprintf(filnam,"alien:///alice/data/%d/OCDB/ITS/Calib/DriftSpeedSDD/Run%d_999999999_v%d_s0.root",year,nrun,nv);
114 printf("Open file: %s\n",filnam);
115 ShowDriftSpeedSDD(filnam,0,260);