]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/ShowDriftSpeedSDD.C
missing file in previous commit
[u/mrichter/AliRoot.git] / ITS / ShowDriftSpeedSDD.C
CommitLineData
40b3a8c7 1#if !defined(__CINT__) || defined(__MAKECINT__)
2#include <TFile.h>
3#include <TH1F.h>
4#include <TGraph.h>
5#include <TStyle.h>
551eb942 6#include <TSystem.h>
7#include <TString.h>
40b3a8c7 8#include <TGrid.h>
9#include <TCanvas.h>
10#include <TLatex.h>
11#include <TObjArray.h>
12#include "AliCDBEntry.h"
13#include "AliITSDriftSpeedArraySDD.h"
14#endif
15
16// Macro to plot the calibration parameters from the OCDB file
17// created from an INJECTOR run (OCDB/ITS/Calib/DriftSpeedSDD)
18// Two methods ShowDriftSpeedSDD:
19// - the first takes the name of the file to be displayed
20// - the second builds the alien path+name from run number and file version
21//
22// Origin: F. Prino (prino@to.infn.it)
23
24void ShowDriftSpeedSDD(Char_t filnam[150]="$ALICE_ROOT/ITS/Calib/DriftSpeedSDD/Run0_9999999_v0_s0.root", Int_t firstmod=0, Int_t lastmod=260){
25 TFile *f= TFile::Open(filnam);
26 AliCDBEntry *ent=(AliCDBEntry*)f->Get("AliCDBEntry");
27 TObjArray *drspSDD = (TObjArray *)ent->GetObject();
28 AliITSDriftSpeedArraySDD *vdriftarr0;
29 AliITSDriftSpeedArraySDD *vdriftarr1;
30 TGraph **gvdr0=new TGraph*[260];
31 TGraph **gvdr1=new TGraph*[260];
32
33 TCanvas *c0=new TCanvas("c0","Module Drift Speed",1100,500);
34
35 TGraph *vvsmod0=new TGraph(0);
36 TGraph *vvsmod1=new TGraph(0);
37 vvsmod0->SetTitle("Drift Speed vs. mod. number");
38 vvsmod1->SetTitle("Drift Speed vs. mod. number");
39 Char_t tit[100];
40 for(Int_t i=firstmod; i<lastmod; i++){
266a4b47 41 Int_t iMod=i+240;
40b3a8c7 42 c0->Clear();
43 c0->Divide(2,1);
44 Int_t i0=2*i;
45 Int_t i1=1+2*i;
46 vdriftarr0=(AliITSDriftSpeedArraySDD*)drspSDD->At(i0);
47 vdriftarr1=(AliITSDriftSpeedArraySDD*)drspSDD->At(i1);
48
49 gvdr0[i]=new TGraph(0);
50 gvdr1[i]=new TGraph(0);
51 gvdr0[i]->SetMarkerStyle(7);
52 gvdr1[i]->SetMarkerStyle(7);
53 gvdr0[i]->SetMinimum(5.);
54 gvdr1[i]->SetMinimum(5.);
55 gvdr0[i]->SetMaximum(9.);
56 gvdr1[i]->SetMaximum(9.);
266a4b47 57 sprintf(tit,"Mod %d\n",iMod);
40b3a8c7 58 gvdr0[i]->SetTitle(tit);
59 gvdr1[i]->SetTitle(tit);
60
61 for(Int_t iAn=0; iAn<256; iAn++){
62 Float_t vel0=0;
63 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(1,iAn);
64 Float_t vel1=0;
65 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(1,iAn);
66 gvdr0[i]->SetPoint(iAn,(Float_t)iAn,vel0);
67 gvdr1[i]->SetPoint(iAn,(Float_t)iAn,vel1);
68 }
50d25e98 69 printf(" Mod. %d \tStatusLR=%X %X \t v(an 128l)= %f",iMod,vdriftarr0->GetInjectorStatus(),vdriftarr1->GetInjectorStatus(),vdriftarr0->GetDriftSpeed(0,128));
40b3a8c7 70 printf(" \t v(an 128r)= %f\n",vdriftarr1->GetDriftSpeed(0,128));
71 c0->cd(1);
72 gvdr0[i]->Draw("AP");
73 gvdr0[i]->GetXaxis()->SetTitle("Anode");
74 gvdr0[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
75 c0->cd(2);
76 gvdr1[i]->Draw("AP");
77 gvdr1[i]->GetXaxis()->SetTitle("Anode");
78 gvdr1[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
79 c0->Update();
80
81 Float_t vel0=0;
82 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(0,128);
83 Float_t vel1=0;
84 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(0,128);
266a4b47 85 vvsmod0->SetPoint(vvsmod0->GetN(),(Float_t)iMod,vel0);
86 vvsmod1->SetPoint(vvsmod1->GetN(),(Float_t)iMod,vel1);
40b3a8c7 87
88 // getchar();
89 }
90 TCanvas* c2;
91 c2=new TCanvas("c2","",1000,700);
92 vvsmod0->SetMarkerStyle(20);
93 vvsmod0->Draw("AP");
94 vvsmod0->GetXaxis()->SetTitle("Module Number");
95 vvsmod0->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
96 vvsmod1->SetMarkerStyle(21);
97 vvsmod1->SetMarkerColor(2);
98 vvsmod1->Draw("SAMEP");
99 TLatex* tleft=new TLatex(0.7,0.82,"Side 0");
100 tleft->SetNDC();
101 tleft->SetTextColor(1);
102 tleft->Draw();
103 TLatex* tright=new TLatex(0.7,0.75,"Side 1");
104 tright->SetNDC();
105 tright->SetTextColor(2);
106 tright->Draw();
107
108}
109
110
111
551eb942 112void ShowDriftSpeedSDD(Int_t nrun, Int_t year=2009){
40b3a8c7 113 TGrid::Connect("alien:",0,0,"t");
551eb942 114 TString cmd=Form("gbbox find \"/alice/data/%d/OCDB/ITS/Calib/DriftSpeedSDD\" \"Run%d*.root\" > run.txt",year,nrun);
115 gSystem->Exec(cmd.Data());
116
117 Char_t filnam[200],filnamalien[200];
118 FILE* runtxt=fopen("run.txt","r");
119 fscanf(runtxt,"%s\n",filnam);
120 if(!strstr(filnam,"/alice/data/")){
121 printf("Bad run number\n");
122 gSystem->Exec("rm run.txt");
123 return;
124 }
125 sprintf(filnamalien,"alien://%s",filnam);
126
127 printf("Open file: %s\n",filnamalien);
128 ShowDriftSpeedSDD(filnamalien,0,260);
129 fclose(runtxt);
130 gSystem->Exec("rm run.txt");
131
40b3a8c7 132}