]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AnalysisTrainMuonCAF.C
Fix Coverity 24835
[u/mrichter/AliRoot.git] / PWG / muon / AnalysisTrainMuonCAF.C
CommitLineData
f70a1b5d 1void AnalysisTrainMuonCAF(char* fileout = "AliAOD.root", char *datasetname = "myDataSet", Int_t nev=1234567890)
2{
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
10// R. Arnaldi 4/5/08
11
4070f709 12 gSystem->Load("libTree");
13 gSystem->Load("libGeom");
14 gSystem->Load("libVMC");
15 gSystem->Load("libPhysics");
f70a1b5d 16
17 // Reset user processes if CAF if not responding anymore
18 // TProof::Reset("lxb6046");
19
20 // Connect to proof
21 TProof::Open("lxb6046"); // may be username@lxb6046 if user not the same as on local
22
23 // Clear packages if changing ROOT version on CAF or local
24 // gProof->ClearPackages();
25 // Enable proof debugging if needed
26 // gProof->SetLogLevel(5);
27
28 // Common packages
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");
39 // Analysis-specific
40 // --- Enable the PWG3base Package
41 gProof->UploadPackage("PWG3muon.par");
42 gProof->EnablePackage("PWG3muon");
43
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);
48
49 // Chain from datasets
50 gROOT->LoadMacro("CreateChainFromDataSet.C");
51 ds = gProof->GetDataSet(datasetname)->GetStagedSubset();
52 chain = CreateChainFromDataSet(ds, "esdTree");
53
54 // Make the analysis manager
55 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "Analysis train");
56
57 // ESD input handler
58 AliESDInputHandler *esdHandler = new AliESDInputHandler();
59 esdHandler->SetInactiveBranches("FMD CaloCluster");
60
61 // AOD output handler
62 AliAODHandler* aodHandler = new AliAODHandler();
63 aodHandler->SetOutputFileName(fileout);
64 //aodHandler->SetOutputFileName("AOD.root");
65
66 mgr->SetInputEventHandler(esdHandler);
67 mgr->SetOutputEventHandler(aodHandler);
68
69 // Set of cuts plugged into the ESD filter
70 //
71 // standard
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);
80 //
81 // hard cuts
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.);
91 //
92 // muon cuts
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
96
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);
100
101 // muon track filter (to reject muon tracks not surviving the cuts)
102 AliAnalysisFilter* trackMuonFilter = new AliAnalysisFilter("trackMuonFilter");
103 trackMuonFilter->AddCuts(esdMuonTrackCuts);
104
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);
110
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);
115
116 // Containers for input/output
8a546c82 117 AliAnalysisDataContainer *cin_esd = mgr->GetCommonInputContainer();
f70a1b5d 118 // Output AOD container.
8a546c82 119 AliAnalysisDataContainer *cout_aod = mgr->GetCommonOutputContainer();
f70a1b5d 120
121 // Connect containers to tasks slots
122 mgr->ConnectInput (esdfilter, 0, cin_esd );
123 mgr->ConnectOutput (esdfilter, 0, cout_aod );
124
125 mgr->ConnectInput (esdmuonfilter, 0, cin_esd);
126 mgr->ConnectOutput (esdmuonfilter, 0, cout_aod );
127
128 //
129 // Run the analysis
130 //
131 if (mgr->InitAnalysis()) {
132 mgr->PrintStatus();
133 mgr->StartAnalysis("proof",chain,nev);
134 }
135}
136