]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/macros/AddTaskJetCorePP.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskJetCorePP.C
CommitLineData
ad869500 1
2
3AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
4 const Char_t* branchPrefix="clustersAOD",
255cb71c 5 const Char_t* jetAlgo="ANTIKT",
ad869500 6 Float_t jetParameterR = 0.4, //jet R
ad869500 7 UInt_t trkFilterMask = 272,
8 Float_t trackLowPtCut = 0.15,
8aa19603 9 const Char_t* jetbgAlgo="ANTIKT", //background jet algo
10 Float_t bgjetParameterR = 0.3, //R of jet to be removed while bg calc
11 Float_t bgMaxJetPt = 8.0, //max jet pt to be accepted to bg
d1405a52
ML
12 Int_t rndTrials = 2000, //number of trials to get jet free cell area
13 Float_t jetFreeAreaFrac = 0.75, //cell area free of jets
8aa19603 14 Float_t bgConeR = 0.4, //R of perp cone jet R
ad869500 15 Int_t collisionSystem = 0, //pp=0, pPb=1
16 Int_t offlineTriggerMask=AliVEvent::kMB, //MinBias=0
17 Int_t minContribVtx = 1,
18 Float_t vtxZMin = -10.0,
19 Float_t vtxZMax = 10.0,
20 Float_t centMin = 0.0,
21 Float_t centMax = 100.0,
22 Float_t triggerEtaCut = 0.9,
23 Float_t trackEtaCut = 0.9,
80ac66f6 24 const Char_t* nonStdFile="",
255cb71c 25 const Char_t* mcFullFlag="", // real="", all jets= "MC"
26 const Char_t* mcChargFlag="", // real="", charged jets = "MC2"
8aa19603 27 Bool_t bfillrespmx=0, // 0=dont fill resp mx histos, 1=fill histos
1afc79e9 28 Bool_t bDiceEff=0, // 0=leave efficiency as it is, 1= reduce efficiency by constant amount via SetFixedEfficiency
08d97d90 29 Bool_t bMomSmear=0, // 0=leave efficiency as it is, 1= reduce efficiency by constant amount via SetFixedEfficiency
49dc2855 30 Bool_t bDoubleBinning=0, // 0= 2GeV bin size 1= 1GeV/bin size
31 Bool_t bUseExchContainer=0, //
8e103a56 32 Int_t triggerType=0, //0=single incl trigger, 1=leading track, 2=hadron pt>10
33 Int_t evtRangeLow=0, //last digit of range of ESD event number
34 Int_t evtRangeHigh=9, //first digit of range of ESD event number
35 Float_t trigRangeLow=0, //trigger pT low bin boreder works with triggType=0
36 Float_t trigRangeHigh=50 //trigger pT high border works with triggType=0
ad869500 37 ){
ad869500 38 Printf("adding task jet response\n");
39
40 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
41 if(!mgr){
42 ::Error("AddTaskJetCorePP", "No analysis manager to connect to.");
43 return NULL;
44 }
45 if(!mgr->GetInputEventHandler()){
46 ::Error("AddTaskJetCorePP", "This task requires an input event handler.");
47 return NULL;
48 }
49
50 Float_t jetEtaMin = -0.9 + jetParameterR;
51 Float_t jetEtaMax = 0.9 - jetParameterR;
52
49dc2855 53 TString analBranch="";
54 TString analBranchBg=""; //jet to be removed from bg
55 TString analBranchFullMC=""; //full jets MC to be used with charged jets MC
56 TString analBranchChargMC=""; //charged jets
57 TString analBranchBgChargMC=""; //charged jets background
58 TString analBranchKine=""; //kine jets
59 TString analBranchBgKine=""; //kine jets background
60
61 TString mcFullSuffix=""; //MC = all jets
62 TString mcChargSuffix=""; //MC2= charged jets, MC = all jets
63
255cb71c 64
65
49dc2855 66 TString bpfx(branchPrefix);
ad869500 67 TString stJetAlgo(jetAlgo);
255cb71c 68 TString stJetBgAlgo(jetbgAlgo);
ad869500 69 stJetAlgo.ToUpper();
255cb71c 70 stJetBgAlgo.ToUpper();
80ac66f6 71
255cb71c 72 TString jet="";
73 TString jetbg="";
74 TString otherparams="";
8657923d 75 mcFullSuffix=Form("%s",mcFullFlag); //MC = all jets
76 mcChargSuffix=Form("%s",mcChargFlag); //MC2= charged jets, MC = all jets
77
49dc2855 78
79 jet = jet + "_" + stJetAlgo + Form("%02d",(Int_t) (10*jetParameterR)); // _ANTIKT02
8aa19603 80 jetbg = jetbg + "_" + stJetBgAlgo + Form("%02d",(Int_t) (10*bgjetParameterR));
49dc2855 81
82 if(!bpfx.Contains("KINE")){
80ac66f6 83
49dc2855 84 analBranch = bpfx;
85 analBranchBg = bpfx;
86
87 otherparams = otherparams + "_B0"; //bg mode
88 otherparams = otherparams + Form("_Filter%05d",(UInt_t) trkFilterMask);
89 otherparams = otherparams + Form("_Cut%05d",(Int_t) (1000*trackLowPtCut));
255cb71c 90
49dc2855 91 if(analBranch.BeginsWith("clustersAOD")){
92 otherparams = otherparams + Form("_Skip%02d",0);
93 }
8657923d 94
95 TString smearMC = (!bMomSmear) ? "" : mcChargSuffix; //smearing affects MC branch
96 analBranch = analBranch + smearMC + jet + otherparams; //antikt jet
97 analBranchBg = analBranchBg + smearMC + jetbg + otherparams; //kt bg jet
49dc2855 98
08d97d90 99 if(bDiceEff || bMomSmear){ //dicing efficiency relates rec only
100 analBranch = analBranch + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear); //dice=1, smear=0, change eff fraction =0
101 analBranchBg = analBranchBg + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear);
49dc2855 102 }
103
104 //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00
105 //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00_Detector10Fr0
106 //Skip00 none of the most energetic jets is ommited
107 //Cut00150 pT min cut on track
108 //Filter00272
109
49dc2855 110
111 if(mcChargSuffix.Length()>0 && mcChargSuffix=="MC2"){ //charged jets generator level
112 analBranchChargMC = bpfx + mcChargSuffix + jet + otherparams;
113 analBranchBgChargMC = bpfx + mcChargSuffix + jetbg + otherparams;
114 }
115
116 if(mcFullSuffix.Length()>0 && mcFullSuffix=="MC"){ //full jets generator level
117 analBranchFullMC = bpfx + mcFullSuffix + jet + otherparams;
118 }
119 }else{ //KINE JETS
120 //clustersKINECHARGED_ANTIKT02_Cut00150
121 otherparams = otherparams + Form("_Cut%05d",TMath::Nint(1000*trackLowPtCut));
122
123 analBranchKine = analBranchKine + bpfx + jet + otherparams;
124 analBranchBgKine = analBranchBgKine + bpfx + jetbg + otherparams;
1afc79e9
ML
125 }
126
49dc2855 127 TString analBranchTmp = analBranch;
255cb71c 128
49dc2855 129 if(bpfx.Contains("KINE")){
130 analBranchTmp=analBranchKine;
80ac66f6 131 }
49dc2855 132 AliAnalysisTaskJetCorePP *task = new AliAnalysisTaskJetCorePP(Form("JetCorePP_%s_%s_%d",analBranchTmp.Data(), mcChargSuffix.Data(), offlineTriggerMask));
ad869500 133
134 task->SetBranchName(analBranch.Data());
255cb71c 135 task->SetBranchNameFullMC(analBranchFullMC.Data());
136 task->SetBranchNameChargMC(analBranchChargMC.Data());
49dc2855 137 task->SetBranchNameKine(analBranchKine.Data());
138 task->SetBranchNameBg(analBranchBg.Data()); //kine jets
139 task->SetBranchNameBgChargMC(analBranchBgChargMC.Data()); //jet to be removed from bg
140 task->SetBranchNameBgKine(analBranchBgKine.Data()); //kine jets
ad869500 141 task->SetNonStdFile(nonStdFile);
142 task->SetSystem(collisionSystem);
143 task->SetJetR(jetParameterR);
8aa19603 144 task->SetBgJetR(bgjetParameterR);
145 task->SetBgMaxJetPt(bgMaxJetPt);
d1405a52
ML
146 task->SetRndTrials(rndTrials);
147 task->SetFreeAreaFrac(jetFreeAreaFrac);
8aa19603 148 task->SetBgConeR(bgConeR);
ad869500 149 task->SetOfflineTrgMask(offlineTriggerMask);
150 task->SetMinContribVtx(minContribVtx);
151 task->SetVtxZMin(vtxZMin);
152 task->SetVtxZMax(vtxZMax);
153 task->SetFilterMask(trkFilterMask);
154 task->SetCentMin(centMin);
155 task->SetCentMax(centMax);
156 task->SetJetEtaMin(jetEtaMin);
157 task->SetJetEtaMax(jetEtaMax);
158 task->SetTriggerEtaCut(triggerEtaCut);
159 task->SetTrackEtaCut(trackEtaCut);
160 task->SetTrackLowPtCut(trackLowPtCut);
8e103a56 161 task->SetTriggerType(triggerType);
162 task->SetEventNumberRangeLow(evtRangeLow);
163 task->SetEventNumberRangeHigh(evtRangeHigh);
164 task->SetTriggerPtRangeLow(trigRangeLow);
165 task->SetTriggerPtRangeHigh(trigRangeHigh);
8aa19603 166 task->SetFillResponseMatrix(bfillrespmx);
49dc2855 167 task->SetBinning(bDoubleBinning);
168 task->SetUseExchangeContainerInput(bUseExchContainer);
8e103a56 169
ad869500 170 task->SetDebugLevel(0); //No debug messages 0
171 mgr->AddTask(task);
49dc2855 172
8e103a56 173 //E= range of last two decimal numbers in event numbers
174 //Ptt range of the cosidered trigger bin
ad869500 175 AliAnalysisDataContainer *coutputJetCorePP = mgr->CreateContainer(
49dc2855 176 Form("pwgjejetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",analBranchTmp.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh),
ad869500 177 TList::Class(),
178 AliAnalysisManager::kOutputContainer,
49dc2855 179 Form("%s:PWGJE_jetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",AliAnalysisManager::GetCommonFileName(),analBranchTmp.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh)
ad869500 180 );
181
182 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
49dc2855 183 //FK//mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
184
185 if(bUseExchContainer){
186
187 if(analBranchKine.Length()>0){ //kine jets = input slot 1
188 AliAnalysisDataContainer* containerKineJets = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchKine.Data());
189 mgr->ConnectInput(task, 1, containerKineJets);
190 }
191 if(analBranchBgKine.Length()>0){ //kine jets to be removed from bg = input slot 2
3d1fac8a 192 AliAnalysisDataContainer* containerKineJetsBg = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchBgKine.Data());
193 mgr->ConnectInput(task, 2, containerKineJetsBg);
49dc2855 194 }
195 }
ad869500 196
49dc2855 197 mgr->ConnectOutput(task, 1, coutputJetCorePP);
ad869500 198 return task;
199}