]>
Commit | Line | Data |
---|---|---|
ad869500 | 1 | |
2 | ||
3 | AliAnalysisTaskJetCorePP* 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 | } |