]>
Commit | Line | Data |
---|---|---|
28d9f4b3 | 1 | // Macro to run AliAnalysisTaskESDMuonFilter |
2 | // | |
3 | ||
4 | void RunESDMuonFilter(char* filein = "AliESDs.root", char* fileout = "AliMuonAOD.root" ){ | |
5 | ||
6 | gSystem->Load("libTree.so"); | |
7 | gSystem->Load("libGeom.so"); | |
8 | gSystem->Load("libVMC.so"); | |
9 | gSystem->Load("libPhysics"); | |
10 | ||
11 | // for analysis .par file based | |
12 | ||
13 | setupPar("STEERBase"); | |
14 | setupPar("ESD"); | |
15 | setupPar("AOD"); | |
16 | setupPar("ANALYSIS"); | |
17 | setupPar("ANALYSISalice"); | |
18 | setupPar("PWG3base"); | |
19 | ||
20 | // Input ESD file | |
21 | TChain* chain = new TChain("esdTree"); | |
22 | chain->Add(filein); | |
23 | AliESDInputHandler* esdHandler = new AliESDInputHandler(); | |
24 | ||
25 | // Make aod output handler | |
26 | AliAODHandler* aodHandler = new AliAODHandler(); | |
27 | aodHandler->SetOutputFileName(fileout); | |
28 | ||
29 | // Make the analysis manager | |
30 | AliAnalysisManager *mgr = new AliAnalysisManager("Muon AOD Manager", "Muon AOD Manager"); | |
31 | mgr->SetInputEventHandler(esdHandler); | |
32 | mgr->SetOutputEventHandler(aodHandler); | |
33 | mgr-> SetDebugLevel(10); | |
34 | ||
35 | // Task for MUON AOD generation | |
36 | AliAnalysisTaskESDMuonFilter *esdfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter"); | |
37 | mgr->AddTask(esdfilter); | |
38 | ||
39 | // Create containers for input/output | |
40 | AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cESD",TChain::Class(), | |
41 | AliAnalysisManager::kInputContainer); | |
42 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cAOD", TTree::Class(), | |
43 | AliAnalysisManager::kOutputContainer, "default"); | |
44 | ||
45 | mgr->ConnectInput (esdfilter, 0, cinput1 ); | |
46 | mgr->ConnectOutput (esdfilter, 0, coutput1 ); | |
47 | ||
48 | // Run the analysis | |
49 | mgr->InitAnalysis(); | |
50 | mgr->PrintStatus(); | |
51 | mgr->StartAnalysis("local",chain); | |
52 | } | |
53 | ||
54 | ||
55 | Int_t setupPar(const char* pararchivename) { | |
56 | /////////////////// | |
57 | // Setup PAR File// | |
58 | /////////////////// | |
59 | if (pararchivename) { | |
60 | char processline[1024]; | |
61 | sprintf(processline,".! tar xvzf %s.par",pararchivename); | |
62 | gROOT->ProcessLine(processline); | |
63 | const char* ocwd = gSystem->WorkingDirectory(); | |
64 | gSystem->ChangeDirectory(pararchivename); | |
65 | ||
66 | // check for BUILD.sh and execute | |
67 | if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { | |
68 | printf("*******************************\n"); | |
69 | printf("*** Building PAR archive ***\n"); | |
70 | printf("*******************************\n"); | |
71 | ||
72 | if (gSystem->Exec("PROOF-INF/BUILD.sh")) { | |
73 | Error("runAnalysis","Cannot Build the PAR Archive! - Abort!"); | |
74 | return -1; | |
75 | } | |
76 | } | |
77 | // check for SETUP.C and execute | |
78 | if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { | |
79 | printf("*******************************\n"); | |
80 | printf("*** Setup PAR archive ***\n"); | |
81 | printf("*******************************\n"); | |
82 | gROOT->Macro("PROOF-INF/SETUP.C"); | |
83 | } | |
84 | ||
85 | gSystem->ChangeDirectory("../"); | |
86 | } | |
87 | ||
88 | return 1; | |
89 | } |