]>
Commit | Line | Data |
---|---|---|
593c1f3e | 1 | #if !defined(__CINT__) || defined(__MAKECINT__) |
2 | #include <TFile.h> | |
3 | #include <TH1F.h> | |
4 | #include <TH2F.h> | |
5 | #include <TStyle.h> | |
6 | #include <TSystem.h> | |
7 | #include <TString.h> | |
8 | #include <TGrid.h> | |
9 | #include <TCanvas.h> | |
10 | #include <TObjArray.h> | |
11 | #include "AliCDBEntry.h" | |
12 | #include "AliITSCorrMapSDD.h" | |
38dd5c93 | 13 | #include "AliITSMapSDD.h" |
593c1f3e | 14 | #endif |
15 | ||
16 | ||
17 | // Macro to plot the SDD correction maps | |
18 | // from the OCDB file (OCDB/ITS/Calib/MapsTimeSDD) | |
19 | // | |
20 | // Origin: F. Prino (prino@to.infn.it) | |
21 | ||
22 | void ShowCorrMapsSDD(TString filname="alien:///alice/data/2010/OCDB/ITS/Calib/MapsTimeSDD/Run117224_999999999_v3_s0.root"){ | |
23 | ||
24 | if(filname.Contains("alien")){ | |
25 | TGrid::Connect("alien:"); | |
26 | } | |
27 | TFile *fil =TFile::Open(filname.Data()); | |
28 | ||
29 | AliCDBEntry* ent=(AliCDBEntry*)fil->Get("AliCDBEntry"); | |
30 | TObjArray *maptSDD = (TObjArray *)ent->GetObject(); | |
31 | printf("Entries in array=%d\n",maptSDD->GetEntriesFast()); | |
32 | TString psnm0 = "mapsSDD.ps["; | |
33 | TString psnm1 = "mapsSDD.ps"; | |
34 | TString psnm2 = "mapsSDD.ps]"; | |
38dd5c93 | 35 | Bool_t oldMapFormat=kFALSE; |
36 | TObject* objmap=(TObject*)maptSDD->At(0); | |
37 | TString cname(objmap->ClassName()); | |
38 | if(cname.CompareTo("AliITSMapSDD")==0){ | |
39 | oldMapFormat=kTRUE; | |
40 | printf("SDD Maps converted to new format\n"); | |
41 | } | |
42 | ||
43 | ||
593c1f3e | 44 | TCanvas * c3=new TCanvas("c3","Layer 3",1200,900); |
45 | c3->Print(psnm0.Data()); | |
46 | gStyle->SetPalette(1); | |
47 | gStyle->SetOptStat(0); | |
48 | Int_t cntpad=0; | |
49 | for(Int_t i=0; i<84; i++){ | |
50 | if(i%6==0){ | |
51 | c3->cd(); | |
52 | c3->Modified(); | |
53 | c3->Update(); | |
54 | if(i) c3->Print(psnm1.Data()); | |
55 | c3->Clear(); | |
56 | c3->Divide(4,3); | |
57 | cntpad=0; | |
58 | } | |
59 | Int_t index0=i*2; | |
60 | Int_t index1=i*2+1; | |
38dd5c93 | 61 | AliITSCorrMapSDD* map0 = 0; |
62 | AliITSCorrMapSDD* map1 = 0; | |
63 | if(oldMapFormat){ | |
64 | AliITSMapSDD* oldmap0=(AliITSMapSDD*)maptSDD->At(index0); | |
65 | AliITSMapSDD* oldmap1=(AliITSMapSDD*)maptSDD->At(index1); | |
66 | map0=oldmap0->ConvertToNewFormat(); | |
67 | map1=oldmap1->ConvertToNewFormat(); | |
68 | }else{ | |
69 | map0=(AliITSCorrMapSDD*)maptSDD->At(index0); | |
70 | map1=(AliITSCorrMapSDD*)maptSDD->At(index1); | |
71 | } | |
72 | ||
593c1f3e | 73 | printf("Module %s Entries in map %dx%d\n",map0->GetName(),map0->GetNBinsAnode(),map0->GetNBinsDrift()); |
74 | if(map0->GetNBinsAnode()==1){ | |
75 | TH1F* hp0=map0->GetMapProfile(); | |
76 | TH1F* hp1=map1->GetMapProfile(); | |
77 | if(hp0->GetMinimum()>-0.000001) hp0->SetMinimum(-10); | |
78 | if(hp0->GetMaximum()<0.000001) hp0->SetMaximum(10); | |
79 | if(hp1->GetMinimum()>-0.000001) hp1->SetMinimum(-10); | |
80 | if(hp1->GetMaximum()<0.000001) hp1->SetMaximum(10); | |
81 | hp0->SetTitle(Form("Module %d - Left",i+240)); | |
82 | hp1->SetTitle(Form("Module %d - Right",i+240)); | |
83 | hp0->GetXaxis()->SetTitle("Drift distance (mm)"); | |
84 | hp0->GetYaxis()->SetTitle("Correction (#mum)"); | |
85 | hp1->GetXaxis()->SetTitle("Drift distance (mm)"); | |
86 | hp1->GetYaxis()->SetTitle("Correction (#mum)"); | |
87 | c3->cd(++cntpad); | |
88 | hp0->Draw(); | |
89 | c3->cd(++cntpad); | |
90 | hp1->Draw(); | |
91 | }else{ | |
92 | TH2F* hmap0=map0->GetMapHisto(); | |
93 | TH2F* hmap1=map1->GetMapHisto(); | |
94 | c3->cd(++cntpad); | |
95 | hmap0->Draw("colz"); | |
96 | c3->cd(++cntpad); | |
97 | hmap1->Draw("colz"); | |
98 | } | |
99 | } | |
100 | c3->cd(); | |
101 | c3->Modified(); | |
102 | c3->Update(); | |
103 | c3->Print(psnm1.Data()); | |
104 | ||
105 | TCanvas * c4=new TCanvas("c4","Layer 4",1200,900); | |
106 | c4->Divide(4,4); | |
107 | gStyle->SetPalette(1); | |
108 | for(Int_t i=84; i<260; i++){ | |
109 | Int_t j=i-84; | |
110 | if(j%8==0){ | |
111 | c4->cd(); | |
112 | c4->Modified(); | |
113 | c4->Update(); | |
114 | if(j) c4->Print(psnm1.Data()); | |
115 | c4->Clear(); | |
116 | c4->Divide(4,4); | |
117 | cntpad=0; | |
118 | } | |
119 | Int_t index0=i*2; | |
120 | Int_t index1=i*2+1; | |
38dd5c93 | 121 | AliITSCorrMapSDD* map0 = 0; |
122 | AliITSCorrMapSDD* map1 = 0; | |
123 | if(oldMapFormat){ | |
124 | AliITSMapSDD* oldmap0=(AliITSMapSDD*)maptSDD->At(index0); | |
125 | AliITSMapSDD* oldmap1=(AliITSMapSDD*)maptSDD->At(index1); | |
126 | map0=oldmap0->ConvertToNewFormat(); | |
127 | map1=oldmap1->ConvertToNewFormat(); | |
128 | }else{ | |
129 | map0=(AliITSCorrMapSDD*)maptSDD->At(index0); | |
130 | map1=(AliITSCorrMapSDD*)maptSDD->At(index1); | |
131 | } | |
593c1f3e | 132 | printf("Module %d Entries in map %dx%d\n",i,map0->GetNBinsAnode(),map0->GetNBinsDrift()); |
133 | if(map0->GetNBinsAnode()==1){ | |
134 | TH1F* hp0=map0->GetMapProfile(); | |
135 | TH1F* hp1=map1->GetMapProfile(); | |
136 | if(hp0->GetMinimum()>-0.000001) hp0->SetMinimum(-10); | |
137 | if(hp0->GetMaximum()<0.000001) hp0->SetMaximum(10); | |
138 | if(hp1->GetMinimum()>-0.000001) hp1->SetMinimum(-10); | |
139 | if(hp1->GetMaximum()<0.000001) hp1->SetMaximum(10); | |
140 | hp0->SetTitle(Form("Module %d - Left",i+240)); | |
141 | hp1->SetTitle(Form("Module %d - Right",i+240)); | |
142 | hp0->GetXaxis()->SetTitle("Drift distance (mm)"); | |
143 | hp0->GetYaxis()->SetTitle("Correction (#mum)"); | |
144 | hp1->GetXaxis()->SetTitle("Drift distance (mm)"); | |
145 | hp1->GetYaxis()->SetTitle("Correction (#mum)"); | |
146 | c4->cd(++cntpad); | |
147 | hp0->Draw(); | |
148 | c4->cd(++cntpad); | |
149 | hp1->Draw(); | |
150 | }else{ | |
151 | TH2F* hmap0=map0->GetMapHisto(); | |
152 | TH2F* hmap1=map1->GetMapHisto(); | |
153 | c4->cd(++cntpad); | |
154 | hmap0->Draw("colz"); | |
155 | c4->cd(++cntpad); | |
156 | hmap1->Draw("colz"); | |
157 | } | |
158 | } | |
159 | c4->cd(); | |
160 | c4->Modified(); | |
161 | c4->Update(); | |
162 | c4->Print(psnm1.Data()); | |
163 | c4->Print(psnm2.Data()); | |
164 | ||
165 | } |