Extacting the OCDB in a separate module. The detectors have write permission in the...
[u/mrichter/AliRoot.git] / TPC / macros / CalibrateTPC.C
1 /*
2   Simple calibration analysis
3   //
4   //0. Setup memory chcecker if you want 
5   //
6   TMemStat *memstat = new TMemStat("new,gnubuildin");
7   AliSysInfo::AddCallBack(TMemStatManager::GetInstance()->fStampCallBack);
8
9   AliSysInfo::AddStamp("Start");  
10   //1. Load needed libraries
11   gSystem->Load("libANALYSIS");
12   gSystem->Load("libTPCcalib");
13   //
14   // Setup analysis manager
15   //
16   .L $ALICE_ROOT/TPC/macros/CalibrateTPC.C
17   AliAnalysisManager * mgr = ( AliAnalysisManager *)SetupCalibTask("/V2/");  
18   gROOT->Macro(Form("$ALICE_ROOT/TPC/macros/ConfigOCDB.C(%f)",5));
19
20   //
21   // Process data - chain
22   //
23   gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
24   gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
25   AliXRDPROOFtoolkit tool; 
26   TChain * chain = tool.MakeChainRandom("esd.txt","esdTree",0,5);
27   chain->Lookup();
28   // memory
29   mgr->SetNSysInfo(1000); 
30   //
31   mgr->SetDebugLevel(10);
32   mgr->StartAnalysis("proof",chain);
33   //mgr->StartAnalysis("local",chain);
34   // delete manager
35   //
36   delete mgr;
37   AliSysInfo::AddStamp("End");
38   //
39   // analyze memstat report
40   //
41   delete memstat;
42   TMemStat mem;
43   mem.MakeReport(0,0,"order 0 sortstat 3 sortstamp 0 sortdeep 10 stackdeep 15 maxlength 50")   
44 */
45
46 TObject  * SetupCalibTask(char * prefix ="/V12/") {
47   //
48   //
49   //
50   TStopwatch stopwatch;
51   stopwatch.Start();
52   //
53   //
54   AliAnalysisManager *mgr=new AliAnalysisManager("TestManager");
55
56   AliESDInputHandler* esdH=new AliESDInputHandler;
57   esdH->SetActiveBranches("ESDfriend");
58   mgr->SetInputEventHandler(esdH);  
59   //
60   //
61   AliCDBManager::Instance()->SetRun(1) ;
62   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
63   AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam();
64   AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("TPC calibration task");
65   
66   AliTPCcalibTracksCuts *cuts = new AliTPCcalibTracksCuts(40, 0.4, 0.5, 0.13, 0.018);
67
68   //
69   AliTPCcalibTracks *calibTracks =  new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts); 
70
71
72   AliTPCcalibTracksGain *calibTracksGain =  new AliTPCcalibTracksGain("calibTracksGain","Gain calibration using tracks",cuts); 
73   AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors");
74   AliTPCcalibAlign *calibAlignAll = new AliTPCcalibAlign("alignTPCAll","Alignment of the TPC sectors- All");
75   AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC");
76   AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC");
77   AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
78   TTimeStamp startTime(2008,9,0,0,0,0);
79   TTimeStamp stopTime(2008,11,0,0,0,0);
80   AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime", startTime.GetSec(), stopTime.GetSec(), 5*60, 5*60);
81
82   AliTPCcalibUnlinearity *calibUnlinearity = new AliTPCcalibUnlinearity("calibUnlinearity","calibUnlinearity");
83   AliTPCcalibUnlinearity *calibUnlinearityAll = new AliTPCcalibUnlinearity("calibUnlinearityAll","calibUnlinearityAll");
84
85   //
86   calibTracks->SetDebugLevel(2);
87   calibTracks->SetStreamLevel(20);
88   calibTracksGain->SetDebugLevel(2);
89   calibTracksGain->SetStreamLevel(20);
90   calibAlign->SetDebugLevel(20);
91   calibAlign->SetStreamLevel(10);
92   calibAlignAll->SetDebugLevel(20);
93   calibAlignAll->SetStreamLevel(10);
94   calibLaser->SetDebugLevel(0);
95   calibLaser->SetStreamLevel(0);
96   calibCosmic->SetDebugLevel(20);
97   calibCosmic->SetStreamLevel(2);
98   calibCalib->SetDebugLevel(0);
99   calibCalib->SetStreamLevel(0);
100   calibTime->SetDebugLevel(20);
101   calibTime->SetStreamLevel(10);
102   //
103   calibUnlinearity->SetDebugLevel(20);
104   calibUnlinearity->SetStreamLevel(10);
105   calibUnlinearityAll->SetDebugLevel(20);
106   calibUnlinearityAll->SetStreamLevel(10);
107   
108   calibCalib->SetTriggerMask(-1,-1,kFALSE);       //accept everything 
109   calibTracks->SetTriggerMask(-1,16,kTRUE);      //reject laser trigger, accept everything else
110   calibTracksGain->SetTriggerMask(-1,16,kTRUE);  //reject laser trigger, accept everything else
111   calibAlign->SetTriggerMask(-1,-1,kTRUE);       //accept everything 
112   calibAlignAll->SetTriggerMask(-1,-1,kFALSE);   //accept everything 
113   calibLaser->SetTriggerMask(-1,-1,kFALSE);       //accept only laser trigger
114   calibCosmic->SetTriggerMask(-1,-1,kTRUE);      //reject laser trigger, accept everything else
115   calibTime->SetTriggerMask(-1,-1,kFALSE);        //accept everything 
116   calibUnlinearity->SetTriggerMask(-1,-1,kTRUE);   //reject laser 
117   calibUnlinearityAll->SetTriggerMask(-1,-1,kFALSE);   //non reject laser 
118
119
120   //
121  // ---*---*-----*-*-----*----------*---
122   // ADD CALIB JOBS HERE!!!!!!!!!!!!!!!!
123   task1->AddJob(calibCalib);
124   //task1->AddJob(calibAlign);
125   //task1->AddJob(calibAlignAll);
126   //task1->AddJob(calibLaser);
127   //task1->AddJob(calibCosmic);
128   task1->AddJob(calibTime);
129
130   //task1->AddJob(calibTracksGain);
131   //task1->AddJob(calibTracks);
132   //task1->AddJob(calibUnlinearity);
133   //task1->AddJob(calibUnlinearityAll);
134   // task1->AddJob(new AliTPCcalibV0);
135   // -*----*----*---*-*------*-------**--
136   // -------*--*---------*-----*-------*-
137   TString path=gSystem->pwd();
138   path+=prefix;
139   gSystem->mkdir(path);
140   task1->SetDebugOuputhPath(path.Data());
141
142   mgr->AddTask(task1);
143
144   AliAnalysisDataContainer *cinput1
145     =mgr->CreateContainer("cchain1",TChain::Class(),
146                           AliAnalysisManager::kInputContainer);
147   AliAnalysisDataContainer *coutput1
148     =mgr->CreateContainer("TPCCalib",TObjArray::Class(),
149                           AliAnalysisManager::kOutputContainer,
150                           "CalibObjects.root");
151   
152   //coutput1->SetSpecialOutput(kTRUE);
153   //coutput1->SetFileName("CalibObjectFile.root");
154   mgr->ConnectInput(task1,0,cinput1);
155   mgr->ConnectOutput(task1,0,coutput1);
156   //
157   //mgr->SetSpecialOutputLocation(path->Data());
158
159   if (!mgr->InitAnalysis()) return 0;
160   mgr->PrintStatus(); 
161   
162   stopwatch.Stop();
163   stopwatch.Print();
164   return mgr;
165 }
166
167
168
169
170
171
172 void CalibrateTPC(Float_t magf, Int_t first, Int_t last){
173   gSystem->Load("libANALYSIS");
174   gSystem->Load("libTPCcalib");
175   gROOT->Macro(Form("$ALICE_ROOT/TPC/macros/ConfigOCDB.C(%f)",magf));
176   //
177   // Setup analysis manager
178   //
179   //.L $ALICE_ROOT/TPC/macros/CalibrateTPC.C
180   AliAnalysisManager * mgr = (AliAnalysisManager*)SetupCalibTask("/V3/");
181   //
182   // Process data - chain
183   //
184   gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
185   gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");
186   AliXRDPROOFtoolkit tool; 
187   TChain * chain = tool.MakeChain("esd.txt","esdTree",0,last-first,last);
188   chain->Lookup();
189   // memory
190   mgr->SetNSysInfo(5000); 
191   //
192   mgr->SetDebugLevel(1);
193   mgr->StartAnalysis("local",chain);
194   
195 }