]>
Commit | Line | Data |
---|---|---|
e8ae876b | 1 | AliAnalysisTaskHFE* ConfigHFECalSys_PbPb(Bool_t useMC, int TPCclust, int Nits, int ITSstat, double nSigMim, double Mimeop, double Maxeop, int PIDorder){ |
6f880c3b | 2 | // |
3 | // HFE standard task configuration | |
4 | // | |
5 | ||
6 | cout << "==== Summary of cuts ===== " << endl; | |
7 | cout << "TPC ; " << TPCclust << endl; | |
8 | cout << "ITS ; " << Nits << endl; | |
9 | cout << "PID ; " << nSigMim << " ; " << Mimeop << " ; " << Maxeop << endl; | |
10 | ||
11 | AliHFEcuts *hfecuts = new AliHFEcuts("hfeCuts","HFE Standard Cuts for EMCal"); | |
12 | hfecuts->CreateStandardCuts(); | |
13 | //hfecuts->SetMinNClustersTPC(120); | |
14 | hfecuts->SetMinNClustersTPC(TPCclust); | |
15 | hfecuts->SetMinRatioTPCclusters(0.6); | |
16 | hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); | |
17 | ||
18 | //hfecuts->SetMinNClustersITS(3); | |
19 | hfecuts->SetMinNClustersITS(Nits); | |
20 | hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny); | |
e8ae876b | 21 | if(ITSstat==1)hfecuts->SetCutITSpixel(AliHFEextraCuts::kFirst); |
6f880c3b | 22 | hfecuts->SetCheckITSLayerStatus(kFALSE); |
23 | ||
24 | //hfecuts->UnsetVertexRequirement(); | |
25 | hfecuts->SetMaxImpactParam(3.,3.); | |
a689c6fb | 26 | hfecuts->SetPtRange(2.0,60.0); |
6f880c3b | 27 | |
28 | hfecuts->SetVertexRange(10.); | |
29 | //hfecuts->SetMaxChi2perClusterITS(36); | |
30 | //hfecuts->SetSigmaToVertex(10); | |
31 | //hfecuts->SetTOFPIDStep(kTRUE); | |
32 | //hfecuts->SetTOFMISMATCHStep(kTRUE); | |
33 | //hfecuts->SetTPCPIDCleanUpStep(kTRUE); | |
34 | hfecuts->SetQAOn(); | |
35 | //hfecuts->SetMinNTrackletsTRD(5); | |
36 | ||
37 | AliAnalysisTaskHFE *task = new AliAnalysisTaskHFE("HFEanalysisStandardEMCal"); | |
38 | task->SetHFECuts(hfecuts); | |
39 | task->SetPbPbAnalysis(kTRUE); | |
40 | //task->SetRemovePileUp(kTRUE); | |
41 | task->GetPIDQAManager()->SetHighResolutionHistos(); | |
42 | ||
43 | // Define Variables | |
44 | AliHFEvarManager *vm = task->GetVarManager(); | |
45 | //vm->AddVariable("pt"); | |
46 | //vm->AddVariable("eta"); | |
47 | ||
48 | const Double_t ptbinning[50] = {1., 1.1, 1.2, 1.3, 1.4, | |
49 | 1.5, 1.75, 2., 2.25, 2.5, | |
50 | 2.75, 3., 3.5, 4., 4.5, | |
51 | 5., 5.5, 6., 7., 8., | |
52 | 9., 10., 11., 12., 13., | |
53 | 14., 15., 16., 17., 18., | |
54 | 20., 22., 24., 26., 28., | |
55 | 30., 32., 34., 36., 38., | |
56 | 40., 45., 50., 55., 60., | |
57 | 65., 70., 80., 90., 100}; | |
58 | ||
59 | const Double_t etabinning[17] = {-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8}; | |
60 | ||
61 | vm->AddVariable("pt", 49, ptbinning); | |
62 | vm->AddVariable("eta", 16, etabinning); | |
63 | vm->AddVariable("phi"); | |
64 | vm->AddVariable("charge"); | |
65 | vm->AddVariable("source"); | |
66 | vm->AddVariable("centrality"); | |
67 | /* | |
68 | if(!useMC){ | |
69 | ||
70 | for(Int_t a=0;a<12;a++) | |
71 | { | |
72 | TF1 *hBackground = new TF1("hadronicBackgroundFunction","TMath::Exp([0]/x + [1])", 0., 20.); | |
73 | hBackground->SetParameter(0, -43.87); | |
74 | hBackground->SetParameter(1, 2.85); | |
75 | task->SetBackGroundFactorsFunction(hBackground,a); | |
76 | } | |
77 | ||
78 | ||
79 | } | |
80 | */ | |
81 | // Define PID | |
82 | AliHFEpid *pid = task->GetPID(); | |
83 | if(useMC) pid->SetHasMCData(kTRUE); | |
84 | ||
85 | if(PIDorder == 0) | |
86 | { | |
87 | pid->AddDetector("EMCAL", 1); | |
88 | pid->AddDetector("TPC", 0); | |
89 | } | |
90 | else if | |
91 | { | |
92 | pid->AddDetector("EMCAL", 0); | |
93 | pid->AddDetector("TPC", 1); | |
94 | } | |
95 | ||
96 | // pid->ConfigureTPCrejection(); | |
97 | ||
98 | if(!useMC){ | |
99 | ||
100 | Double_t params_centr_0_5[1]; | |
101 | Double_t params_centr_5_10[1]; | |
102 | Double_t params_centr_10_20[1]; | |
103 | Double_t params_centr_20_30[1]; | |
104 | Double_t params_centr_per[1]; | |
105 | //params_centr_0_5[0]=0.16; // cut tuned for 0-10% | |
106 | //params_centr_5_10[0]=0.16; // cut tuned for 0-10% | |
107 | //params_centr_10_20[0]=0.29; | |
108 | //params_centr_20_30[0]=0.38; | |
109 | //params_centr_per[0]=0.44; | |
110 | /* | |
111 | params_centr_0_5[0]=-1.5; // cut tuned for 0-10% | |
112 | params_centr_5_10[0]=-1.5; // cut tuned for 0-10% | |
113 | params_centr_10_20[0]=-1.5; | |
114 | params_centr_20_30[0]=-1.5; | |
115 | params_centr_per[0]=-1.5; | |
116 | */ | |
117 | params_centr_0_5[0] = nSigMim; // cut tuned for 0-10% | |
118 | params_centr_5_10[0] = nSigMim; // cut tuned for 0-10% | |
119 | params_centr_10_20[0] = nSigMim; | |
120 | params_centr_20_30[0] = nSigMim; | |
121 | params_centr_per[0] = nSigMim; | |
122 | ||
123 | ||
124 | char *cutmodel; | |
125 | cutmodel="pol0"; | |
126 | ||
127 | ||
128 | for(Int_t a=0;a<11;a++) | |
129 | { | |
130 | if(a>3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_per,3.0); | |
131 | if(a==0) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_0_5,3.0); // 0-5% | |
132 | if(a==1) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_5_10,3.0); // 5-10% | |
133 | if(a==2) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_10_20,3.0); // 10-20% | |
134 | if(a==3) pid->ConfigureTPCcentralityCut(a,cutmodel,params_centr_20_30,3.0); // 20-30% | |
135 | } | |
136 | ||
137 | ||
138 | } | |
139 | ||
140 | ||
141 | // V0 tagged tracks | |
142 | AliHFEcuts *v0trackCuts = new AliHFEcuts("V0trackCuts", "Track Cuts for tagged track Analysis"); | |
143 | v0trackCuts->CreateStandardCuts(); | |
144 | //v0trackCuts->SetMinNClustersTPC(120); | |
145 | v0trackCuts->SetMinNClustersTPC(TPCclust); | |
146 | v0trackCuts->SetMinRatioTPCclusters(0.6); | |
147 | v0trackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); | |
148 | v0trackCuts->SetMinNClustersITS(1); | |
149 | v0trackCuts->SetCutITSpixel(AliHFEextraCuts::kAny); | |
150 | v0trackCuts->SetCheckITSLayerStatus(kFALSE); | |
151 | v0trackCuts->UnsetVertexRequirement(); | |
152 | //v0trackCuts->SetMaxChi2perClusterITS(36); | |
153 | //hfecuts->SetSigmaToVertex(10); | |
154 | v0trackCuts->SetTOFPIDStep(kTRUE); | |
155 | // v0trackCuts->SetTOFMISMATCHStep(kTRUE); | |
156 | //v0trackCuts->SetTPCPIDCleanUpStep(kTRUE); | |
157 | v0trackCuts->SetQAOn(); | |
158 | ||
159 | task->SwitchOnPlugin(AliAnalysisTaskHFE::kTaggedTrackAnalysis); | |
160 | task->SetTaggedTrackCuts(v0trackCuts); | |
161 | task->SetCleanTaggedTrack(kFALSE); | |
162 | ||
163 | // change E/p cuts | |
164 | AliHFEpidEMCAL *emcpid = pid->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid); | |
165 | emcpid->SetEoPMax(Maxeop); | |
166 | emcpid->SetEoPMim(Mimeop); | |
167 | ||
168 | // QA | |
169 | task->SetQAOn(AliAnalysisTaskHFE::kPIDqa); | |
170 | // task->SetFillSignalOnly(kFALSE); // for DE pluging for MC | |
171 | task->SetQAOn(AliAnalysisTaskHFE::kMCqa); | |
172 | //task->SwitchOnPlugin(AliAnalysisTaskHFE::kIsElecBackGround); | |
173 | //task->SwitchOnPlugin(AliAnalysisTaskHFE::kSecVtx); | |
174 | task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep); | |
175 | ||
176 | ||
177 | ||
178 | printf("*************************************\n"); | |
179 | printf("Configuring standard Task:\n"); | |
180 | task->Print(); | |
181 | pid->PrintStatus(); | |
182 | printf("*************************************\n"); | |
183 | return task; | |
184 | } |