1 void AnalysisTrainMuonCompLocal()
3 gSystem->Load("libTree.so");
4 gSystem->Load("libGeom.so");
5 gSystem->Load("libVMC.so");
6 gSystem->Load("libPhysics.so");
13 SetupPar("ANALYSISalice");
14 // Analysis-specific packages
17 gROOT->LoadMacro("AliAnalysisTaskAODvsESD.cxx+");
19 AliTagAnalysis *TagAna = new AliTagAnalysis("ESD");
20 TagAna->ChainLocalTags("./");
22 AliRunTagCuts *runCuts = new AliRunTagCuts();
23 AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
24 AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
25 AliEventTagCuts *evCuts = new AliEventTagCuts();
28 chain = TagAna->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
29 chain->SetBranchStatus("*Calo*",0);
31 // Define the analysis manager
32 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "Analysis train");
35 AliESDInputHandler *esdHandler = new AliESDInputHandler();
36 esdHandler->SetInactiveBranches("FMD CaloCluster");
37 mgr->SetInputEventHandler(esdHandler);
40 AliAODHandler* aodHandler = new AliAODHandler();
41 aodHandler->SetOutputFileName("AOD.root");
42 mgr->SetOutputEventHandler(aodHandler);
44 // Set of cuts for the ESD filter
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);
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);
64 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
65 trackFilter->AddCuts(esdTrackCutsL);
66 trackFilter->AddCuts(esdTrackCutsH);
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);
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);
77 // third task - compare created AOD and exixting ESDs
78 AliAnalysisTaskAODvsESD *AODvsESD = new AliAnalysisTaskAODvsESD("aodVsEsd");
79 mgr->AddTask(AODvsESD);
81 // Input ESD container
82 AliAnalysisDataContainer *esdIn = mgr->GetCommonInputContainer();
83 // Output AOD container.
84 AliAnalysisDataContainer *aodOut = mgr->GetCommonOutputContainer();
86 AliAnalysisDataContainer *listOut = mgr->CreateContainer("output2", TList::Class(), AliAnalysisManager::kOutputContainer, "AODvsESDoutput.root");
88 // Connect containers to tasks slots
89 mgr->ConnectInput(esdFilter,0,esdIn);
90 mgr->ConnectOutput(esdFilter,0,aodOut);
92 mgr->ConnectInput(esdMuonFilter,0,esdIn);
93 mgr->ConnectOutput(esdMuonFilter,0,aodOut);
95 mgr->ConnectInput(AODvsESD,0,esdIn);
96 mgr->ConnectOutput(AODvsESD,0,listOut);
99 if (mgr->InitAnalysis()){
101 mgr->StartAnalysis("local",chain);
105 //______________________________________________________________________________
106 void SetupPar(char* pararchivename)
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);
115 // check for BUILD.sh and execute
116 if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
117 printf("*** Building PAR archive ***\n");
119 if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
120 Error("runProcess","Cannot Build the PAR Archive! - Abort!");
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");
130 gSystem->ChangeDirectory(ocwd.Data());
131 printf("Current dir: %s\n", ocwd.Data());