3 // 1. Load Calibration from DB
5 .x $ALICE_ROOT/TPC/macros/ConfigOCDB.C
8 //2. Load Calibration components
11 gSystem->Load("libANALYSIS");
12 gSystem->Load("libSTAT");
13 gSystem->Load("libTPCcalib");
14 TFile fcalib("CalibObjects.root");
15 TObjArray * array = (TObjArray*)fcalib.Get("TPCCalib");
16 AliTPCcalibTracksGain * gain = ( AliTPCcalibTracksGain *)array->FindObject("calibTracksGain");
21 AliTPCClusterParam * paramCl = AliTPCcalibDB::Instance()->GetClusterParam();
22 gain->UpdateClusterParam(paramCl);
25 //4. Test - visulaize results
27 TF1 fdr("fdr","AliTPCClusterParam::SQnorm(0,0,x,0,0)",0,1);
30 //5. Update the ClusterParam in your OCDB
33 Int_t runNumber = 0; //61725
34 AliCDBMetaData *metaData= new AliCDBMetaData();
35 metaData->SetObjectClassName("AliTPCClusterParam");
36 metaData->SetResponsible("Marian Ivanov");
37 metaData->SetBeamPeriod(1);
38 metaData->SetAliRootVersion("05-06-00"); //root version
39 metaData->SetComment("October runs calibration");
40 AliCDBId id1("TPC/Calib/ClusterParam", runNumber, AliCDBRunRange::Infinity());
41 gStorage = AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT/OCDB");
42 gStorage->Put(paramCl, id1, metaData);
46 // 6. dEdx matching - Currently only debug streamers
47 // Load Proof with OCDB
48 See pseudo code TestChainCosmicdEdx
55 void TestChainCosmicDedx(){
59 gSystem->Load("libANALYSIS");
60 gSystem->Load("libSTAT");
61 gSystem->Load("libTPCcalib");
64 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
65 gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
66 AliXRDPROOFtoolkit tool;
67 TChain * chainCosmic = tool.MakeChain("cosmic.txt","Track0",0,1000000);
68 chainCosmic->Lookup();
72 TCut cutT("cutT","abs(Tr1.fP[3]+Tr0.fP[3])<0.01"); // OK
73 TCut cutD("cutD","abs(Tr0.fP[0]+Tr1.fP[0])<2"); // OK
74 TCut cutP1("cutP1","abs(Tr0.fP[1]-Tr1.fP[1])<3"); // OK
75 TCut cutPt("cutPt","abs(Tr1.fP[4]+Tr0.fP[4])<0.1&&abs(Tr0.fP[4])+abs(Tr1.fP[4])<10");
76 TCut cutN("cutN","min(Orig0.fTPCncls,Orig1.fTPCncls)>100");
77 TCut cutA=cutT+cutD+cutPt+cutN+cutP1;
79 TCut cutS("cutS","Orig0.fIp.fP[1]*Orig1.fIp.fP[1]>0");
81 if (gProof) chainCosmic->SetProof(kTRUE);
88 // Q normalization - short - medium - long
95 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,0,0,64,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
96 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
97 hisRatio->Fit("gaus");
98 paramT[0]=hisRatio->GetFunction("gaus")->GetParameter(1);
100 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,0,64,127,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
101 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
102 hisRatio->Fit("gaus");
103 paramT[1]=hisRatio->GetFunction("gaus")->GetParameter(1);
105 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,0,127,159,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,0,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
106 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
107 hisRatio->Fit("gaus");
108 paramT[2]=hisRatio->GetFunction("gaus")->GetParameter(1);
110 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,0,64,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
111 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
112 hisRatio->Fit("gaus");
113 paramM[0]=hisRatio->GetFunction("gaus")->GetParameter(1);
115 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,64,127,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
116 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
117 hisRatio->Fit("gaus");
118 paramM[1]=hisRatio->GetFunction("gaus")->GetParameter(1);
120 chainCosmic->Draw("Seed0.CookdEdxNorm(0.01,0.65,1,127,159,0,kFALSE)/Seed0.CookdEdxNorm(0.01,0.65,1,0,159,0,kFALSE)>>hisRatio(100,0.5,1.5)","min(Orig0.fTPCncls,Orig1.fTPCncls)>130","");
121 hisRatio = (TH1*)gROOT->FindObject("hisRatio");
122 hisRatio->Fit("gaus");
123 paramM[2]=hisRatio->GetFunction("gaus")->GetParameter(1);
130 paramCl->fQpadTnorm=(TVectorD*)paramT->Clone();
131 paramCl->fQpadMnorm=(TVectorD*)paramM->Clone();