1 AliAnalysisTask *AddTaskTPCPIDEtaTree(TString period = "", Bool_t isPbpOrpPb = kFALSE, Bool_t storeMultiplicity = kTRUE,
2 Bool_t correctdEdxEtaDependence = kFALSE, Bool_t correctdEdxMultiplicityDependence = kFALSE,
3 Bool_t setDoAdditionalQA = kFALSE,
4 Int_t tpcCutType = AliTPCPIDBase::kTPCCutMIGeo /*AliTPCPIDBase::kTPCnclCut*/,
5 Bool_t usePhiCut = kFALSE){
6 //get the current analysis manager
7 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9 Error("AddTask_bhess_PIDetaTree", "No analysis manager found.");
13 //========= Add task to the ANALYSIS manager =====
14 AliTPCPIDEtaTree *task = new AliTPCPIDEtaTree("TPCPIDEtaTree");
15 task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kINT7);
20 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
21 AliESDtrackCuts* esdTrackCutsL = 0x0;
23 printf("\nSettings:\n");
24 if (period.Contains("LHC11") || period.Contains("LHC12") || period.Contains("LHC13")) {
25 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
26 printf("Using standard ITS-TPC track cuts 2011.\n");
28 else if (period.Contains("LHC10")) {
29 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
30 printf("Using standard ITS-TPC track cuts 2010.\n");
33 esdTrackCutsL = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
34 printf("WARNING: Cuts not configured for this period!!! Using standard ITS-TPC track cuts 2011\n");
37 task->SetStoreMultiplicity(storeMultiplicity);
38 if (task->GetStoreMultiplicity()) {
39 printf("Storing multiplicity in tree!\n");
42 printf("NOT storing multiplicity in tree!\n");
46 task->SetIsPbpOrpPb(isPbpOrpPb);
47 if (task->GetIsPbpOrpPb()) {
48 printf("Collision type pPb/Pbp set -> Adapting vertex cuts!\n");
51 printf("Collision type different from pPb/Pbp -> Using standard vertex cuts!\n");
55 trackFilter->AddCuts(esdTrackCutsL);
56 task->SetTrackFilter(trackFilter);
57 task->SetUsePhiCut(usePhiCut);
58 task->SetTPCcutType(tpcCutType);
60 printf("UsePhiCut: %d\n", task->GetUsePhiCut());
61 printf("UseTPCCutMIGeo: %d\n", task->GetUseTPCCutMIGeo());
62 printf("UseTPCnclCut: %d\n", task->GetUseTPCnclCut());
65 task->SetDoAdditionalQA(setDoAdditionalQA);
67 if (task->GetDoAdditionalQA())
68 printf("Storing histos for additional QA!\n");
70 printf("NOT storing histos for additional QA!\n");
72 task->SetZvtxCutEvent(10.0);
73 printf("Cut on z position of vertex: %.2f cm\n", task->GetZvtxCutEvent());
76 printf("EtaCut: %.2f\n", task->GetEtaCut());
78 task->SetPtpcPionCut(0.6);
79 printf("P_TPC_Pion cut: %.2f\n", task->GetPtpcPionCut());
81 task->SetStoreNumOfSubthresholdclusters(kTRUE);
82 printf("Store num subthreshold clusters: %d\n", task->GetStoreNumOfSubthresholdclusters());
84 task->SetStoreNumClustersInActiveVolume(kTRUE);
85 printf("Store num clusters in active volume: %d\n", task->GetStoreNumClustersInActiveVolume());
87 task->SetCorrectdEdxEtaDependence(correctdEdxEtaDependence);
88 task->SetCorrectdEdxMultiplicityDependence(correctdEdxMultiplicityDependence);
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");
98 //================================================
100 //================================================
101 // find input container
102 //below the trunk version
103 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
105 //dumm output container
106 AliAnalysisDataContainer *coutput0 =
107 mgr->CreateContainer("TPCPIDEtaTree_tree",
109 AliAnalysisManager::kExchangeContainer,
110 "TPCPIDEtaTree_default");
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("TPCPIDEtaTreePions", TTree::Class(),
118 AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreePions.root");
119 AliAnalysisDataContainer *coutput3 =
120 mgr->CreateContainer("TPCPIDEtaTreeAdditionalQA", TObjArray::Class(),
121 AliAnalysisManager::kOutputContainer,"TPCPIDEtaTreeAddionalQA.root");
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);