]>
Commit | Line | Data |
---|---|---|
f4246b3b | 1 | AliAnalysisTaskHFE* ConfigHFEpPb(Bool_t useMC, TString appendix, \r |
2 | UChar_t TPCcl=70, UChar_t TPCclPID = 80, \r | |
3 | UChar_t ITScl=3, Double_t DCAxy=1000., Double_t DCAz=1000.,\r | |
4 | Double_t* tpcdEdxcutlow=NULL,Double_t* tpcdEdxcuthigh=NULL,\r | |
5 | Double_t TOFs=3., Int_t TOFmis=0,\r | |
6 | Int_t itshitpixel = 0){\r | |
7 | \r | |
8 | Bool_t kAnalyseTaggedTracks = kTRUE;\r | |
9 | \r | |
10 | //***************************************//\r | |
11 | // Setting up the HFE cuts //\r | |
12 | //***************************************//\r | |
13 | \r | |
14 | AliHFEcuts *hfecuts = new AliHFEcuts(appendix,"HFE cuts for pPb");\r | |
15 | \r | |
16 | //hfecuts->SetQAOn();\r | |
17 | hfecuts->CreateStandardCuts();\r | |
18 | hfecuts->SetMinNClustersTPC(TPCcl);\r | |
19 | hfecuts->SetMinNClustersTPCPID(TPCclPID);\r | |
20 | hfecuts->SetMinNClustersITS(ITScl);\r | |
21 | hfecuts->SetMinRatioTPCclusters(0.6);\r | |
22 | hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);\r | |
23 | hfecuts->SetCutITSpixel(itshitpixel);\r | |
24 | hfecuts->SetCheckITSLayerStatus(kFALSE);\r | |
25 | \r | |
26 | //if((iPixelAny==AliHFEextraCuts::kAny) || (iPixelAny==AliHFEextraCuts::kSecond)) \r | |
27 | //hfecuts->SetProductionVertex(0,7,0,7);\r | |
28 | \r | |
29 | hfecuts->SetMaxImpactParam(DCAxy,DCAz);\r | |
30 | hfecuts->SetUseMixedVertex(kTRUE);\r | |
31 | hfecuts->SetVertexRange(10.);\r | |
32 | // New pPb cuts (February 2013)\r | |
33 | hfecuts->SetUseCorrelationVertex();\r | |
34 | hfecuts->SetSPDVtxResolutionCut();\r | |
35 | \r | |
36 | // TOF settings:\r | |
37 | Int_t usetof=0;\r | |
38 | Bool_t kTOFmis=kFALSE;\r | |
39 | if (TOFs>0.){\r | |
40 | usetof = 1;\r | |
41 | printf("CONFIGURATION FILE: TOF is used \n");\r | |
42 | hfecuts->SetTOFPIDStep(kTRUE);\r | |
43 | printf("CONFIGURATION FILE: TOF PID step is requested !!!! \n");\r | |
44 | if (TOFmis>0){\r | |
45 | kTOFmis = kTRUE;\r | |
46 | printf("CONFIGURATION FILE: TOF mismatch rejection is set ON \n");\r | |
47 | }\r | |
48 | }\r | |
49 | \r | |
50 | //***************************************//\r | |
51 | // Setting up the task //\r | |
52 | //***************************************//\r | |
53 | \r | |
54 | AliAnalysisTaskHFE *task = new AliAnalysisTaskHFE(appendix);\r | |
55 | printf("task %p\n", task);\r | |
56 | task->SetpPbAnalysis();\r | |
57 | task->SetRemoveFirstEventInChunk();\r | |
58 | task->SetRemovePileUp(kFALSE);\r | |
59 | task->SetHFECuts(hfecuts);\r | |
60 | task->GetPIDQAManager()->SetHighResolutionHistos();\r | |
61 | \r | |
62 | //***************************************//\r | |
63 | // Variable manager //\r | |
64 | //***************************************//\r | |
65 | \r | |
66 | // Define Variables\r | |
67 | Double_t ptbinning[36] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2, 1.3, 1.4, 1.5, 1.75, 2., 2.25, 2.5, 2.75, 3., 3.5, 4., 4.5, 5., 5.5, 6., 7., 8., 10., 12., 14., 16., 18., 20.};\r | |
68 | \r | |
69 | Double_t etabinning[9] = {-0.8, -0.6, -0.4, -0.2, 0., 0.2, 0.4, 0.6, 0.8};\r | |
70 | //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};\r | |
71 | \r | |
72 | Int_t sizept=(sizeof(ptbinning)/sizeof(double))-1;\r | |
73 | Int_t sizeeta=(sizeof(etabinning)/sizeof(double))-1;\r | |
74 | \r | |
75 | AliHFEvarManager *vm = task->GetVarManager();\r | |
76 | vm->AddVariable("pt", sizept, ptbinning);\r | |
77 | vm->AddVariable("eta", sizeeta, -0.8,0.8);\r | |
78 | vm->AddVariable("phi",21, -0, 2*TMath::Pi());\r | |
79 | vm->AddVariable("charge");\r | |
80 | vm->AddVariable("source");\r | |
81 | vm->AddVariable("centrality");\r | |
82 | \r | |
83 | // For the moment, remove the part dedicated to the background subtraction.\r | |
84 | // It will be implemented in a different way, reading it from a root file.\r | |
85 | \r | |
86 | //***************************************//\r | |
87 | // Configure the PID //\r | |
88 | //***************************************//\r | |
89 | \r | |
90 | // Define PID\r | |
91 | AliHFEpid *pid = task->GetPID();\r | |
92 | if(useMC) pid->SetHasMCData(kTRUE);\r | |
93 | \r | |
94 | if (usetof){\r | |
95 | pid->AddDetector("TOF", 0);\r | |
96 | pid->AddDetector("TPC", 1);\r | |
97 | } else {\r | |
98 | pid->AddDetector("TPC", 0);\r | |
99 | }\r | |
100 | \r | |
101 | // Configure TPC PID\r | |
102 | if(!useMC){\r | |
103 | Double_t paramsTPCdEdxcutlow[12] ={0.0, 0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};\r | |
104 | if(tpcdEdxcutlow) memcpy(paramsTPCdEdxcutlow,tpcdEdxcutlow,sizeof(paramsTPCdEdxcutlow));\r | |
105 | \r | |
106 | Double_t paramsTPCdEdxcuthigh[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};\r | |
107 | if(tpcdEdxcuthigh) memcpy(paramsTPCdEdxcuthigh,tpcdEdxcuthigh,sizeof(paramsTPCdEdxcuthigh));\r | |
108 | \r | |
109 | char *cutmodel;\r | |
110 | cutmodel="pol0";\r | |
111 | \r | |
112 | for(Int_t a=0;a<11;a++)\r | |
113 | {\r | |
114 | // cout << a << " " << paramsTPCdEdxcut[a] << endl;\r | |
115 | Double_t tpcparamlow[1]={paramsTPCdEdxcutlow[a]};\r | |
116 | Float_t tpcparamhigh=paramsTPCdEdxcuthigh[a];\r | |
117 | pid->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);\r | |
118 | }\r | |
119 | }\r | |
120 | \r | |
121 | // Configure TOF PID\r | |
122 | if (usetof){\r | |
123 | pid->ConfigureTOF(TOFs);\r | |
124 | AliHFEpidTOF *tofpid = pid->GetDetPID(AliHFEpid::kTOFpid);\r | |
125 | if (kTOFmis){\r | |
126 | tofpid->SetRejectTOFmismatch();\r | |
127 | }\r | |
128 | }\r | |
129 | // To make different upper TOF cut to see contamination effect\r | |
130 | // The below two lines should be removed after this check\r | |
131 | //AliHFEpidTOF *tofpid = pid->GetDetPID(AliHFEpid::kTOFpid);\r | |
132 | //if(TOFs<3.) tofpid->SetTOFnSigmaBand(-3,TOFs); //only to check the assymmetric tof cut\r | |
133 | \r | |
134 | //***************************************//\r | |
135 | // V0 tagged tracks //\r | |
136 | //***************************************//\r | |
137 | if(kAnalyseTaggedTracks){\r | |
138 | AliHFEcuts *v0trackCuts = new AliHFEcuts("V0trackCuts", "Track Cuts for tagged track Analysis");\r | |
139 | v0trackCuts->CreateStandardCuts();\r | |
140 | v0trackCuts->SetMinNClustersTPC(TPCcl); \r | |
141 | v0trackCuts->SetMinNClustersTPCPID(TPCclPID);\r | |
142 | v0trackCuts->SetMinRatioTPCclusters(0.6);\r | |
143 | v0trackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);\r | |
144 | v0trackCuts->SetMinNClustersITS(1);\r | |
145 | v0trackCuts->SetCutITSpixel(AliHFEextraCuts::kFirst);\r | |
146 | v0trackCuts->SetCheckITSLayerStatus(kFALSE);\r | |
147 | v0trackCuts->UnsetVertexRequirement();\r | |
148 | //hfecuts->SetSigmaToVertex(10);\r | |
149 | v0trackCuts->SetTOFPIDStep(kTRUE);\r | |
150 | v0trackCuts->SetQAOn();\r | |
151 | \r | |
152 | task->SwitchOnPlugin(AliAnalysisTaskHFE::kTaggedTrackAnalysis);\r | |
153 | task->SetTaggedTrackCuts(v0trackCuts);\r | |
154 | task->SetCleanTaggedTrack(kTRUE);\r | |
155 | }\r | |
156 | \r | |
157 | // QA\r | |
158 | printf("task %p\n", task);\r | |
159 | task->SetQAOn(AliAnalysisTaskHFE::kPIDqa);\r | |
160 | task->SetQAOn(AliAnalysisTaskHFE::kMCqa); \r | |
161 | task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep);\r | |
162 | \r | |
163 | printf("*************************************\n");\r | |
164 | printf("Configuring standard Task:\n");\r | |
165 | task->PrintStatus();\r | |
166 | pid->PrintStatus();\r | |
167 | printf("*************************************\n"); \r | |
168 | return task;\r | |
169 | }\r |