]>
Commit | Line | Data |
---|---|---|
8acd5e60 | 1 | void 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 |