1 #if !defined(__CINT__) || defined(__MAKECINT__)
10 #include <TObjArray.h>
11 #include "AliCDBEntry.h"
12 #include "AliITSCorrMapSDD.h"
13 #include "AliITSMapSDD.h"
17 // Macro to plot the SDD correction maps
18 // from the OCDB file (OCDB/ITS/Calib/MapsTimeSDD)
20 // Origin: F. Prino (prino@to.infn.it)
22 void ShowCorrMapsSDD(TString filname="alien:///alice/data/2010/OCDB/ITS/Calib/MapsTimeSDD/Run117224_999999999_v3_s0.root"){
24 if(filname.Contains("alien")){
25 TGrid::Connect("alien:");
27 TFile *fil =TFile::Open(filname.Data());
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]";
35 Bool_t oldMapFormat=kFALSE;
36 TObject* objmap=(TObject*)maptSDD->At(0);
37 TString cname(objmap->ClassName());
38 if(cname.CompareTo("AliITSMapSDD")==0){
40 printf("SDD Maps converted to new format\n");
44 TCanvas * c3=new TCanvas("c3","Layer 3",1200,900);
45 c3->Print(psnm0.Data());
46 gStyle->SetPalette(1);
47 gStyle->SetOptStat(0);
49 for(Int_t i=0; i<84; i++){
54 if(i) c3->Print(psnm1.Data());
61 AliITSCorrMapSDD* map0 = 0;
62 AliITSCorrMapSDD* map1 = 0;
64 AliITSMapSDD* oldmap0=(AliITSMapSDD*)maptSDD->At(index0);
65 AliITSMapSDD* oldmap1=(AliITSMapSDD*)maptSDD->At(index1);
66 map0=oldmap0->ConvertToNewFormat();
67 map1=oldmap1->ConvertToNewFormat();
69 map0=(AliITSCorrMapSDD*)maptSDD->At(index0);
70 map1=(AliITSCorrMapSDD*)maptSDD->At(index1);
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)");
92 TH2F* hmap0=map0->GetMapHisto();
93 TH2F* hmap1=map1->GetMapHisto();
103 c3->Print(psnm1.Data());
105 TCanvas * c4=new TCanvas("c4","Layer 4",1200,900);
107 gStyle->SetPalette(1);
108 for(Int_t i=84; i<260; i++){
114 if(j) c4->Print(psnm1.Data());
121 AliITSCorrMapSDD* map0 = 0;
122 AliITSCorrMapSDD* map1 = 0;
124 AliITSMapSDD* oldmap0=(AliITSMapSDD*)maptSDD->At(index0);
125 AliITSMapSDD* oldmap1=(AliITSMapSDD*)maptSDD->At(index1);
126 map0=oldmap0->ConvertToNewFormat();
127 map1=oldmap1->ConvertToNewFormat();
129 map0=(AliITSCorrMapSDD*)maptSDD->At(index0);
130 map1=(AliITSCorrMapSDD*)maptSDD->At(index1);
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)");
151 TH2F* hmap0=map0->GetMapHisto();
152 TH2F* hmap1=map1->GetMapHisto();
162 c4->Print(psnm1.Data());
163 c4->Print(psnm2.Data());