1 void runProtonAnalysisQA() {
5 runProof(200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets
6 //runInteractive("wn.xml");
12 //_________________________________________________//
13 void runInteractive(const char *collectionfile) {
14 TString outputFilename1 = "Protons.QA.root";
15 TString outputFilename2 = "Protons.MC.QA.root";
16 TString outputFilename3 = "Protons.QA.Histograms.root";
17 TString outputFilename4 = "Protons.Efficiency.root";
19 TGrid::Connect("alien://");
22 setupPar("STEERBase");
23 gSystem->Load("libSTEERBase.so");
25 gSystem->Load("libESD.so");
27 gSystem->Load("libAOD.so");
29 gSystem->Load("libANALYSIS.so");
30 setupPar("ANALYSISalice");
31 gSystem->Load("libANALYSISalice.so");
33 gSystem->Load("libCORRFW.so");
34 setupPar("PWG2spectra");
35 gSystem->Load("libPWG2spectra.so");
37 gROOT->LoadMacro("AliAnalysisTaskProtonsQA.cxx+");
38 //____________________________________________//
40 AliTagAnalysis *analysis = new AliTagAnalysis();
42 chain = analysis->GetChainFromCollection(collectionfile,"esdTree");
44 //____________________________________________//
45 // Make the analysis manager
46 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
47 AliVEventHandler* esdH = new AliESDInputHandler;
48 mgr->SetInputEventHandler(esdH);
49 AliMCEventHandler *mc = new AliMCEventHandler();
50 mgr->SetMCtruthEventHandler(mc);
52 //____________________________________________//
54 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
55 mgr->AddTask(taskProtonsQA);
57 // Create containers for input/output
58 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
60 AliAnalysisManager::kInputContainer);
61 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
63 AliAnalysisManager::kOutputContainer,
64 outputFilename1.Data());
65 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
67 AliAnalysisManager::kOutputContainer,
68 outputFilename2.Data());
69 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
71 AliAnalysisManager::kOutputContainer,
72 outputFilename2.Data());
73 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
75 AliAnalysisManager::kOutputContainer,
76 outputFilename3.Data());
77 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList",
79 AliAnalysisManager::kOutputContainer,
80 outputFilename3.Data());
81 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList",
83 AliAnalysisManager::kOutputContainer,
84 outputFilename4.Data());
86 //____________________________________________//
87 mgr->ConnectInput(taskProtonsQA,0,cinput1);
88 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
89 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
90 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
91 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
92 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
93 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
94 if (!mgr->InitAnalysis()) return;
96 mgr->StartAnalysis("local",chain);
99 //_________________________________________________//
100 void runProof(Int_t stats = 0, const char* dataset = 0x0) {
101 TString outputFilename1 = "Protons.QA.root";
102 TString outputFilename2 = "Protons.MC.QA.root";
103 TString outputFilename3 = "Protons.QA.Histograms.root";
104 TString outputFilename4 = "Protons.Efficiency.root";
106 printf("****** Connect to PROOF *******\n");
107 TProof::Open("alicecaf.cern.ch");
108 gProof->SetParallel();
110 // Enable the Analysis Package
111 gProof->UploadPackage("STEERBase.par");
112 gProof->EnablePackage("STEERBase");
113 gProof->UploadPackage("ESD.par");
114 gProof->EnablePackage("ESD");
115 gProof->UploadPackage("AOD.par");
116 gProof->EnablePackage("AOD");
117 gProof->UploadPackage("ANALYSIS.par");
118 gProof->EnablePackage("ANALYSIS");
119 gProof->UploadPackage("ANALYSISalice.par");
120 gProof->EnablePackage("ANALYSISalice");
121 gProof->UploadPackage("CORRFW.par");
122 gProof->EnablePackage("CORRFW");
123 gProof->UploadPackage("PWG2spectra.par");
124 gProof->EnablePackage("PWG2spectra");
126 gProof->Load("AliAnalysisTaskProtonsQA.cxx++");
128 //____________________________________________//
129 // Make the analysis manager
130 AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
131 AliVEventHandler* esdH = new AliESDInputHandler;
132 mgr->SetInputEventHandler(esdH);
133 AliMCEventHandler *mc = new AliMCEventHandler();
134 mgr->SetMCtruthEventHandler(mc);
136 //____________________________________________//
138 AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
139 mgr->AddTask(taskProtonsQA);
141 // Create containers for input/output
142 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
144 AliAnalysisManager::kInputContainer);
145 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList",
147 AliAnalysisManager::kOutputContainer,
148 outputFilename1.Data());
149 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList",
151 AliAnalysisManager::kOutputContainer,
152 outputFilename2.Data());
153 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList",
155 AliAnalysisManager::kOutputContainer,
156 outputFilename2.Data());
157 AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList",
159 AliAnalysisManager::kOutputContainer,
160 outputFilename3.Data());
161 AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("acceptedDCAList",
163 AliAnalysisManager::kOutputContainer,
164 outputFilename3.Data());
165 AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("efficiencyList",
167 AliAnalysisManager::kOutputContainer,
168 outputFilename4.Data());
170 //____________________________________________//
171 mgr->ConnectInput(taskProtonsQA,0,cinput1);
172 mgr->ConnectOutput(taskProtonsQA,0,coutput1);
173 mgr->ConnectOutput(taskProtonsQA,1,coutput2);
174 mgr->ConnectOutput(taskProtonsQA,2,coutput3);
175 mgr->ConnectOutput(taskProtonsQA,3,coutput4);
176 mgr->ConnectOutput(taskProtonsQA,4,coutput5);
177 mgr->ConnectOutput(taskProtonsQA,5,coutput6);
178 if (!mgr->InitAnalysis()) return;
182 mgr->StartAnalysis("proof",dataset,stats);
184 // You should get this macro and the txt file from:
185 // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
186 gROOT->LoadMacro("CreateESDChain.C");
188 chain = CreateESDChain("ESD82XX_30K.txt",stats);
189 chain->SetBranchStatus("*Calo*",0);
191 mgr->StartAnalysis("proof",chain);
192 //mgr->StartAnalysis("local",chain);
196 //_________________________________________________//
197 Int_t setupPar(const char* pararchivename) {
201 if (pararchivename) {
202 char processline[1024];
203 sprintf(processline,".! tar xvzf %s.par",pararchivename);
204 gROOT->ProcessLine(processline);
205 const char* ocwd = gSystem->WorkingDirectory();
206 gSystem->ChangeDirectory(pararchivename);
208 // check for BUILD.sh and execute
209 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
210 printf("*******************************\n");
211 printf("*** Building PAR archive ***\n");
212 printf("*******************************\n");
214 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
215 Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
219 // check for SETUP.C and execute
220 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
221 printf("*******************************\n");
222 printf("*** Setup PAR archive ***\n");
223 printf("*******************************\n");
224 gROOT->Macro("PROOF-INF/SETUP.C");
227 gSystem->ChangeDirectory("../");