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