]>
Commit | Line | Data |
---|---|---|
88b71b9f | 1 | AliAnalysisTask *AddTaskTPCPIDEtaTree(Bool_t correctdEdxEtaDependence = kFALSE, Bool_t correctdEdxMultiplicityDependence = kFALSE, |
2 | Bool_t setDoAdditionalQA = kFALSE, Bool_t useTPCCutMIGeo = kTRUE, Bool_t usePhiCut = kFALSE){ | |
3 | //get the current analysis manager | |
4 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
5 | if (!mgr) { | |
6 | Error("AddTask_bhess_PIDetaTree", "No analysis manager found."); | |
7 | return 0; | |
8 | } | |
9 | ||
10 | //========= Add task to the ANALYSIS manager ===== | |
11 | AliTPCPIDEtaTree *task = new AliTPCPIDEtaTree("TPCPIDEtaTree"); | |
12 | task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7); | |
13 | ||
14 | // | |
15 | // Add track filters | |
16 | // | |
17 | AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter"); | |
18 | AliESDtrackCuts* esdTrackCutsL = 0x0; | |
19 | ||
20 | printf("\nSettings:\n"); | |
21 | TString listOfFiles = gSystem->Getenv("LIST"); | |
22 | if (listOfFiles.Contains("LHC11") || listOfFiles.Contains("LHC12") || listOfFiles.Contains("LHC13")) { | |
23 | esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE); | |
24 | printf("Using standard ITS-TPC track cuts 2011.\n"); | |
25 | } | |
26 | else if (listOfFiles.Contains("LHC10")) { | |
27 | esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE); | |
28 | printf("Using standard ITS-TPC track cuts 2010.\n"); | |
29 | } | |
30 | else { | |
31 | esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE); | |
32 | printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n"); | |
33 | } | |
34 | ||
35 | if (listOfFiles.Contains("PbPb") || listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) { | |
36 | task->SetStoreMultiplicity(kTRUE); | |
37 | printf("PbPb, pPb or Pbp detected -> Storing multiplicity in tree!\n"); | |
38 | } | |
39 | else { | |
40 | task->SetStoreMultiplicity(kFALSE); | |
41 | printf("pp detected -> NOT storing multiplicity in tree!\n"); | |
42 | } | |
43 | ||
44 | ||
45 | // Test whether we have pPb or Pbp | |
46 | if (listOfFiles.Contains("pPb") || listOfFiles.Contains("Pbp")) { | |
47 | task->SetIsPbpOrpPb(kTRUE); | |
48 | printf("pPb/Pbp detected -> Adapting vertex cuts!\n"); | |
49 | } | |
50 | else { | |
51 | task->SetIsPbpOrpPb(kFALSE); | |
52 | printf("Collision type different from pPb/Pbp detected -> Using standard vertex cuts!\n"); | |
53 | } | |
54 | ||
55 | ||
56 | trackFilter->AddCuts(esdTrackCutsL); | |
57 | task->SetTrackFilter(trackFilter); | |
58 | task->SetUsePhiCut(usePhiCut); | |
59 | task->SetUseTPCCutMIGeo(useTPCCutMIGeo); | |
60 | ||
61 | printf("UsePhiCut: %d\n", task->GetUsePhiCut()); | |
62 | printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo()); | |
63 | ||
64 | ||
65 | task->SetDoAdditionalQA(setDoAdditionalQA); | |
66 | ||
67 | if (task->GetDoAdditionalQA()) | |
68 | printf("Storing histos for additional QA!\n"); | |
69 | else | |
70 | printf("NOT storing histos for additional QA!\n"); | |
71 | ||
72 | task->SetZvtxCutEvent(10.0); | |
73 | printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent()); | |
74 | ||
75 | task->SetEtaCut(0.9); | |
76 | printf("EtaCut: %.2f\n", task->GetEtaCut()); | |
77 | ||
78 | task->SetPtpcPionCut(0.6); | |
79 | printf("P_TPC_Pion cut: %.2f\n", task->GetPtpcPionCut()); | |
80 | ||
81 | task->SetStoreNumOfSubthresholdclusters(kTRUE); | |
82 | printf("Store num subthreshold clusters: %d\n", task->GetStoreNumOfSubthresholdclusters()); | |
83 | ||
84 | task->SetStoreNumClustersInActiveVolume(kTRUE); | |
85 | printf("Store num clusters in active volume: %d\n", task->GetStoreNumClustersInActiveVolume()); | |
86 | ||
87 | task->SetCorrectdEdxEtaDependence(correctdEdxEtaDependence); | |
88 | task->SetCorrectdEdxMultiplicityDependence(correctdEdxMultiplicityDependence); | |
89 | ||
90 | printf("Eta correction: %s for this task\n", | |
91 | task->GetCorrectdEdxEtaDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled"); | |
92 | printf("Multiplicity correction: %s for this task\n\n", | |
93 | task->GetCorrectdEdxMultiplicityDependence() ? "enabled (only works if enabled in PIDresponse!)" : "explicitly disabled"); | |
94 | ||
95 | mgr->AddTask(task); | |
96 | ||
97 | ||
98 | //================================================ | |
99 | // data containers | |
100 | //================================================ | |
101 | // find input container | |
102 | //below the trunk version | |
103 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
104 | ||
105 | //dumm output container | |
106 | AliAnalysisDataContainer *coutput0 = | |
107 | mgr->CreateContainer("TPCPIDEtaTree", | |
108 | TTree::Class(), | |
109 | AliAnalysisManager::kExchangeContainer, | |
110 | "TPCPIDEtaTree_default"); | |
111 | ||
112 | //define output containers, please use 'username'_'somename' | |
113 | AliAnalysisDataContainer *coutput1 = | |
114 | mgr->CreateContainer("TPCPIDEtaTree", TTree::Class(), | |
115 | AliAnalysisManager::kOutputContainer,"TPCPIDEtaTree.root"); | |
116 | AliAnalysisDataContainer *coutput2 = | |
117 | mgr->CreateContainer("TPCPIDEtaTree", TTree::Class(), | |
118 | AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreePions.root"); | |
119 | AliAnalysisDataContainer *coutput3 = | |
120 | mgr->CreateContainer("TPCPIDEtaTreeAdditionalQA", TObjArray::Class(), | |
121 | AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreeAddionalQA.root"); | |
122 | ||
123 | //connect containers | |
124 | mgr->ConnectInput(task, 0, cinput ); | |
125 | mgr->ConnectOutput(task, 0, coutput0); | |
126 | mgr->ConnectOutput(task, 1, coutput1); | |
127 | mgr->ConnectOutput(task, 2, coutput2); | |
128 | mgr->ConnectOutput(task, 3, coutput3); | |
129 | ||
130 | return task; | |
131 | } |