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