]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muon/AnalysisTrainMuonCAF.C
Adding charge of the muon track in the AOD (Roberta)
[u/mrichter/AliRoot.git] / PWG3 / muon / AnalysisTrainMuonCAF.C
CommitLineData
8acd5e60 1void AnalysisTrainMuonCAF(char* fileout = "AliAOD.root", char *datasetname = "myDataSet", Int_t nev=1234567890)\r
2{\r
3// Macro to produce a generic AOD starting from an ESD file. \r
4// The AOD is filled with two tasks: \r
5// 1- with the first one (AliAnalysisTaskESDfilter), \r
6// all the branches of the AOD are filled apart from the muons. \r
7// 2- with the second task (AliAnalysisTaskESDMuonFilter) \r
8// muons tracks are added to the tracks branch \r
9// This macro works on the CAF\r
10// R. Arnaldi 4/5/08\r
11\r
12 gSystem->Load("libTree.so");\r
13 gSystem->Load("libGeom.so");\r
14 gSystem->Load("libVMC.so");\r
15 gSystem->Load("libPhysics.so");\r
16 \r
17 // Reset user processes if CAF if not responding anymore\r
18 // TProof::Reset("lxb6046");\r
19\r
20 // Connect to proof\r
21 TProof::Open("lxb6046"); // may be username@lxb6046 if user not the same as on local\r
22\r
23 // Clear packages if changing ROOT version on CAF or local\r
24 // gProof->ClearPackages();\r
25 // Enable proof debugging if needed\r
26 // gProof->SetLogLevel(5);\r
27\r
28 // Common packages\r
29 gProof->UploadPackage("STEERBase.par");\r
30 gProof->EnablePackage("STEERBase");\r
31 gProof->UploadPackage("ESD.par");\r
32 gProof->EnablePackage("ESD");\r
33 gProof->UploadPackage("AOD.par");\r
34 gProof->EnablePackage("AOD");\r
35 gProof->UploadPackage("ANALYSIS.par");\r
36 gProof->EnablePackage("ANALYSIS");\r
37 gProof->UploadPackage("ANALYSISalice.par");\r
38 gProof->EnablePackage("ANALYSISalice");\r
39 // Analysis-specific\r
40 // --- Enable the PWG3base Package\r
41 gProof->UploadPackage("PWG3muon.par");\r
42 gProof->EnablePackage("PWG3muon");\r
43\r
44 // Chain from files staged on CAF\r
45 // gROOT->LoadMacro("CreateESDChain.C");\r
46 // TChain* chain = CreateESDChain("ESD1503X_v1.txt",3);\r
47 // TChain* chain = CreateESDChain("ESD82XX_30Kshort.txt", 10);\r
48 \r
49 // Chain from datasets\r
50 gROOT->LoadMacro("CreateChainFromDataSet.C");\r
51 ds = gProof->GetDataSet(datasetname)->GetStagedSubset();\r
52 chain = CreateChainFromDataSet(ds, "esdTree"); \r
53 \r
54 // Make the analysis manager\r
55 AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "Analysis train");\r
56 \r
57 // ESD input handler\r
58 AliESDInputHandler *esdHandler = new AliESDInputHandler();\r
59 esdHandler->SetInactiveBranches("FMD CaloCluster");\r
60 // AOD output handler\r
61 AliAODHandler* aodHandler = new AliAODHandler();\r
62 //aodHandler->SetOutputFileName(fileout);\r
63 aodHandler->SetOutputFileName("AOD.root");\r
64\r
65 mgr->SetInputEventHandler(esdHandler);\r
66 mgr->SetOutputEventHandler(aodHandler);\r
67 \r
68 // Set of cuts plugged into the ESD filter\r
69 // \r
70 // standard\r
71 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");\r
72 esdTrackCutsL->SetMinNClustersTPC(50);\r
73 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);\r
74 esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);\r
75 esdTrackCutsL->SetRequireTPCRefit(kTRUE);\r
76 esdTrackCutsL->SetMinNsigmaToVertex(3);\r
77 esdTrackCutsL->SetRequireSigmaToVertex(kTRUE);\r
78 esdTrackCutsL->SetAcceptKingDaughters(kFALSE);\r
79 //\r
80 // hard\r
81 AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");\r
82 esdTrackCutsH->SetMinNClustersTPC(100);\r
83 esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);\r
84 esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);\r
85 esdTrackCutsH->SetRequireTPCRefit(kTRUE);\r
86 esdTrackCutsH->SetMinNsigmaToVertex(2);\r
87 esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);\r
88 esdTrackCutsH->SetAcceptKingDaughters(kFALSE);\r
89 //\r
90 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");\r
91 trackFilter->AddCuts(esdTrackCutsL);\r
92 trackFilter->AddCuts(esdTrackCutsH);\r
93\r
94 // ESD filter task putting standard info to output generic AOD \r
95 AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");\r
96 //esdfilter->SetTrackFilter(trackFilter);\r
97 esdfilter->SetDebugLevel(10);\r
98 mgr->AddTask(esdfilter);\r
99 \r
100 // ESD filter task putting muon info to output generic AOD \r
101 AliAnalysisTaskESDMuonFilter *esdmuonfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");\r
102 mgr->AddTask(esdmuonfilter);\r
103\r
104 // Containers for input/output\r
105 AliAnalysisDataContainer *cin_esd = mgr->CreateContainer("cESD",TChain::Class(), AliAnalysisManager::kInputContainer);\r
106 // Output AOD container. \r
107 AliAnalysisDataContainer *cout_aod = mgr->CreateContainer("cAOD", TTree::Class(), AliAnalysisManager::kOutputContainer, "default");\r
108 \r
109 // Connect containers to tasks slots\r
110 mgr->ConnectInput (esdfilter, 0, cin_esd );\r
111 mgr->ConnectOutput (esdfilter, 0, cout_aod );\r
112\r
113 mgr->ConnectInput (esdmuonfilter, 0, cin_esd);\r
114 mgr->ConnectOutput (esdmuonfilter, 0, cout_aod );\r
115\r
116 //\r
117 // Run the analysis\r
118 // \r
119 if (mgr->InitAnalysis()) {\r
120 mgr->PrintStatus();\r
121 mgr->StartAnalysis("proof",chain,nev);\r
122 } \r
123}\r
124\r