void AnalysisTrainMuonComp(){
TStopwatch timer;
timer.Start();
printf("*** Connect to AliEn ***\n");
TGrid::Connect("alien://");
gSystem->Load("libTree.so");
gSystem->Load("libGeom.so");
gSystem->Load("libVMC.so");
gSystem->Load("libPhysics.so");
// Common packages
SetupPar("STEERBase");
gSystem->Load("libSTEERBase.so");
SetupPar("ESD");
gSystem->Load("libVMC.so");
gSystem->Load("libESD.so");
SetupPar("AOD");
gSystem->Load("libAOD.so");
SetupPar("ANALYSIS");
gSystem->Load("libANALYSIS.so");
SetupPar("ANALYSISalice");
gSystem->Load("libANALYSISalice.so");
// Analysis-specific packages
SetupPar("PWG3muon");
gSystem->Load("libPWGmuon.so");
gROOT->LoadMacro("AliAnalysisTaskAODvsESD.cxx+");
const char *collectionfile = "wn.xml";
//Usage of event tags
AliTagAnalysis *analysis = new AliTagAnalysis();
TChain* chain = 0x0;
chain = analysis->GetChainFromCollection(collectionfile,"esdTree");
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);
}
timer.Stop();
timer.Print();
}
//______________________________________________________________________________
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());
}
}
AnalysisTrainMuonComp.C:1 AnalysisTrainMuonComp.C:2 AnalysisTrainMuonComp.C:3 AnalysisTrainMuonComp.C:4 AnalysisTrainMuonComp.C:5 AnalysisTrainMuonComp.C:6 AnalysisTrainMuonComp.C:7 AnalysisTrainMuonComp.C:8 AnalysisTrainMuonComp.C:9 AnalysisTrainMuonComp.C:10 AnalysisTrainMuonComp.C:11 AnalysisTrainMuonComp.C:12 AnalysisTrainMuonComp.C:13 AnalysisTrainMuonComp.C:14 AnalysisTrainMuonComp.C:15 AnalysisTrainMuonComp.C:16 AnalysisTrainMuonComp.C:17 AnalysisTrainMuonComp.C:18 AnalysisTrainMuonComp.C:19 AnalysisTrainMuonComp.C:20 AnalysisTrainMuonComp.C:21 AnalysisTrainMuonComp.C:22 AnalysisTrainMuonComp.C:23 AnalysisTrainMuonComp.C:24 AnalysisTrainMuonComp.C:25 AnalysisTrainMuonComp.C:26 AnalysisTrainMuonComp.C:27 AnalysisTrainMuonComp.C:28 AnalysisTrainMuonComp.C:29 AnalysisTrainMuonComp.C:30 AnalysisTrainMuonComp.C:31 AnalysisTrainMuonComp.C:32 AnalysisTrainMuonComp.C:33 AnalysisTrainMuonComp.C:34 AnalysisTrainMuonComp.C:35 AnalysisTrainMuonComp.C:36 AnalysisTrainMuonComp.C:37 AnalysisTrainMuonComp.C:38 AnalysisTrainMuonComp.C:39 AnalysisTrainMuonComp.C:40 AnalysisTrainMuonComp.C:41 AnalysisTrainMuonComp.C:42 AnalysisTrainMuonComp.C:43 AnalysisTrainMuonComp.C:44 AnalysisTrainMuonComp.C:45 AnalysisTrainMuonComp.C:46 AnalysisTrainMuonComp.C:47 AnalysisTrainMuonComp.C:48 AnalysisTrainMuonComp.C:49 AnalysisTrainMuonComp.C:50 AnalysisTrainMuonComp.C:51 AnalysisTrainMuonComp.C:52 AnalysisTrainMuonComp.C:53 AnalysisTrainMuonComp.C:54 AnalysisTrainMuonComp.C:55 AnalysisTrainMuonComp.C:56 AnalysisTrainMuonComp.C:57 AnalysisTrainMuonComp.C:58 AnalysisTrainMuonComp.C:59 AnalysisTrainMuonComp.C:60 AnalysisTrainMuonComp.C:61 AnalysisTrainMuonComp.C:62 AnalysisTrainMuonComp.C:63 AnalysisTrainMuonComp.C:64 AnalysisTrainMuonComp.C:65 AnalysisTrainMuonComp.C:66 AnalysisTrainMuonComp.C:67 AnalysisTrainMuonComp.C:68 AnalysisTrainMuonComp.C:69 AnalysisTrainMuonComp.C:70 AnalysisTrainMuonComp.C:71 AnalysisTrainMuonComp.C:72 AnalysisTrainMuonComp.C:73 AnalysisTrainMuonComp.C:74 AnalysisTrainMuonComp.C:75 AnalysisTrainMuonComp.C:76 AnalysisTrainMuonComp.C:77 AnalysisTrainMuonComp.C:78 AnalysisTrainMuonComp.C:79 AnalysisTrainMuonComp.C:80 AnalysisTrainMuonComp.C:81 AnalysisTrainMuonComp.C:82 AnalysisTrainMuonComp.C:83 AnalysisTrainMuonComp.C:84 AnalysisTrainMuonComp.C:85 AnalysisTrainMuonComp.C:86 AnalysisTrainMuonComp.C:87 AnalysisTrainMuonComp.C:88 AnalysisTrainMuonComp.C:89 AnalysisTrainMuonComp.C:90 AnalysisTrainMuonComp.C:91 AnalysisTrainMuonComp.C:92 AnalysisTrainMuonComp.C:93 AnalysisTrainMuonComp.C:94 AnalysisTrainMuonComp.C:95 AnalysisTrainMuonComp.C:96 AnalysisTrainMuonComp.C:97 AnalysisTrainMuonComp.C:98 AnalysisTrainMuonComp.C:99 AnalysisTrainMuonComp.C:100 AnalysisTrainMuonComp.C:101 AnalysisTrainMuonComp.C:102 AnalysisTrainMuonComp.C:103 AnalysisTrainMuonComp.C:104 AnalysisTrainMuonComp.C:105 AnalysisTrainMuonComp.C:106 AnalysisTrainMuonComp.C:107 AnalysisTrainMuonComp.C:108 AnalysisTrainMuonComp.C:109 AnalysisTrainMuonComp.C:110 AnalysisTrainMuonComp.C:111 AnalysisTrainMuonComp.C:112 AnalysisTrainMuonComp.C:113 AnalysisTrainMuonComp.C:114 AnalysisTrainMuonComp.C:115 AnalysisTrainMuonComp.C:116 AnalysisTrainMuonComp.C:117 AnalysisTrainMuonComp.C:118 AnalysisTrainMuonComp.C:119 AnalysisTrainMuonComp.C:120 AnalysisTrainMuonComp.C:121 AnalysisTrainMuonComp.C:122 AnalysisTrainMuonComp.C:123 AnalysisTrainMuonComp.C:124 AnalysisTrainMuonComp.C:125 AnalysisTrainMuonComp.C:126 AnalysisTrainMuonComp.C:127 AnalysisTrainMuonComp.C:128 AnalysisTrainMuonComp.C:129 AnalysisTrainMuonComp.C:130 AnalysisTrainMuonComp.C:131 AnalysisTrainMuonComp.C:132 AnalysisTrainMuonComp.C:133 AnalysisTrainMuonComp.C:134 AnalysisTrainMuonComp.C:135 AnalysisTrainMuonComp.C:136 AnalysisTrainMuonComp.C:137 AnalysisTrainMuonComp.C:138 AnalysisTrainMuonComp.C:139 AnalysisTrainMuonComp.C:140 AnalysisTrainMuonComp.C:141 AnalysisTrainMuonComp.C:142 AnalysisTrainMuonComp.C:143 AnalysisTrainMuonComp.C:144 AnalysisTrainMuonComp.C:145 AnalysisTrainMuonComp.C:146