]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AnalysisTrainMuonCompLocal.C
fixing the error message
[u/mrichter/AliRoot.git] / PWG / muon / AnalysisTrainMuonCompLocal.C
CommitLineData
fe9005e3 1void AnalysisTrainMuonCompLocal()
2{
3 gSystem->Load("libTree.so");
4 gSystem->Load("libGeom.so");
5 gSystem->Load("libVMC.so");
6 gSystem->Load("libPhysics.so");
7
8 // Common packages
9 SetupPar("STEERBase");
10 SetupPar("ESD");
11 SetupPar("AOD");
12 SetupPar("ANALYSIS");
13 SetupPar("ANALYSISalice");
14 // Analysis-specific packages
15 SetupPar("PWG3muon");
16
17 gROOT->LoadMacro("AliAnalysisTaskAODvsESD.cxx+");
18
19 AliTagAnalysis *TagAna = new AliTagAnalysis("ESD");
20 TagAna->ChainLocalTags("./");
21
22 AliRunTagCuts *runCuts = new AliRunTagCuts();
23 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
24 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
25 AliEventTagCuts *evCuts = new AliEventTagCuts();
26
27 TChain* chain = 0x0;
28 chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
29 chain->SetBranchStatus("*Calo*",0);
30
31 // Define the analysis manager
32 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "Analysis train");
33
34 // ESD input handler
35 AliESDInputHandler *esdHandler = new AliESDInputHandler();
36 esdHandler->SetInactiveBranches("FMD CaloCluster");
37 mgr->SetInputEventHandler(esdHandler);
38
39 // AOD output handler
40 AliAODHandler* aodHandler = new AliAODHandler();
41 aodHandler->SetOutputFileName("AOD.root");
42 mgr->SetOutputEventHandler(aodHandler);
43
44 // Set of cuts for the ESD filter
45 // standard cuts
46 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
47 esdTrackCutsL->SetMinNClustersTPC(50);
48 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
49 esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
50 esdTrackCutsL->SetRequireTPCRefit(kTRUE);
51 esdTrackCutsL->SetMinNsigmaToVertex(3);
52 esdTrackCutsL->SetRequireSigmaToVertex(kTRUE);
53 esdTrackCutsL->SetAcceptKingDaughters(kFALSE);
54 // hard cuts
55 AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");
56 esdTrackCutsH->SetMinNClustersTPC(100);
57 esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);
58 esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
59 esdTrackCutsH->SetRequireTPCRefit(kTRUE);
60 esdTrackCutsH->SetMinNsigmaToVertex(2);
61 esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);
62 esdTrackCutsH->SetAcceptKingDaughters(kFALSE);
63
64 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
65 trackFilter->AddCuts(esdTrackCutsL);
66 trackFilter->AddCuts(esdTrackCutsH);
67
68 // first task - ESD filter task putting standard info in the output generic AOD
69 AliAnalysisTaskESDfilter *esdFilter = new AliAnalysisTaskESDfilter("ESD Filter");
70 //esdFilter->SetTrackFilter(trackFilter);
71 mgr->AddTask(esdFilter);
72
73 // second task - ESD filter task putting muon info in the output generic AOD
74 AliAnalysisTaskESDMuonFilter *esdMuonFilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");
75 mgr->AddTask(esdMuonFilter);
76
77 // third task - compare created AOD and exixting ESDs
78 AliAnalysisTaskAODvsESD *AODvsESD = new AliAnalysisTaskAODvsESD("aodVsEsd");
79 mgr->AddTask(AODvsESD);
80
81 // Input ESD container
8a546c82 82 AliAnalysisDataContainer *esdIn = mgr->GetCommonInputContainer();
fe9005e3 83 // Output AOD container.
8a546c82 84 AliAnalysisDataContainer *aodOut = mgr->GetCommonOutputContainer();
fe9005e3 85 // Output comparison
86 AliAnalysisDataContainer *listOut = mgr->CreateContainer("output2", TList::Class(), AliAnalysisManager::kOutputContainer, "AODvsESDoutput.root");
87
88 // Connect containers to tasks slots
89 mgr->ConnectInput(esdFilter,0,esdIn);
90 mgr->ConnectOutput(esdFilter,0,aodOut);
91
92 mgr->ConnectInput(esdMuonFilter,0,esdIn);
93 mgr->ConnectOutput(esdMuonFilter,0,aodOut);
94
95 mgr->ConnectInput(AODvsESD,0,esdIn);
96 mgr->ConnectOutput(AODvsESD,0,listOut);
97
98 // Run the analysis
99 if (mgr->InitAnalysis()){
100 mgr->PrintStatus();
101 mgr->StartAnalysis("local",chain);
102 }
103}
104
105//______________________________________________________________________________
106void SetupPar(char* pararchivename)
107{
108 if (pararchivename) {
109 char processline[1024];
110 sprintf(processline,".! tar xvzf %s.par",pararchivename);
111 gROOT->ProcessLine(processline);
112 TString ocwd = gSystem->WorkingDirectory();
113 gSystem->ChangeDirectory(pararchivename);
114
115 // check for BUILD.sh and execute
116 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
117 printf("*** Building PAR archive ***\n");
118
119 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
120 Error("runProcess","Cannot Build the PAR Archive! - Abort!");
121 return -1;
122 }
123 }
124 // check for SETUP.C and execute
125 if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
126 printf("*** Setup PAR archive ***\n");
127 gROOT->Macro("PROOF-INF/SETUP.C");
128 }
129
130 gSystem->ChangeDirectory(ocwd.Data());
131 printf("Current dir: %s\n", ocwd.Data());
132 }
133}