]>
Commit | Line | Data |
---|---|---|
439cf020 | 1 | AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "109000200209297002322000000", |
2 | TString pionCut = "01522045009000", | |
3 | TString photoncut = "", | |
4 | Bool_t pbpb = kTRUE) { | |
5 | ||
6 | // standard with task | |
7 | printf("========================================================================================\n"); | |
8 | printf("dPhiAnalysis: Initialising AliAnalysisTaskdPhi\n"); | |
9 | printf("========================================================================================\n"); | |
10 | ||
11 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
12 | if (!mgr) { | |
13 | Error("AddTask_slindal_dPhi", "No analysis manager found."); | |
14 | return 0; | |
15 | } | |
16 | ||
17 | AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager(); | |
18 | Bool_t isAOD=man->GetInputEventHandler()->IsA()==AliAODInputHandler::Class(); | |
19 | ||
20 | AliAnalysisTaskdPhi *task = new AliAnalysisTaskdPhi((TString("slindalTask_dPhi")+"_" + v0Cut)); | |
21 | ||
22 | ///Axes for histrograms | |
9e6bd607 | 23 | Double_t cptbins[13] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 8.0, 10.0, 25, 50, 100}; |
24 | task->GetAxiscPt().Set(12, cptbins); | |
439cf020 | 25 | |
26 | Double_t tptbins[10] = {2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100}; | |
27 | task->GetAxistPt().Set(9, tptbins); | |
28 | ||
29 | if(pbpb) { | |
9e6bd607 | 30 | Double_t centBins[7] = {0, 5, 10, 30, 50, 60, 90}; |
31 | task->GetAxisCent().Set(6, centBins); | |
439cf020 | 32 | } else { |
9e6bd607 | 33 | Double_t centBins[2] = {-9999, 9999}; |
34 | task->GetAxisCent().Set(1, centBins); | |
439cf020 | 35 | } |
36 | ||
37 | Double_t zbins[6] = { -10, -5, -1.5, 1.5, 5, 10}; | |
38 | task->GetAxisZ().Set(5, zbins); | |
39 | ||
40 | Double_t mbins[17] = {0.07, 0.09, 0.1, 0.11, 0.12, 0.125, 0.1275, 0.13, 0.14, 0.1425, 0.145, 0.15, 0.16, 0.18, 0.2, 0.24, 0.26}; | |
41 | task->GetAxisPiMass().Set(16, mbins); | |
42 | ||
9e6bd607 | 43 | |
44 | //AliConversionTrackCuts * cuts = new AliConversionTrackCuts(); | |
45 | AliESDtrackCuts * trackCuts = new AliESDtrackCuts(); | |
46 | ||
47 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); | |
48 | trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
49 | trackCuts->SetMaxChi2PerClusterTPC(4); | |
50 | trackCuts->SetRequireTPCStandAlone(kTRUE); | |
51 | trackCuts->SetAcceptKinkDaughters(kFALSE); | |
52 | trackCuts->SetRequireTPCRefit(kTRUE); | |
53 | trackCuts->SetMaxFractionSharedTPCClusters(0.4); | |
54 | ||
55 | trackCuts->SetMaxDCAToVertexXY(2.4); | |
56 | trackCuts->SetMaxDCAToVertexZ(3.2); | |
57 | trackCuts->SetDCAToVertex2D(kTRUE); | |
58 | ||
59 | trackCuts->SetMaxChi2PerClusterITS(36); | |
60 | trackCuts->SetMaxChi2TPCConstrainedGlobal(36); | |
61 | ||
62 | trackCuts->SetRequireSigmaToVertex(kFALSE); | |
63 | ||
64 | trackCuts->SetEtaRange(-0.9, 0.9); | |
65 | trackCuts->SetPtRange(cptbins[0], 1000000.0); | |
66 | ||
67 | trackCuts->SetRequireITSRefit(kFALSE); | |
68 | ||
69 | //cuts->SetESDCuts(esdTrackCuts); | |
70 | task->SetTrackCuts(trackCuts); | |
71 | ||
439cf020 | 72 | |
73 | ///Pion cuts | |
9e6bd607 | 74 | AliConversionMesonCuts * picuts = new AliConversionMesonCuts("dphi_pioncuts"); |
439cf020 | 75 | picuts->InitializeCutsFromCutString(pionCut); |
76 | task->SetMesonFilter(picuts); | |
77 | ||
78 | if(photoncut.Length() > 0) { | |
79 | ///V0 analysis cuts (applied before pion analysis) | |
80 | AliConversionCuts * gcuts = new AliConversionCuts(); | |
81 | gcuts->InitializeCutsFromCutString(photoncut); | |
9e6bd607 | 82 | task->SetPhotonFilter(gcuts); |
439cf020 | 83 | } |
84 | ||
85 | //================================================ | |
86 | // data containers | |
87 | //================================================ | |
88 | // find input container | |
89 | //below the trunk version | |
90 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
91 | TString baseString("slindal_dPhi_"); | |
9e6bd607 | 92 | baseString += v0Cut + "_" + pionCut; |
439cf020 | 93 | |
94 | //dumm output container | |
95 | AliAnalysisDataContainer *coutput0 = | |
96 | mgr->CreateContainer(baseString+"tree", | |
97 | TTree::Class(), | |
98 | AliAnalysisManager::kExchangeContainer, | |
99 | "slindal_default"); | |
100 | ||
101 | //define output containers, please use 'username'_'somename' | |
102 | AliAnalysisDataContainer *coutput1 = | |
103 | mgr->CreateContainer(baseString+"me", TList::Class(), | |
9e6bd607 | 104 | AliAnalysisManager::kOutputContainer,baseString+".root"); |
439cf020 | 105 | |
106 | //define output containers, please use 'username'_'somename' | |
439cf020 | 107 | |
439cf020 | 108 | |
109 | //========= Add PID Reponse to ANALYSIS manager ==== | |
110 | Bool_t isMC = kFALSE; | |
111 | if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ | |
112 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
113 | AddTaskPIDResponse(isMC); | |
114 | } | |
115 | ||
116 | //========= Set Cutnumber for V0Reader ================================ | |
117 | // TString cutnumber = "100000000008400100150000000"; | |
118 | //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== | |
9e6bd607 | 119 | AliV0ReaderV1 * fV0ReaderV1 = (AliV0ReaderV1*)mgr->GetTask("V0ReaderV1"); |
120 | if( !fV0reader ){ | |
439cf020 | 121 | AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); |
122 | ||
123 | fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); | |
124 | fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output | |
125 | fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); | |
126 | ||
127 | if (!mgr) { | |
128 | Error("AddTask_V0ReaderV1", "No analysis manager found."); | |
129 | return; | |
130 | } | |
131 | ||
132 | // Set AnalysisCut Number | |
133 | AliConversionCuts *fCuts=NULL; | |
134 | if(v0Cut!=""){ | |
135 | fCuts= new AliConversionCuts(v0Cut.Data(),v0Cut.Data()); | |
136 | if(pbpb) { | |
137 | fCuts->SetPreSelectionCutFlag(kFALSE); | |
138 | } else { | |
139 | fCuts->SetPreSelectionCutFlag(kTRUE); | |
140 | } | |
141 | if(fCuts->InitializeCutsFromCutString(v0Cut)){ | |
142 | fV0ReaderV1->SetConversionCuts(fCuts); | |
143 | //fCuts->SetFillCutHistograms("",kTRUE); | |
144 | } | |
145 | ||
146 | ||
147 | } | |
148 | ||
149 | fV0ReaderV1->Init(); | |
439cf020 | 150 | mgr->AddTask(fV0ReaderV1); |
151 | mgr->ConnectInput(fV0ReaderV1,0,cinput); | |
152 | task->SetV0Reader(fV0ReaderV1); | |
153 | task->SaveReaderHists(); | |
154 | } else { | |
155 | ///V0 analysis cuts (applied before pion analysis) | |
156 | AliConversionCuts * v0cuts = new AliConversionCuts(); | |
157 | v0cuts->InitializeCutsFromCutString(v0Cut); | |
9e6bd607 | 158 | task->SetV0Reader(fV0ReaderV1); |
439cf020 | 159 | task->SetV0Filter(v0cuts); |
160 | } | |
161 | ||
162 | mgr->AddTask(task); | |
163 | mgr->ConnectInput (task, 0, cinput ); | |
164 | mgr->ConnectOutput (task, 0, coutput0); | |
165 | mgr->ConnectOutput (task, 1, coutput1); | |
439cf020 | 166 | |
167 | return task; | |
168 | } | |
169 | ||
170 |