1 void runITSTPCalignment( UInt_t saveinterval = 1000000 )
6 //runProof("/COMMON/COMMON/LHC09a4_run8100X#esdTree");
7 runLocal("AliESDs.root");
13 //_________________________________________________//
14 void runLocal(const char* filenamestr = "AliESDs.root" ) {
16 TString inputFilename(filenamestr);
17 TString outputArrayFilename = "ITSTPCalignmentArray.root";
18 TString outputHistFilename = "ITSTPCalignmentHist.root";
20 //____________________________________________________//
21 //_____________Setting up the par files_______________//
22 //____________________________________________________//
23 setupPar("STEERBase");
24 gSystem->Load("libSTEERBase.so");
26 gSystem->Load("libVMC.so");
27 gSystem->Load("libESD.so");
29 gSystem->Load("libAOD.so");
31 gSystem->Load("libANALYSIS.so");
32 setupPar("ANALYSISalice");
33 gSystem->Load("libANALYSISalice.so");
34 //____________________________________________________//
36 //add input files from dirs
37 TChain* chain = new TChain("esdTree");
38 chain->SetBranchStatus("*ESDfriend*",0);
39 TString workingDir = gSystem->pwd();
40 void* dirhandle = gSystem->OpenDirectory(workingDir.Data());
41 if (!dirhandle) return;
42 const char* filenamestr;
43 while ((filenamestr = gSystem->GetDirEntry(dirhandle)))
45 TString filename(filenamestr);
46 if (filename=="." || filename=="..") continue;
47 if (gSystem->cd(filename.Data()))
49 if (!gSystem->AccessPathName(inputFilename.Data()))//return value is here inverted!
51 TString inputESDfile(workingDir);
53 inputESDfile += filename;
55 inputESDfile += inputFilename;
56 chain->Add(inputESDfile.Data());
57 printf("found file: %s\n", inputESDfile.Data());
59 gSystem->cd(workingDir.Data());
63 //____________________________________________//
64 gROOT->LoadMacro("AliRelAlignerKalman.cxx++");
65 gROOT->LoadMacro("AliRelAlignerKalmanArray.cxx++");
66 gROOT->LoadMacro("AliAnalysisTaskITSTPCalignment.cxx++");
69 AliAnalysisManager *mgr = new AliAnalysisManager("ITSTPCalignmentAnalysisManager");
70 AliVEventHandler* esdH = new AliESDInputHandler;
71 mgr->SetInputEventHandler(esdH);
74 AliAnalysisTaskITSTPCalignment *taskITSTPCalignment =
75 new AliAnalysisTaskITSTPCalignment("TaskITSTPCalignment");
76 taskITSTPCalignment->SetDoQA(kTRUE);
78 mgr->AddTask(taskITSTPCalignment);
80 AliAnalysisDataContainer* cinput0 = mgr->GetCommonInputContainer();
81 AliAnalysisDataContainer* coutput0 = mgr->CreateContainer("outputArray",
82 AliRelAlignerKalmanArray::Class(),
83 AliAnalysisManager::kOutputContainer,
84 outputArrayFilename.Data());
85 AliAnalysisDataContainer* coutput1 = mgr->CreateContainer("outputList",
87 AliAnalysisManager::kOutputContainer,
88 outputHistFilename.Data());
90 mgr->ConnectInput(taskITSTPCalignment,0,cinput0);
91 mgr->ConnectOutput(taskITSTPCalignment,0,coutput0);
92 mgr->ConnectOutput(taskITSTPCalignment,1,coutput1);
93 if (!mgr->InitAnalysis()) return;
96 mgr->StartAnalysis("local",chain);
99 //_________________________________________________//
100 void runInteractive(const char* collectionName = "tag.xml") {
101 gSystem->Load("libProofPlayer.so");
103 TString outputArrayFilename = "ITSTPCalignmentArray.root";
104 TString outputHistFilename = "ITSTPCalignmentHist.root";
106 printf("*** Connect to AliEn ***\n");
107 TGrid::Connect("alien://");
109 //____________________________________________________//
110 //_____________Setting up the par files_______________//
111 //____________________________________________________//
112 setupPar("STEERBase");
113 gSystem->Load("libSTEERBase.so");
115 gSystem->Load("libVMC.so");
116 gSystem->Load("libESD.so");
118 gSystem->Load("libAOD.so");
119 setupPar("ANALYSIS");
120 gSystem->Load("libANALYSIS.so");
121 setupPar("ANALYSISalice");
122 gSystem->Load("libANALYSISalice.so");
123 //____________________________________________________//
125 //____________________________________________//
126 AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
128 AliRunTagCuts *runCuts = new AliRunTagCuts();
129 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
130 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
131 AliEventTagCuts *evCuts = new AliEventTagCuts();
134 TAlienCollection* coll = TAlienCollection::Open(collectionName);
135 TGridResult* TagResult = coll->GetGridResult("",0,0);
136 tagAnalysis->ChainGridTags(TagResult);
138 chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
139 chain->SetBranchStatus("*Calo*",0);
141 //____________________________________________//
142 gROOT->LoadMacro("AliRelAlignerKalman.cxx++");
143 gROOT->LoadMacro("AliRelAlignerKalmanArray.cxx++");
144 gROOT->LoadMacro("AliAnalysisTaskITSTPCalignment.cxx++");
147 AliAnalysisManager *mgr = new AliAnalysisManager("ITSTPCalignmentAnalysisManager");
148 AliVEventHandler* esdH = new AliESDInputHandler;
149 mgr->SetInputEventHandler(esdH);
152 AliAnalysisTaskITSTPCalignment *taskITSTPCalignment =
153 new AliAnalysisTaskITSTPCalignment("TaskITSTPCalignment");
154 taskITSTPCalignment->SetDoQA(kTRUE);
156 mgr->AddTask(taskITSTPCalignment);
158 AliAnalysisDataContainer* cinput0 = mgr->GetCommonInputContainer();
159 AliAnalysisDataContainer* coutput0 = mgr->CreateContainer("outputArray",
160 AliRelAlignerKalmanArray::Class(),
161 AliAnalysisManager::kOutputContainer,
162 outputArrayFilename.Data());
163 AliAnalysisDataContainer* coutput1 = mgr->CreateContainer("outputList",
165 AliAnalysisManager::kOutputContainer,
166 outputHistFilename.Data());
168 mgr->ConnectInput(taskITSTPCalignment,0,cinput0);
169 mgr->ConnectOutput(taskITSTPCalignment,0,coutput0);
170 mgr->ConnectOutput(taskITSTPCalignment,1,coutput1);
171 if (!mgr->InitAnalysis()) return;
174 mgr->StartAnalysis("local",chain);
177 //______________________________________________________________________________
178 Int_t setupPar(const char* pararchivename) {
182 if (pararchivename) {
183 char processline[1024];
184 sprintf(processline,".! tar xvzf %s.par",pararchivename);
185 gROOT->ProcessLine(processline);
186 const char* ocwd = gSystem->WorkingDirectory();
187 gSystem->ChangeDirectory(pararchivename);
189 // check for BUILD.sh and execute
190 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
191 printf("*******************************\n");
192 printf("*** Building PAR archive ***\n");
193 printf("*******************************\n");
195 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
196 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
200 // check for SETUP.C and execute
201 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
202 printf("*******************************\n");
203 printf("*** Setup PAR archive ***\n");
204 printf("*******************************\n");
205 gROOT->Macro("PROOF-INF/SETUP.C");
208 gSystem->ChangeDirectory("../");