]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/ShowDriftSpeedSDD.C
Transfer of the initialisation of the QA Data objects in the framework; clean the...
[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>
6#include <TGrid.h>
7#include <TCanvas.h>
8#include <TLatex.h>
9#include <TObjArray.h>
10#include "AliCDBEntry.h"
11#include "AliITSDriftSpeedArraySDD.h"
12#endif
13
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
19//
20// Origin: F. Prino (prino@to.infn.it)
21
22void 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];
30
31 TCanvas *c0=new TCanvas("c0","Module Drift Speed",1100,500);
32
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");
37 Char_t tit[100];
38 for(Int_t i=firstmod; i<lastmod; i++){
39 c0->Clear();
40 c0->Divide(2,1);
41 Int_t i0=2*i;
42 Int_t i1=1+2*i;
43 vdriftarr0=(AliITSDriftSpeedArraySDD*)drspSDD->At(i0);
44 vdriftarr1=(AliITSDriftSpeedArraySDD*)drspSDD->At(i1);
45
46 gvdr0[i]=new TGraph(0);
47 gvdr1[i]=new TGraph(0);
48 gvdr0[i]->SetMarkerStyle(7);
49 gvdr1[i]->SetMarkerStyle(7);
50 gvdr0[i]->SetMinimum(5.);
51 gvdr1[i]->SetMinimum(5.);
52 gvdr0[i]->SetMaximum(9.);
53 gvdr1[i]->SetMaximum(9.);
54 sprintf(tit,"Mod %d\n",i);
55 gvdr0[i]->SetTitle(tit);
56 gvdr1[i]->SetTitle(tit);
57
58 for(Int_t iAn=0; iAn<256; iAn++){
59 Float_t vel0=0;
60 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(1,iAn);
61 Float_t vel1=0;
62 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(1,iAn);
63 gvdr0[i]->SetPoint(iAn,(Float_t)iAn,vel0);
64 gvdr1[i]->SetPoint(iAn,(Float_t)iAn,vel1);
65 }
66 printf(" Mod. %d \t v(an 128l)= %f\n",i,vdriftarr0->GetDriftSpeed(0,128));
67 printf(" \t v(an 128r)= %f\n",vdriftarr1->GetDriftSpeed(0,128));
68 c0->cd(1);
69 gvdr0[i]->Draw("AP");
70 gvdr0[i]->GetXaxis()->SetTitle("Anode");
71 gvdr0[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
72 c0->cd(2);
73 gvdr1[i]->Draw("AP");
74 gvdr1[i]->GetXaxis()->SetTitle("Anode");
75 gvdr1[i]->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
76 c0->Update();
77
78 Float_t vel0=0;
79 if(vdriftarr0) vel0=vdriftarr0->GetDriftSpeed(0,128);
80 Float_t vel1=0;
81 if(vdriftarr1) vel1=vdriftarr1->GetDriftSpeed(0,128);
82 vvsmod0->SetPoint(vvsmod0->GetN(),(Float_t)i,vel0);
83 vvsmod1->SetPoint(vvsmod1->GetN(),(Float_t)i,vel1);
84
85 // getchar();
86 }
87 TCanvas* c2;
88 c2=new TCanvas("c2","",1000,700);
89 vvsmod0->SetMarkerStyle(20);
90 vvsmod0->Draw("AP");
91 vvsmod0->GetXaxis()->SetTitle("Module Number");
92 vvsmod0->GetYaxis()->SetTitle("Vdrift (#mum/ns)");
93 vvsmod1->SetMarkerStyle(21);
94 vvsmod1->SetMarkerColor(2);
95 vvsmod1->Draw("SAMEP");
96 TLatex* tleft=new TLatex(0.7,0.82,"Side 0");
97 tleft->SetNDC();
98 tleft->SetTextColor(1);
99 tleft->Draw();
100 TLatex* tright=new TLatex(0.7,0.75,"Side 1");
101 tright->SetNDC();
102 tright->SetTextColor(2);
103 tright->Draw();
104
105}
106
107
108
04adc89c 109void ShowDriftSpeedSDD(Int_t nrun, Int_t nv, Char_t* dir="LHC08d"){
40b3a8c7 110 TGrid::Connect("alien:",0,0,"t");
111 Char_t filnam[200];
04adc89c 112 sprintf(filnam,"alien:///alice/data/2008/%s/OCDB/ITS/Calib/DriftSpeedSDD/Run%d_999999999_v%d_s0.root",dir,nrun,nv);
40b3a8c7 113 printf("Open file: %s\n",filnam);
114 ShowDriftSpeedSDD(filnam,0,260);
115}