]>
Commit | Line | Data |
---|---|---|
1037b1ac | 1 | /* |
2 | Simple calibration analysis | |
967eae0d | 3 | // |
4 | //0. Setup memory chcecker if you want | |
5 | // | |
6 | gSystem->Load("$ROOTSYS/lib/libGui.so"); | |
7 | gSystem->Load("$ROOTSYS/lib/libTree.so"); | |
8 | gSystem->Load("$MEMSTAT/libMemStat.so"); | |
9 | TMemStat *memstat = new TMemStat(100000000,10000000,kTRUE); | |
10 | AliSysInfo::AddCallBack(TMemStatManager::GetInstance()->fStampCallBack); | |
1037b1ac | 11 | |
967eae0d | 12 | AliSysInfo::AddStamp("Start"); |
1037b1ac | 13 | //1. Load needed libraries |
14 | gSystem->Load("libANALYSIS"); | |
15 | gSystem->Load("libTPCcalib"); | |
16 | // | |
17 | // Setup analysis manager | |
18 | // | |
1037b1ac | 19 | .L $ALICE_ROOT/TPC/macros/CalibrateTPC.C |
78abca19 | 20 | AliAnalysisManager * mgr = SetupCalibTask("/V6/"); |
1037b1ac | 21 | // |
22 | // Process data - chain | |
23 | // | |
24 | gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros"); | |
ae28e92e | 25 | gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+") |
6fa23923 | 26 | AliXRDPROOFtoolkit tool; |
78abca19 | 27 | TChain * chain = tool.MakeChain("esd.txt","esdTree",0,100); |
ae28e92e | 28 | chain->Lookup(); |
cbc19295 | 29 | // memory |
30 | mgr->SetNSysInfo(100); | |
cbc19295 | 31 | // |
967eae0d | 32 | mgr->SetDebugLevel(1); |
f491be13 | 33 | mgr->StartAnalysis("proof",chain); |
34 | //mgr->StartAnalysis("local",chain); | |
967eae0d | 35 | // delete manager |
36 | // | |
37 | delete mgr; | |
38 | AliSysInfo::AddStamp("End"); | |
39 | // | |
40 | // analyze memstat report | |
41 | // | |
42 | delete memstat; | |
43 | TMemStat draw("memstat.root"); | |
44 | draw.MakeReport(0,0,"order 0 sortstat 3 sortstamp 0 sortdeep 10 stackdeep 15 maxlength 50") | |
1037b1ac | 45 | */ |
46 | ||
47 | ||
78abca19 | 48 | AliAnalysisManager * SetupCalibTask(char * prefix ="/V12/") { |
1037b1ac | 49 | // |
50 | // | |
51 | // | |
52 | TStopwatch stopwatch; | |
53 | stopwatch.Start(); | |
967eae0d | 54 | // |
55 | // set magnetic field form the cosmos - it should be provided by framework | |
56 | AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 2); | |
57 | AliTracker::SetFieldMap(field,0); | |
bdb9738c | 58 | TGeoManager::Import("/u/miranov/proof/geometry.root"); |
f491be13 | 59 | // |
78abca19 | 60 | TFile f("/u/miranov/GainMap.root"); |
61 | AliTPCCalPad *gainMap = f.Get("GainMap"); | |
62 | // | |
63 | // OCDB setup | |
64 | // | |
65 | AliCDBManager::Instance()->SetRun(1); | |
66 | AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT"); | |
67 | AliTPCcalibDB::Instance()->SetExBField(0); | |
68 | AliTPCClusterParam * param = AliTPCcalibDB::Instance()->GetClusterParam(); | |
69 | AliTPCClusterParam::SetInstance(param); | |
70 | AliTPCcalibDB::Instance()->SetExBField(0); | |
f491be13 | 71 | // |
f491be13 | 72 | |
73 | ||
967eae0d | 74 | // |
1037b1ac | 75 | AliAnalysisManager *mgr=new AliAnalysisManager("TestManager"); |
76 | ||
77 | AliESDInputHandler* esdH=new AliESDInputHandler; | |
78 | esdH->SetActiveBranches("ESDfriend"); | |
79 | mgr->SetInputEventHandler(esdH); | |
ae28e92e | 80 | // |
81 | // | |
82 | AliCDBManager::Instance()->SetRun(1) ; | |
83 | AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT"); | |
84 | AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam(); | |
1037b1ac | 85 | |
967eae0d | 86 | AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("TPC calibration task"); |
1037b1ac | 87 | |
78abca19 | 88 | AliTPCcalibTracksCuts *cuts = new AliTPCcalibTracksCuts(40, 0.4, 0.5, 0.13, 0.018); |
1037b1ac | 89 | |
967eae0d | 90 | // |
ae28e92e | 91 | AliTPCcalibTracks *calibTracks = new AliTPCcalibTracks("calibTracks", "Resolution calibration object for tracks", clusterParam, cuts); |
78abca19 | 92 | |
93 | ||
967eae0d | 94 | AliTPCcalibTracksGain *calibTracksGain = new AliTPCcalibTracksGain("calibTracksGain","Gain calibration using tracks",cuts); |
95 | AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors"); | |
752287d5 | 96 | AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC"); |
97 | AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC"); | |
78abca19 | 98 | AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC"); |
99 | TTimeStamp startTime(2008,9,0,0,0,0); | |
100 | TTimeStamp stopTime(2008,11,0,0,0,0); | |
101 | AliTPCcalibTime *calibTime = new AliTPCcalibTime("cosmicTime","cosmicTime",0, startTime.GetSec(), stopTime.GetSec(), 5*60, 5*60); | |
102 | ||
f491be13 | 103 | calibCosmic->SetGainMap(gainMap); |
78abca19 | 104 | calibTracksGain->SetGainMap(gainMap); |
f491be13 | 105 | // |
106 | calibTracks->SetDebugLevel(20); | |
107 | calibTracks->SetStreamLevel(20); | |
108 | calibTracksGain->SetDebugLevel(2); | |
109 | calibTracksGain->SetStreamLevel(20); | |
967eae0d | 110 | calibAlign->SetDebugLevel(20); |
f491be13 | 111 | calibAlign->SetStreamLevel(10); |
752287d5 | 112 | calibLaser->SetDebugLevel(20); |
78abca19 | 113 | calibLaser->SetStreamLevel(20); |
752287d5 | 114 | calibCosmic->SetDebugLevel(20); |
115 | calibCosmic->SetStreamLevel(2); | |
78abca19 | 116 | calibCalib->SetDebugLevel(20); |
117 | calibCalib->SetStreamLevel(10); | |
752287d5 | 118 | |
967eae0d | 119 | // |
ae28e92e | 120 | // ---*---*-----*-*-----*----------*--- |
1037b1ac | 121 | // ADD CALIB JOBS HERE!!!!!!!!!!!!!!!! |
78abca19 | 122 | task1->AddJob(calibCalib); |
bdb9738c | 123 | task1->AddJob(calibAlign); |
78abca19 | 124 | task1->AddJob(calibLaser); |
f491be13 | 125 | task1->AddJob(calibCosmic); |
78abca19 | 126 | task1->AddJob(calibTime); |
127 | ||
f491be13 | 128 | task1->AddJob(calibTracksGain); |
129 | task1->AddJob(calibTracks); | |
1037b1ac | 130 | // task1->AddJob(new AliTPCcalibV0); |
131 | // -*----*----*---*-*------*-------**-- | |
132 | // -------*--*---------*-----*-------*- | |
78abca19 | 133 | TString path=gSystem->pwd(); |
134 | path+=prefix; | |
135 | gSystem->mkdir(path); | |
136 | task1->SetDebugOuputhPath(path.Data()); | |
137 | ||
1037b1ac | 138 | mgr->AddTask(task1); |
139 | ||
140 | AliAnalysisDataContainer *cinput1 | |
141 | =mgr->CreateContainer("cchain1",TChain::Class(), | |
142 | AliAnalysisManager::kInputContainer); | |
143 | AliAnalysisDataContainer *coutput1 | |
bdb9738c | 144 | =mgr->CreateContainer("TPCCalib",TObjArray::Class(), |
1037b1ac | 145 | AliAnalysisManager::kOutputContainer, |
146 | "CalibObjects.root"); | |
78abca19 | 147 | |
148 | coutput1->SetSpecialOutput(kTRUE); | |
149 | //coutput1->SetFileName("CalibObjectFile.root"); | |
1037b1ac | 150 | mgr->ConnectInput(task1,0,cinput1); |
151 | mgr->ConnectOutput(task1,0,coutput1); | |
78abca19 | 152 | // |
153 | //mgr->SetSpecialOutputLocation(path->Data()); | |
1037b1ac | 154 | |
155 | if (!mgr->InitAnalysis()) return; | |
156 | mgr->PrintStatus(); | |
157 | ||
158 | stopwatch.Stop(); | |
159 | stopwatch.Print(); | |
160 | return mgr; | |
161 | } | |
78abca19 | 162 | |
163 | ||
164 | void Merge(){ | |
165 | fstream finput; | |
166 | TString currentFile(""); | |
167 | finput.open("mergelist.txt", ios_base::in); | |
168 | TFileMerger merger; | |
169 | merger.OutputFile("result.root"); | |
170 | finput >> currentFile; | |
171 | merger->AddFile(currentFile->Data()); | |
172 | merger.Merge(); | |
173 | TFile::Cp("result.root","last.root"); | |
174 | // | |
175 | while(finput.good()) { | |
176 | TFileMerger merger2; | |
177 | merger2.OutputFile("result.root"); | |
178 | finput >> currentFile; | |
179 | merger2.AddFile("last.root"); | |
180 | merger2.AddFile(currentFile->Data()); | |
181 | merger2.Merge(); | |
182 | TFile::Cp("result.root","last.root"); | |
183 | } | |
184 | } |