]>
Commit | Line | Data |
---|---|---|
7b59a00b | 1 | void runProtonAnalysisQA() { |
2 | TStopwatch timer; | |
3 | timer.Start(); | |
4 | ||
96f84c25 | 5 | runProof(200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets |
7b59a00b | 6 | //runProof(200); //use ascii files |
7 | ||
8 | timer.Stop(); | |
9 | timer.Print(); | |
10 | } | |
11 | ||
12 | //_________________________________________________// | |
13 | void runProof(Int_t stats = 0, const char* dataset = 0x0) { | |
14 | TStopwatch timer; | |
15 | timer.Start(); | |
16 | ||
d4733690 | 17 | TString outputFilename1 = "Protons.QA.root"; |
18 | TString outputFilename2 = "Protons.MC.Composition.root"; | |
19 | TString outputFilename3 = "Protons.MC.Processes.root"; | |
7b59a00b | 20 | |
21 | printf("****** Connect to PROOF *******\n"); | |
96f84c25 | 22 | TProof::Open("alicecaf.cern.ch"); |
7b59a00b | 23 | gProof->SetParallel(); |
24 | ||
25 | // Enable the Analysis Package | |
26 | gProof->UploadPackage("STEERBase.par"); | |
27 | gProof->EnablePackage("STEERBase"); | |
28 | gProof->UploadPackage("ESD.par"); | |
29 | gProof->EnablePackage("ESD"); | |
30 | gProof->UploadPackage("AOD.par"); | |
31 | gProof->EnablePackage("AOD"); | |
32 | gProof->UploadPackage("ANALYSIS.par"); | |
33 | gProof->EnablePackage("ANALYSIS"); | |
34 | gProof->UploadPackage("ANALYSISalice.par"); | |
35 | gProof->EnablePackage("ANALYSISalice"); | |
f99662ca | 36 | gProof->UploadPackage("CORRFW.par"); |
37 | gProof->EnablePackage("CORRFW"); | |
7b59a00b | 38 | gProof->UploadPackage("PWG2spectra.par"); |
39 | gProof->EnablePackage("PWG2spectra"); | |
40 | ||
41 | gProof->Load("AliAnalysisTaskProtonsQA.cxx++"); | |
42 | ||
43 | //____________________________________________// | |
44 | // Make the analysis manager | |
45 | AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); | |
46 | AliVEventHandler* esdH = new AliESDInputHandler; | |
47 | mgr->SetInputEventHandler(esdH); | |
48 | AliMCEventHandler *mc = new AliMCEventHandler(); | |
49 | mgr->SetMCtruthEventHandler(mc); | |
50 | ||
51 | //____________________________________________// | |
52 | // 1st Proton task | |
53 | AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA"); | |
54 | mgr->AddTask(taskProtonsQA); | |
55 | ||
56 | // Create containers for input/output | |
57 | AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain", | |
f99662ca | 58 | TChain::Class(), |
59 | AliAnalysisManager::kInputContainer); | |
7b59a00b | 60 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", |
f99662ca | 61 | TList::Class(), |
62 | AliAnalysisManager::kOutputContainer, | |
d4733690 | 63 | outputFilename1.Data()); |
64 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputList2", | |
65 | TList::Class(), | |
66 | AliAnalysisManager::kOutputContainer, | |
67 | outputFilename2.Data()); | |
68 | AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("outputList3", | |
69 | TList::Class(), | |
70 | AliAnalysisManager::kOutputContainer, | |
71 | outputFilename3.Data()); | |
7b59a00b | 72 | |
73 | //____________________________________________// | |
74 | mgr->ConnectInput(taskProtonsQA,0,cinput1); | |
75 | mgr->ConnectOutput(taskProtonsQA,0,coutput1); | |
d4733690 | 76 | mgr->ConnectOutput(taskProtonsQA,1,coutput2); |
77 | mgr->ConnectOutput(taskProtonsQA,2,coutput3); | |
7b59a00b | 78 | if (!mgr->InitAnalysis()) return; |
79 | mgr->PrintStatus(); | |
80 | ||
81 | if(dataset) | |
82 | mgr->StartAnalysis("proof",dataset,stats); | |
83 | else { | |
84 | // You should get this macro and the txt file from: | |
85 | // http://aliceinfo.cern.ch/Offline/Analysis/CAF/ | |
86 | gROOT->LoadMacro("CreateESDChain.C"); | |
87 | TChain* chain = 0x0; | |
88 | chain = CreateESDChain("ESD82XX_30K.txt",stats); | |
89 | chain->SetBranchStatus("*Calo*",0); | |
90 | ||
91 | mgr->StartAnalysis("proof",chain); | |
f99662ca | 92 | //mgr->StartAnalysis("local",chain); |
7b59a00b | 93 | } |
94 | ||
95 | timer.Stop(); | |
96 | timer.Print(); | |
97 | } | |
98 | ||
99 | //_________________________________________________// | |
100 | Int_t setupPar(const char* pararchivename) { | |
101 | /////////////////// | |
102 | // Setup PAR File// | |
103 | /////////////////// | |
104 | if (pararchivename) { | |
105 | char processline[1024]; | |
106 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
107 | gROOT->ProcessLine(processline); | |
108 | const char* ocwd = gSystem->WorkingDirectory(); | |
109 | gSystem->ChangeDirectory(pararchivename); | |
110 | ||
111 | // check for BUILD.sh and execute | |
112 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { | |
113 | printf("*******************************\n"); | |
114 | printf("*** Building PAR archive ***\n"); | |
115 | printf("*******************************\n"); | |
116 | ||
117 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
118 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); | |
119 | return -1; | |
120 | } | |
121 | } | |
122 | // check for SETUP.C and execute | |
123 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { | |
124 | printf("*******************************\n"); | |
125 | printf("*** Setup PAR archive ***\n"); | |
126 | printf("*******************************\n"); | |
127 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
128 | } | |
129 | ||
130 | gSystem->ChangeDirectory("../"); | |
131 | } | |
132 | return 1; | |
133 | } |