void AnalysisTrainMuonCAF(char* fileout = "AliAOD.root", char *datasetname = "myDataSet", Int_t nev=1234567890)
{
// Macro to produce a generic AOD starting from an ESD file.
// The AOD is filled with two tasks:
// 1- with the first one (AliAnalysisTaskESDfilter),
// all the branches of the AOD are filled apart from the muons.
// 2- with the second task (AliAnalysisTaskESDMuonFilter)
// muons tracks are added to the tracks branch
// This macro works on the CAF
// R. Arnaldi 4/5/08
gSystem->Load("libTree.so");
gSystem->Load("libGeom.so");
gSystem->Load("libVMC.so");
gSystem->Load("libPhysics.so");
// Reset user processes if CAF if not responding anymore
// TProof::Reset("lxb6046");
// Connect to proof
TProof::Open("lxb6046"); // may be username@lxb6046 if user not the same as on local
// Clear packages if changing ROOT version on CAF or local
// gProof->ClearPackages();
// Enable proof debugging if needed
// gProof->SetLogLevel(5);
// Common packages
gProof->UploadPackage("STEERBase.par");
gProof->EnablePackage("STEERBase");
gProof->UploadPackage("ESD.par");
gProof->EnablePackage("ESD");
gProof->UploadPackage("AOD.par");
gProof->EnablePackage("AOD");
gProof->UploadPackage("ANALYSIS.par");
gProof->EnablePackage("ANALYSIS");
gProof->UploadPackage("ANALYSISalice.par");
gProof->EnablePackage("ANALYSISalice");
// Analysis-specific
// --- Enable the PWG3base Package
gProof->UploadPackage("PWG3muon.par");
gProof->EnablePackage("PWG3muon");
// Chain from files staged on CAF
// gROOT->LoadMacro("CreateESDChain.C");
// TChain* chain = CreateESDChain("ESD1503X_v1.txt",3);
// TChain* chain = CreateESDChain("ESD82XX_30Kshort.txt", 10);
// Chain from datasets
gROOT->LoadMacro("CreateChainFromDataSet.C");
ds = gProof->GetDataSet(datasetname)->GetStagedSubset();
chain = CreateChainFromDataSet(ds, "esdTree");
// Make the analysis manager
AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "Analysis train");
// ESD input handler
AliESDInputHandler *esdHandler = new AliESDInputHandler();
esdHandler->SetInactiveBranches("FMD CaloCluster");
// AOD output handler
AliAODHandler* aodHandler = new AliAODHandler();
aodHandler->SetOutputFileName(fileout);
//aodHandler->SetOutputFileName("AOD.root");
mgr->SetInputEventHandler(esdHandler);
mgr->SetOutputEventHandler(aodHandler);
// Set of cuts plugged into the ESD filter
//
// standard
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);
esdTrackCutsH->SetPRange(0.,2.);
//
// muon cuts
AliESDMuonTrackCuts* esdMuonTrackCuts = new AliESDMuonTrackCuts("AliESDMuonTrackCuts", "test");
esdMuonTrackCuts->SetPRange(0.,20.);
//esdMuonTrackCuts->SetPtRange(0.,0.5); // example of kinematic cuts that can be applied
// track filter (to reject tracks not surviving the cuts - refers to all particles apart from muons)
AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
trackFilter->AddCuts(esdTrackCutsH);
// muon track filter (to reject muon tracks not surviving the cuts)
AliAnalysisFilter* trackMuonFilter = new AliAnalysisFilter("trackMuonFilter");
trackMuonFilter->AddCuts(esdMuonTrackCuts);
// ESD filter task putting standard info to output generic AOD
AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
//esdfilter->SetTrackFilter(trackFilter);
esdfilter->SetDebugLevel(10);
mgr->AddTask(esdfilter);
// ESD filter task putting muon info to output generic AOD
AliAnalysisTaskESDMuonFilter *esdmuonfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");
esdmuonfilter->SetTrackFilter(trackMuonFilter);
mgr->AddTask(esdmuonfilter);
// Containers for input/output
AliAnalysisDataContainer *cin_esd = mgr->GetCommonInputContainer();
// Output AOD container.
AliAnalysisDataContainer *cout_aod = mgr->GetCommonOutputContainer();
// Connect containers to tasks slots
mgr->ConnectInput (esdfilter, 0, cin_esd );
mgr->ConnectOutput (esdfilter, 0, cout_aod );
mgr->ConnectInput (esdmuonfilter, 0, cin_esd);
mgr->ConnectOutput (esdmuonfilter, 0, cout_aod );
//
// Run the analysis
//
if (mgr->InitAnalysis()) {
mgr->PrintStatus();
mgr->StartAnalysis("proof",chain,nev);
}
}
AnalysisTrainMuonCAF.C:10 AnalysisTrainMuonCAF.C:11 AnalysisTrainMuonCAF.C:12 AnalysisTrainMuonCAF.C:13 AnalysisTrainMuonCAF.C:14 AnalysisTrainMuonCAF.C:15 AnalysisTrainMuonCAF.C:16 AnalysisTrainMuonCAF.C:17 AnalysisTrainMuonCAF.C:18 AnalysisTrainMuonCAF.C:19 AnalysisTrainMuonCAF.C:20 AnalysisTrainMuonCAF.C:21 AnalysisTrainMuonCAF.C:22 AnalysisTrainMuonCAF.C:23 AnalysisTrainMuonCAF.C:24 AnalysisTrainMuonCAF.C:25 AnalysisTrainMuonCAF.C:26 AnalysisTrainMuonCAF.C:27 AnalysisTrainMuonCAF.C:28 AnalysisTrainMuonCAF.C:29 AnalysisTrainMuonCAF.C:30 AnalysisTrainMuonCAF.C:31 AnalysisTrainMuonCAF.C:32 AnalysisTrainMuonCAF.C:33 AnalysisTrainMuonCAF.C:34 AnalysisTrainMuonCAF.C:35 AnalysisTrainMuonCAF.C:36 AnalysisTrainMuonCAF.C:37 AnalysisTrainMuonCAF.C:38 AnalysisTrainMuonCAF.C:39 AnalysisTrainMuonCAF.C:40 AnalysisTrainMuonCAF.C:41 AnalysisTrainMuonCAF.C:42 AnalysisTrainMuonCAF.C:43 AnalysisTrainMuonCAF.C:44 AnalysisTrainMuonCAF.C:45 AnalysisTrainMuonCAF.C:46 AnalysisTrainMuonCAF.C:47 AnalysisTrainMuonCAF.C:48 AnalysisTrainMuonCAF.C:49 AnalysisTrainMuonCAF.C:50 AnalysisTrainMuonCAF.C:51 AnalysisTrainMuonCAF.C:52 AnalysisTrainMuonCAF.C:53 AnalysisTrainMuonCAF.C:54 AnalysisTrainMuonCAF.C:55 AnalysisTrainMuonCAF.C:56 AnalysisTrainMuonCAF.C:57 AnalysisTrainMuonCAF.C:58 AnalysisTrainMuonCAF.C:59 AnalysisTrainMuonCAF.C:60 AnalysisTrainMuonCAF.C:61 AnalysisTrainMuonCAF.C:62 AnalysisTrainMuonCAF.C:63 AnalysisTrainMuonCAF.C:64 AnalysisTrainMuonCAF.C:65 AnalysisTrainMuonCAF.C:66 AnalysisTrainMuonCAF.C:67 AnalysisTrainMuonCAF.C:68 AnalysisTrainMuonCAF.C:69 AnalysisTrainMuonCAF.C:70 AnalysisTrainMuonCAF.C:71 AnalysisTrainMuonCAF.C:72 AnalysisTrainMuonCAF.C:73 AnalysisTrainMuonCAF.C:74 AnalysisTrainMuonCAF.C:75 AnalysisTrainMuonCAF.C:76 AnalysisTrainMuonCAF.C:77 AnalysisTrainMuonCAF.C:78 AnalysisTrainMuonCAF.C:79 AnalysisTrainMuonCAF.C:80 AnalysisTrainMuonCAF.C:81 AnalysisTrainMuonCAF.C:82 AnalysisTrainMuonCAF.C:83 AnalysisTrainMuonCAF.C:84 AnalysisTrainMuonCAF.C:85 AnalysisTrainMuonCAF.C:86 AnalysisTrainMuonCAF.C:87 AnalysisTrainMuonCAF.C:88 AnalysisTrainMuonCAF.C:89 AnalysisTrainMuonCAF.C:90 AnalysisTrainMuonCAF.C:91 AnalysisTrainMuonCAF.C:92 AnalysisTrainMuonCAF.C:93 AnalysisTrainMuonCAF.C:94 AnalysisTrainMuonCAF.C:95 AnalysisTrainMuonCAF.C:96 AnalysisTrainMuonCAF.C:97 AnalysisTrainMuonCAF.C:98 AnalysisTrainMuonCAF.C:99 AnalysisTrainMuonCAF.C:100 AnalysisTrainMuonCAF.C:101 AnalysisTrainMuonCAF.C:102 AnalysisTrainMuonCAF.C:103 AnalysisTrainMuonCAF.C:104 AnalysisTrainMuonCAF.C:105 AnalysisTrainMuonCAF.C:106 AnalysisTrainMuonCAF.C:107 AnalysisTrainMuonCAF.C:108 AnalysisTrainMuonCAF.C:109 AnalysisTrainMuonCAF.C:110 AnalysisTrainMuonCAF.C:111 AnalysisTrainMuonCAF.C:112 AnalysisTrainMuonCAF.C:113 AnalysisTrainMuonCAF.C:114 AnalysisTrainMuonCAF.C:115 AnalysisTrainMuonCAF.C:116 AnalysisTrainMuonCAF.C:117 AnalysisTrainMuonCAF.C:118 AnalysisTrainMuonCAF.C:119 AnalysisTrainMuonCAF.C:120 AnalysisTrainMuonCAF.C:121 AnalysisTrainMuonCAF.C:122 AnalysisTrainMuonCAF.C:123 AnalysisTrainMuonCAF.C:124 AnalysisTrainMuonCAF.C:125 AnalysisTrainMuonCAF.C:126 AnalysisTrainMuonCAF.C:127 AnalysisTrainMuonCAF.C:128 AnalysisTrainMuonCAF.C:129 AnalysisTrainMuonCAF.C:130 AnalysisTrainMuonCAF.C:131 AnalysisTrainMuonCAF.C:132 AnalysisTrainMuonCAF.C:133 AnalysisTrainMuonCAF.C:134 AnalysisTrainMuonCAF.C:135 AnalysisTrainMuonCAF.C:136 AnalysisTrainMuonCAF.C:137