c5ab1799ba691547cb8e9669a4e28f41e3a94cd4
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskHFEFlowTPCTOFEPSP.C
1 AliAnalysisTask *AddTaskHFEFlowTPCTOFEPSP(UInt_t trigger=131073,Int_t aodfilter=16,Bool_t scalarProduct=kFALSE,Bool_t cutPileup=kFALSE,Int_t tpcCls=110, Double_t tpcClsr=60, Int_t tpcClspid=80, Int_t itsCls=4, Int_t pixellayer=2, Double_t dcaxy=100,Double_t dcaz=200, Double_t tofsig=30., Double_t tpceff=50., Int_t vzero=1, Int_t debuglevel=2, Double_t etarange=80, Bool_l ptbinsmall=kFALSE, Double_t ITSclustersback=0, Double_t minTPCback=-2.0, Double_t maxTPCback=5.0){
2
3   //
4   // Define TPC cut for 2011 data
5   //
6   Double_t tpcdedx[8] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; //0-5,5-10,10-20,20-30,30-40,40-50,50-60,60-100
7   // -0.2 0-5%
8   // -0.15 5-10%
9   // -0.1 10-20%
10   // -0.0 20-30%, sigma=1.17
11   // 0.156 30-40%, sigma=1.2
12   // 0.19 40-50%, sigma=1.2
13   // 0.2 50-60%
14   // 0.2 60-80% list_t65536f16TPC110r60p80s11km0ITS4C36Pi2DCAr100z200TOF30TPCe50V1D0er8i0t-20t50
15   tpcdedx[0]=-0.2;
16   tpcdedx[1]=-0.15;
17   tpcdedx[2]=-0.1;
18   tpcdedx[3]=0.0;
19   tpcdedx[4]=0.156;
20   tpcdedx[5]=0.19;
21   tpcdedx[6]=0.2;
22   tpcdedx[7]=0.2;
23   if(TMath::Abs(tpceff-55)<0.01) {
24     tpcdedx[0]=-0.365;
25     tpcdedx[1]=-0.314;
26     tpcdedx[2]=-0.267;
27     tpcdedx[3]=-0.165;
28     tpcdedx[4]=-0.022;
29     tpcdedx[5]= 0.01;
30     tpcdedx[6]= 0.018;
31     tpcdedx[7]= 0.018;
32   }
33   if(TMath::Abs(tpceff-45)<0.01) {
34     tpcdedx[0]=-0.062;
35     tpcdedx[1]=-0.015;
36     tpcdedx[2]=0.035;
37     tpcdedx[3]=0.131;
38     tpcdedx[4]=0.278;
39     tpcdedx[5]=0.32;
40     tpcdedx[6]=0.32;
41     tpcdedx[7]=0.32;
42   }
43   if(TMath::Abs(tpceff-60)<0.01) {
44     tpcdedx[0]=-0.518;
45     tpcdedx[1]=-0.47;
46     tpcdedx[2]=-0.42;
47     tpcdedx[3]=-0.315;
48     tpcdedx[4]=-0.178;
49     tpcdedx[5]=-0.145;
50     tpcdedx[6]=-0.135;
51     tpcdedx[7]=-0.135;
52   }
53   if(TMath::Abs(tpceff-40)<0.01) {
54     tpcdedx[0]=0.09;
55     tpcdedx[1]=0.14;
56     tpcdedx[2]=0.188;
57     tpcdedx[3]=0.28;
58     tpcdedx[4]=0.43;
59     tpcdedx[5]=0.462;
60     tpcdedx[6]=0.473;
61     tpcdedx[7]=0.473;
62   }
63
64   // Name
65   TString appendixx(TString::Format("t%df%ds%dp%dTPC%dr%dp%dITS%dPi%dDCAr%dz%dTOF%dTPCe%dV%dD%der%di%dt%dt%d",(Int_t)trigger,aodfilter,(Int_t)scalarProduct,(Int_t)cutPileup,tpcCls,(Int_t)tpcClsr,tpcClspid,itsCls,(Int_t) pixellayer,(Int_t) dcaxy,(Int_t)dcaz,(Int_t) tofsig,(Int_t)tpceff,vzero,debuglevel,(Int_t)(etarange*0.1),(Int_t)ITSclustersback,(Int_t)(minTPCback*10.0),(Int_t)(maxTPCback*10.0)));
66   //TString appendixx("tpctofv2");
67   
68
69   //set config file name
70   TString configFile("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFE_FLOW_TOFTPC.C");
71   //TString configFile("/hera/alice/bailhach/AliRootInstallations/30_09_2013/AliRoot/PWGHF/hfe/macros/configs/PbPb/ConfigHFE_FLOW_TOFTPC.C");
72   TString checkconfig="ConfigHFE_FLOW_TOFTPC";
73   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
74     gROOT->LoadMacro(configFile.Data());
75   
76   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
77   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
78   AliAnalysisTaskFlowTPCTOFEPSP *task = ConfigHFE_FLOW_TOFTPC(kFALSE,appendixx,trigger,aodfilter,scalarProduct,cutPileup,tpcCls, tpcClsr, tpcClspid, itsCls, pixellayer, dcaxy, dcaz,tofsig,&tpcdedx[0],vzero,debuglevel,etarange,kFALSE,ITSclustersback,minTPCback,maxTPCback);  
79
80   
81   task->SetNbBinsCentralityQCumulant(4);
82   //task->SetBinCentralityLess(0,0.0);
83   task->SetBinCentralityLess(0,0.0);
84   task->SetBinCentralityLess(1,10.0);
85   task->SetBinCentralityLess(2,20.0);
86   task->SetBinCentralityLess(3,40.0);
87   task->SetBinCentralityLess(4,50.0);
88   //task->SetBinCentralityLess(5,60.0);
89   //task->SetBinCentralityLess(7,80.0);
90
91   if(debuglevel==3) {
92     
93     //***************************************//
94     //    test   Configure NPE plugin        //
95     //***************************************//
96     
97     AliHFENonPhotonicElectron *backe = new AliHFENonPhotonicElectron(Form("HFEBackGroundSubtractionPID2%s",appendixx.Data()),"Background subtraction");  //appendix
98     //Setting the Cuts for the Associated electron-pool
99     AliHFEcuts *hfeBackgroundCuts = new AliHFEcuts(Form("HFEBackSub%s",appendixx.Data()),"Background sub Cuts");
100     //hfeBackgroundCuts->SetEtaRange(assETA);
101     hfeBackgroundCuts->SetEtaRange(-0.8,0.8);
102     hfeBackgroundCuts->SetPtRange(0.1,1e10);
103     hfeBackgroundCuts->SetMaxChi2perClusterTPC(4);
104     hfeBackgroundCuts->SetMinNClustersITS(ITSclustersback);
105     hfeBackgroundCuts->SetMinNClustersTPC(100);
106     hfeBackgroundCuts->SetMinNClustersTPCPID(80);
107     hfeBackgroundCuts->SetMaxImpactParam(1.,2.);
108     hfeBackgroundCuts->SetAODFilterBit(4);
109     //hfeBackgroundCuts->SetQAOn();                             // QA break
110     
111     AliHFEpid *pidbackground = backe->GetPIDBackground();
112     pidbackground->AddDetector("TPC", 0);
113     pidbackground->ConfigureTPCasymmetric(0.0,9999.,minTPCback,maxTPCback);
114     backe->GetPIDBackgroundQAManager()->SetHighResolutionHistos();
115     backe->SetHFEBackgroundCuts(hfeBackgroundCuts);
116     
117     // Selection of associated tracks for the pool
118     backe->SelectCategory1Tracks(kTRUE);
119     /*
120       if(useCat2Tracks){
121       backe->SelectCategory2Tracks(kTRUE);
122       backe-> SetITSMeanShift(-0.5);
123       }
124     */
125     
126     // apply opening angle cut to reduce file size
127     backe->SetMaxInvMass(0.3);
128     
129     task->SetHFEBackgroundSubtraction(backe);
130     //AliLog::SetClassDebugLevel("AliAnalysisTaskHFEFlowTPCTOFEPSP",3);
131     /////////////////////////////////////////////
132     /////////////////////////////////////////////
133     
134   } 
135
136   if(ptbinsmall){
137    
138     Int_t nBinsPt = 33;
139     Double_t binLimPt[34] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2,
140                              1.3, 1.4, 1.5, 1.75, 2., 2.25, 2.5, 2.75, 3.,3.25, 3.5, 3.75, 4.,4.25,4.5,4.75,5.,5.25,5.5,5.75,6.};
141     task.SetPtBinning(nBinsPt+1, binLimPt);
142   
143   } 
144
145
146   task->SetHFEVZEROEventPlane(0x0);
147   //AliLog::SetClassDebugLevel("AliAnalysisTaskHFEFlow",3);
148
149   mgr->AddTask(task);
150
151   TString containerName = mgr->GetCommonFileName();
152   containerName += ":";
153   containerName += appendixx.Data();
154
155   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
156   mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("list_%s",appendixx.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
157   mgr->ConnectInput(task,0, cinput );    
158
159   return NULL;
160
161   
162 }