3 AliAnalysisTaskJetCorePP* AddTaskJetCorePP(
4 const Char_t* branchPrefix="clustersAOD",
5 const Char_t* jetAlgo="ANTIKT",
6 Float_t jetParameterR = 0.4, //jet R
7 UInt_t trkFilterMask = 272,
8 Float_t trackLowPtCut = 0.15,
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
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
14 Float_t bgConeR = 0.4, //R of perp cone jet R
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,
24 const Char_t* nonStdFile="",
25 const Char_t* mcFullFlag="", // real="", all jets= "MC"
26 const Char_t* mcChargFlag="", // real="", charged jets = "MC2"
27 Bool_t bfillrespmx=0, // 0=dont fill resp mx histos, 1=fill histos
28 Bool_t bDiceEff=0, // 0=leave efficiency as it is, 1= reduce efficiency by constant amount via SetFixedEfficiency
29 Int_t triggerType=0, //0=single incl trigger, 1=leading track, 2=hadron pt>10
30 Int_t evtRangeLow=0, //last digit of range of ESD event number
31 Int_t evtRangeHigh=9, //first digit of range of ESD event number
32 Float_t trigRangeLow=0, //trigger pT low bin boreder works with triggType=0
33 Float_t trigRangeHigh=50 //trigger pT high border works with triggType=0
36 Printf("adding task jet response\n");
38 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
40 ::Error("AddTaskJetCorePP", "No analysis manager to connect to.");
43 if(!mgr->GetInputEventHandler()){
44 ::Error("AddTaskJetCorePP", "This task requires an input event handler.");
48 Float_t jetEtaMin = -0.9 + jetParameterR;
49 Float_t jetEtaMax = 0.9 - jetParameterR;
51 TString analBranch(branchPrefix);
52 TString analBranchBg(branchPrefix); // kT bg jets
53 TString analBranchFullMC=""; //full jets MC to be used with charged jets MC
54 TString analBranchChargMC=""; //charged jets
55 TString analBranchBgChargMC=""; //charged jets kt background
58 TString stJetAlgo(jetAlgo);
59 TString stJetBgAlgo(jetbgAlgo);
61 stJetBgAlgo.ToUpper();
66 TString otherparams="";
67 jet = jet + "_" + stJetAlgo + Form("%02d",(Int_t) (10*jetParameterR));
68 jetbg = jetbg + "_" + stJetBgAlgo + Form("%02d",(Int_t) (10*bgjetParameterR));
70 otherparams = otherparams + "_B0"; //bg mode
71 otherparams = otherparams + Form("_Filter%05d",(UInt_t) trkFilterMask);
72 otherparams = otherparams + Form("_Cut%05d",(Int_t) (1000*trackLowPtCut));
74 if(analBranch.BeginsWith("clustersAOD")){
75 otherparams = otherparams + Form("_Skip%02d",0);
78 analBranch = analBranch + jet + otherparams; //antikt jet
79 analBranchBg = analBranchBg + jetbg + otherparams; //kt bg jet
81 if(bDiceEff){ //dicing efficiency relates rec only
82 analBranch = analBranch + "Detector10Fr0"; //dice=1, smear=0, change eff fraction =0
83 analBranchBg = analBranchBg + "Detector10Fr0";
86 //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00
87 //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00_Detector10Fr0
88 //Skip00 none of the most energetic jets is ommited
89 //Cut00150 pT min cut on track
92 TString mcFullSuffix(mcFullFlag); //MC = all jets
93 TString mcChargSuffix(mcChargFlag); //MC2= charged jets, MC = all jets
95 if(mcChargSuffix.Length()>0 && mcChargSuffix=="MC2"){ //charged jets generator level
96 analBranchChargMC = branchPrefix + mcChargSuffix + jet + otherparams;
97 analBranchBgChargMC = branchPrefix + mcChargSuffix + jetbg + otherparams;
100 if(mcFullSuffix.Length()>0 && mcFullSuffix=="MC"){ //full jets generator level
101 analBranchFullMC = branchPrefix + mcFullSuffix + jet + otherparams;
106 AliAnalysisTaskJetCorePP *task = new AliAnalysisTaskJetCorePP(Form("JetCorePP_%s_%s_%d",analBranch.Data(), mcChargSuffix.Data(), offlineTriggerMask));
108 task->SetBranchName(analBranch.Data());
109 task->SetBranchNameFullMC(analBranchFullMC.Data());
110 task->SetBranchNameChargMC(analBranchChargMC.Data());
111 task->SetBranchNameBg(analBranchBg.Data()); //kt bg jets
112 task->SetBranchNameBgChargMC(analBranchBgChargMC.Data()); //kt bg jets
113 task->SetNonStdFile(nonStdFile);
114 task->SetSystem(collisionSystem);
115 task->SetJetR(jetParameterR);
116 task->SetBgJetR(bgjetParameterR);
117 task->SetBgMaxJetPt(bgMaxJetPt);
118 task->SetRndTrials(rndTrials);
119 task->SetFreeAreaFrac(jetFreeAreaFrac);
120 task->SetBgConeR(bgConeR);
121 task->SetOfflineTrgMask(offlineTriggerMask);
122 task->SetMinContribVtx(minContribVtx);
123 task->SetVtxZMin(vtxZMin);
124 task->SetVtxZMax(vtxZMax);
125 task->SetFilterMask(trkFilterMask);
126 task->SetCentMin(centMin);
127 task->SetCentMax(centMax);
128 task->SetJetEtaMin(jetEtaMin);
129 task->SetJetEtaMax(jetEtaMax);
130 task->SetTriggerEtaCut(triggerEtaCut);
131 task->SetTrackEtaCut(trackEtaCut);
132 task->SetTrackLowPtCut(trackLowPtCut);
133 task->SetTriggerType(triggerType);
134 task->SetEventNumberRangeLow(evtRangeLow);
135 task->SetEventNumberRangeHigh(evtRangeHigh);
136 task->SetTriggerPtRangeLow(trigRangeLow);
137 task->SetTriggerPtRangeHigh(trigRangeHigh);
138 task->SetFillResponseMatrix(bfillrespmx);
140 task->SetDebugLevel(0); //No debug messages 0
142 //E= range of last two decimal numbers in event numbers
143 //Ptt range of the cosidered trigger bin
144 AliAnalysisDataContainer *coutputJetCorePP = mgr->CreateContainer(
145 Form("pwgjejetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",analBranch.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh),
147 AliAnalysisManager::kOutputContainer,
148 Form("%s:PWGJE_jetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",AliAnalysisManager::GetCommonFileName(),analBranch.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh)
151 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
152 mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
153 mgr->ConnectOutput(task, 1, coutputJetCorePP);