]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/hfe/macros/configs/pPb/ConfigHFEpPb.C
updated
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / pPb / ConfigHFEpPb.C
CommitLineData
f4246b3b 1AliAnalysisTaskHFE* 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