end-of-line normalization
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / PbPb / ConfigHFEElecHadronCorrelPbPb.C
1 AliAnalysisTaskElecHadronCorrel* ConfigHFEElecHadronCorrelPbPb(Bool_t useMC,
2                                                                Bool_t EventTrigSelMB=kTRUE,
3                                                                Bool_t TrigSelCen = kTRUE,
4                                                                Double_t CentMin = 0,
5                                                                Double_t CentMax = 7,
6                                                                Double_t TPCNsigMinE = -2,
7                                                                Double_t TPCNsigMaxE = 2,
8                                                                Double_t TPCNsigMinH = -10,
9                                                                Double_t TPCNsigMaxH = -3.5,
10                                                                Double_t SSM02Min = 0.03,  
11                                                                Double_t SSM02Max = 0.5,
12                                                                Double_t SSM20Min = 0.03,  
13                                                                Double_t SSM20Max = 0.3,
14                                                                Double_t Disp = 1,
15                                                                Double_t EovPMin = 0.8,    
16                                                                Double_t EovPMax = 1.2,    
17                                                                Double_t InvM = 0.1,
18                                                                const char* CentralityMet = "VOM",
19                                                                Int_t TPCNClsEle = 100,
20                                                                Int_t TPCNClsHad = 80,
21                                                                Bool_t AssoEleITSref=kTRUE,
22                                                                Int_t AssoElecTPCNCls=80,
23                                                                TString ContNameExt = "Central",
24                                                                TString TaskName="hfeCorrl"){
25
26 //
27   // HFE standard task configuration
28   //
29
30   Bool_t kAnalyseTaggedTracks = kTRUE;
31   
32   AliHFEcuts *hfecuts = new AliHFEcuts("hfeCutsEMCAL","HFE Standard Cuts");
33 //  hfecuts->CreateStandardCuts();
34   hfecuts->SetMinNClustersTPC(TPCNClsEle);
35   hfecuts->SetMinNClustersITS(3);
36   hfecuts->SetMinNTrackletsTRD(0);
37   hfecuts->SetMinRatioTPCclusters(0.6);
38    // hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
39   hfecuts->SetRequireITSPixel();
40   hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny); 
41   hfecuts->SetMaxChi2perClusterITS(-1);
42   hfecuts->SetMaxChi2perClusterTPC(3.5);
43   hfecuts->SetCheckITSLayerStatus(kFALSE); // shud be put back
44 //  hfecuts->UnsetVertexRequirement();
45   hfecuts->SetVertexRange(10.);
46   hfecuts->SetRequireSigmaToVertex();
47   //hfecuts->SetSigmaToVertex(10);
48   hfecuts->SetTOFPIDStep(kFALSE);
49 //  hfecuts->SetQAOn();
50  hfecuts->SetPtRange(0, 30);
51
52  TString taskName = TaskName;
53
54   AliAnalysisTaskElecHadronCorrel *task = new AliAnalysisTaskElecHadronCorrel(taskName);
55   printf("task ------------------------ %p\n ", task);
56   task->SetHFECuts(hfecuts);
57 //  task->SetRemovePileUp(kTRUE);
58 //  task->SetInvariantMassCut(0.1);
59
60   task->SetEventTriggerSelectionMB(EventTrigSelMB);
61   task->SetTriggerSelection(TrigSelCen);
62   task->SetCentralityParameters(CentMin, CentMax, CentralityMet);
63   task->SetInvariantMassCut(InvM);
64   task->SetAssoElecTPCNCls(AssoElecTPCNCls);
65   task->SetTPCnsigmaCutsElecSelection(TPCNsigMinE,TPCNsigMaxE);
66   task->SetTPCnsigmaCutsHadSelection(TPCNsigMinH,TPCNsigMaxH);
67   task->SetShowerShapeCutsM02(SSM02Min,SSM02Max);
68   task->SetShowerShapeCutsM20(SSM20Min,SSM20Max);
69   task->SetShowerShapeCutsDisp(0,Disp);
70   task->SetEovPCuts(EovPMin,EovPMax);
71   task->SetRejectKinkMother(kTRUE);
72   task->SetTPCNClsHad(TPCNClsHad);
73   task->SetAssoElecITSrefit(AssoEleITSref);
74
75   // Define PID
76   AliHFEpid *pid = task->GetPID();
77   if(useMC) pid->SetHasMCData(kTRUE);
78   pid->AddDetector("TPC", 0);
79   pid->AddDetector("EMCAL", 1);
80   /*
81   // change E/p cuts
82   AliHFEpidEMCAL *emcpid = pid->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid);
83   emcpid->SetEoPMax(1.2);
84   emcpid->SetEoPMim(0.8);
85
86   Double_t params[4];
87   char *cutmodel;
88   if(useMC){
89           // Monte-Carlo needs modelling of the falling mean with momentum at low momentum
90           // for high momentum it is consistent with a flat -0.94
91           cutmodel = "[0]*TMath::Exp([1]*x) + [2] + [3]*x";
92           Double_t paramsMC[4] = {0.7174, -1.588, -0.9395, 0.0246};
93           for(int ipar = 0; ipar < 4; ipar++) params[ipar] = paramsMC[ipar];
94   } else {
95           // Data is consistent with a flat 0.12
96           cutmodel = "pol0";
97           //params[0] = -0.0015;
98           //params[0] = -3.0;
99           params[0] = -1.0; //sigma min
100   }
101 //  pid->ConfigureTPCdefaultCut(cutmodel, params,3.0); 
102   pid->ConfigureTPCasymmetric(0,30,-1,3.0); 
103 */
104   printf("*************************************\n");
105   printf("Configuring standard Task:\n");
106 //  task->PrintStatus();
107   pid->PrintStatus();
108   printf("*************************************\n"); 
109   return task;
110 }