]>
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 |
49dc2855 | 29 | Bool_t bDoubleBinning=0, // 0= 2GeV bin size 1= 1GeV/bin size |
30 | Bool_t bUseExchContainer=0, // | |
8e103a56 | 31 | Int_t triggerType=0, //0=single incl trigger, 1=leading track, 2=hadron pt>10 |
32 | Int_t evtRangeLow=0, //last digit of range of ESD event number | |
33 | Int_t evtRangeHigh=9, //first digit of range of ESD event number | |
34 | Float_t trigRangeLow=0, //trigger pT low bin boreder works with triggType=0 | |
35 | Float_t trigRangeHigh=50 //trigger pT high border works with triggType=0 | |
ad869500 | 36 | ){ |
ad869500 | 37 | Printf("adding task jet response\n"); |
38 | ||
39 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
40 | if(!mgr){ | |
41 | ::Error("AddTaskJetCorePP", "No analysis manager to connect to."); | |
42 | return NULL; | |
43 | } | |
44 | if(!mgr->GetInputEventHandler()){ | |
45 | ::Error("AddTaskJetCorePP", "This task requires an input event handler."); | |
46 | return NULL; | |
47 | } | |
48 | ||
49 | Float_t jetEtaMin = -0.9 + jetParameterR; | |
50 | Float_t jetEtaMax = 0.9 - jetParameterR; | |
51 | ||
49dc2855 | 52 | TString analBranch=""; |
53 | TString analBranchBg=""; //jet to be removed from bg | |
54 | TString analBranchFullMC=""; //full jets MC to be used with charged jets MC | |
55 | TString analBranchChargMC=""; //charged jets | |
56 | TString analBranchBgChargMC=""; //charged jets background | |
57 | TString analBranchKine=""; //kine jets | |
58 | TString analBranchBgKine=""; //kine jets background | |
59 | ||
60 | TString mcFullSuffix=""; //MC = all jets | |
61 | TString mcChargSuffix=""; //MC2= charged jets, MC = all jets | |
62 | ||
255cb71c | 63 | |
64 | ||
49dc2855 | 65 | TString bpfx(branchPrefix); |
ad869500 | 66 | TString stJetAlgo(jetAlgo); |
255cb71c | 67 | TString stJetBgAlgo(jetbgAlgo); |
ad869500 | 68 | stJetAlgo.ToUpper(); |
255cb71c | 69 | stJetBgAlgo.ToUpper(); |
80ac66f6 | 70 | |
255cb71c | 71 | TString jet=""; |
72 | TString jetbg=""; | |
73 | TString otherparams=""; | |
49dc2855 | 74 | |
75 | jet = jet + "_" + stJetAlgo + Form("%02d",(Int_t) (10*jetParameterR)); // _ANTIKT02 | |
8aa19603 | 76 | jetbg = jetbg + "_" + stJetBgAlgo + Form("%02d",(Int_t) (10*bgjetParameterR)); |
49dc2855 | 77 | |
78 | if(!bpfx.Contains("KINE")){ | |
80ac66f6 | 79 | |
49dc2855 | 80 | analBranch = bpfx; |
81 | analBranchBg = bpfx; | |
82 | ||
83 | otherparams = otherparams + "_B0"; //bg mode | |
84 | otherparams = otherparams + Form("_Filter%05d",(UInt_t) trkFilterMask); | |
85 | otherparams = otherparams + Form("_Cut%05d",(Int_t) (1000*trackLowPtCut)); | |
255cb71c | 86 | |
49dc2855 | 87 | if(analBranch.BeginsWith("clustersAOD")){ |
88 | otherparams = otherparams + Form("_Skip%02d",0); | |
89 | } | |
90 | ||
91 | analBranch = analBranch + jet + otherparams; //antikt jet | |
92 | analBranchBg = analBranchBg + jetbg + otherparams; //kt bg jet | |
93 | ||
94 | if(bDiceEff){ //dicing efficiency relates rec only | |
95 | analBranch = analBranch + "Detector10Fr0"; //dice=1, smear=0, change eff fraction =0 | |
96 | analBranchBg = analBranchBg + "Detector10Fr0"; | |
97 | } | |
98 | ||
99 | //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00 | |
100 | //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00_Detector10Fr0 | |
101 | //Skip00 none of the most energetic jets is ommited | |
102 | //Cut00150 pT min cut on track | |
103 | //Filter00272 | |
104 | ||
105 | mcFullSuffix=Form("%s",mcFullFlag); //MC = all jets | |
106 | mcChargSuffix=Form("%s",mcChargFlag); //MC2= charged jets, MC = all jets | |
107 | ||
108 | if(mcChargSuffix.Length()>0 && mcChargSuffix=="MC2"){ //charged jets generator level | |
109 | analBranchChargMC = bpfx + mcChargSuffix + jet + otherparams; | |
110 | analBranchBgChargMC = bpfx + mcChargSuffix + jetbg + otherparams; | |
111 | } | |
112 | ||
113 | if(mcFullSuffix.Length()>0 && mcFullSuffix=="MC"){ //full jets generator level | |
114 | analBranchFullMC = bpfx + mcFullSuffix + jet + otherparams; | |
115 | } | |
116 | }else{ //KINE JETS | |
117 | //clustersKINECHARGED_ANTIKT02_Cut00150 | |
118 | otherparams = otherparams + Form("_Cut%05d",TMath::Nint(1000*trackLowPtCut)); | |
119 | ||
120 | analBranchKine = analBranchKine + bpfx + jet + otherparams; | |
121 | analBranchBgKine = analBranchBgKine + bpfx + jetbg + otherparams; | |
1afc79e9 ML |
122 | } |
123 | ||
49dc2855 | 124 | TString analBranchTmp = analBranch; |
255cb71c | 125 | |
49dc2855 | 126 | if(bpfx.Contains("KINE")){ |
127 | analBranchTmp=analBranchKine; | |
80ac66f6 | 128 | } |
49dc2855 | 129 | AliAnalysisTaskJetCorePP *task = new AliAnalysisTaskJetCorePP(Form("JetCorePP_%s_%s_%d",analBranchTmp.Data(), mcChargSuffix.Data(), offlineTriggerMask)); |
ad869500 | 130 | |
131 | task->SetBranchName(analBranch.Data()); | |
255cb71c | 132 | task->SetBranchNameFullMC(analBranchFullMC.Data()); |
133 | task->SetBranchNameChargMC(analBranchChargMC.Data()); | |
49dc2855 | 134 | task->SetBranchNameKine(analBranchKine.Data()); |
135 | task->SetBranchNameBg(analBranchBg.Data()); //kine jets | |
136 | task->SetBranchNameBgChargMC(analBranchBgChargMC.Data()); //jet to be removed from bg | |
137 | task->SetBranchNameBgKine(analBranchBgKine.Data()); //kine jets | |
ad869500 | 138 | task->SetNonStdFile(nonStdFile); |
139 | task->SetSystem(collisionSystem); | |
140 | task->SetJetR(jetParameterR); | |
8aa19603 | 141 | task->SetBgJetR(bgjetParameterR); |
142 | task->SetBgMaxJetPt(bgMaxJetPt); | |
d1405a52 ML |
143 | task->SetRndTrials(rndTrials); |
144 | task->SetFreeAreaFrac(jetFreeAreaFrac); | |
8aa19603 | 145 | task->SetBgConeR(bgConeR); |
ad869500 | 146 | task->SetOfflineTrgMask(offlineTriggerMask); |
147 | task->SetMinContribVtx(minContribVtx); | |
148 | task->SetVtxZMin(vtxZMin); | |
149 | task->SetVtxZMax(vtxZMax); | |
150 | task->SetFilterMask(trkFilterMask); | |
151 | task->SetCentMin(centMin); | |
152 | task->SetCentMax(centMax); | |
153 | task->SetJetEtaMin(jetEtaMin); | |
154 | task->SetJetEtaMax(jetEtaMax); | |
155 | task->SetTriggerEtaCut(triggerEtaCut); | |
156 | task->SetTrackEtaCut(trackEtaCut); | |
157 | task->SetTrackLowPtCut(trackLowPtCut); | |
8e103a56 | 158 | task->SetTriggerType(triggerType); |
159 | task->SetEventNumberRangeLow(evtRangeLow); | |
160 | task->SetEventNumberRangeHigh(evtRangeHigh); | |
161 | task->SetTriggerPtRangeLow(trigRangeLow); | |
162 | task->SetTriggerPtRangeHigh(trigRangeHigh); | |
8aa19603 | 163 | task->SetFillResponseMatrix(bfillrespmx); |
49dc2855 | 164 | task->SetBinning(bDoubleBinning); |
165 | task->SetUseExchangeContainerInput(bUseExchContainer); | |
8e103a56 | 166 | |
ad869500 | 167 | task->SetDebugLevel(0); //No debug messages 0 |
168 | mgr->AddTask(task); | |
49dc2855 | 169 | |
8e103a56 | 170 | //E= range of last two decimal numbers in event numbers |
171 | //Ptt range of the cosidered trigger bin | |
ad869500 | 172 | AliAnalysisDataContainer *coutputJetCorePP = mgr->CreateContainer( |
49dc2855 | 173 | 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 | 174 | TList::Class(), |
175 | AliAnalysisManager::kOutputContainer, | |
49dc2855 | 176 | 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 | 177 | ); |
178 | ||
179 | mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer()); | |
49dc2855 | 180 | //FK//mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer()); |
181 | ||
182 | if(bUseExchContainer){ | |
183 | ||
184 | if(analBranchKine.Length()>0){ //kine jets = input slot 1 | |
185 | AliAnalysisDataContainer* containerKineJets = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchKine.Data()); | |
186 | mgr->ConnectInput(task, 1, containerKineJets); | |
187 | } | |
188 | if(analBranchBgKine.Length()>0){ //kine jets to be removed from bg = input slot 2 | |
189 | //XXXX// AliAnalysisDataContainer* containerKineJetsBg = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchBgKine.Data()); | |
190 | //XXXX// mgr->ConnectInput(task, 2, containerKineJetsBg); | |
191 | } | |
192 | } | |
ad869500 | 193 | |
49dc2855 | 194 | mgr->ConnectOutput(task, 1, coutputJetCorePP); |
ad869500 | 195 | return task; |
196 | } |