1 AliAnalysisTaskJetChem *AddTaskJetChem(const char* recJetsBranch = "clustersAOD_ANTIKT02_B2_Filter00768_Cut00150_Skip00", Int_t eventClass = 1, Int_t K0type = AliAnalysisTaskJetChem::kOffl, Int_t Latype = AliAnalysisTaskJetChem::kOffl, Int_t ALatype = AliAnalysisTaskJetChem::kOffl, Bool_t IsArmenterosSelected = kTRUE, Bool_t IsJetPtBiasSelected = kTRUE, Double_t jetradius = 0.2, Double_t V0EtaCut = 0.7, Double_t jetEtaCut = 0.5, Bool_t IsMC = kFALSE, Double_t DeltaVtxZCut = 0.1, Int_t filtermask = 768, Int_t fdebug)
3 // Creates a JetChem task,
4 // configures it and adds it to the analysis manager.
7 // Get the pointer to the existing analysis manager via the static access method.
8 //==============================================================================
9 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11 ::Error("AddTaskJetChem", "No analysis manager to connect to.");
15 // Check the analysis type using the event handlers connected to the analysis manager.
16 //==============================================================================
17 if (!mgr->GetInputEventHandler()) {
18 ::Error("AddTaskJetChem", "This task requires an input event handler");
22 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD", or "MC"?
23 Printf("Data Type: %s", type.Data());
26 // Create the task and configure it.
27 //===========================================================================
28 AliAnalysisTaskJetChem *task = new AliAnalysisTaskJetChem("TaskJetChem");
30 Int_t debug = fdebug; // debug level
31 if(debug>=0) task->SetDebugLevel(debug);
33 TString branchRecJets(recJetsBranch);
34 if(!branchRecJets.Contains("noRecJets")) task->SetBranchRecJets(branchRecJets);
36 // Double_t V0EtaCut, Double_t jetEtaCut, Bool_t IsMC, Double_t DeltaVtxZCut can be set externally
38 task->SetDeltaZVertexCut(DeltaVtxZCut);
39 task->SetBranchRecBackClusters("clustersAOD_KT04_B0_Filter00768_Cut00150_Skip00");
40 //task->SetEventSelectionMask(AliVEvent::kMB); //for 2010 Pb-Pb data !!
41 task->SetEventSelectionMask(AliVEvent::kAnyINT | AliVEvent::kCentral | AliVEvent::kSemiCentral); //event selection for 2011 Pb-Pb data
42 task->SetEventClass(eventClass);
43 task->SetK0Type(K0type);
44 task->SetLaType(Latype);
45 task->SetALaType(ALatype);
46 task->SetSelectArmenteros(IsArmenterosSelected);
47 task->SetAnalysisMC(IsMC); // 0: real data, 1: MC data
49 if(K0type == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskK0(768);
50 if(Latype == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskLa(768);
51 if(ALatype == AliAnalysisTaskJetChem::kOnFlyPrim || AliAnalysisTaskJetChem::kOfflPrim) task->SetFilterMaskALa(768);
53 task->SetFFRadius(jetradius); //jet cone size
54 task->SetFilterMask(filtermask);//2011 Track FilterMask
56 //Cuts---------------------------------
58 task->SetTrackCuts(0.15, -0.9, 0.9, 0., 2*TMath::Pi());// (pt Cut, daughtertrack rap's, phi min max cuts)
59 task->SetJetCuts(5., (-1)*jetEtaCut, jetEtaCut, 0., 2*TMath::Pi());//(jet pt Cut, jet acceptance, phi min max cuts)
61 task->SetCuttrackPosEta(0.8);
62 task->SetCuttrackNegEta(0.8);
63 task->SetCutV0Eta(V0EtaCut); //pseudorapidity cut, dont use 0.5, because too many tracks would fall out of the acceptance; recommended cut for jet analysis of strange particles: 0.75
64 task->SetCosOfPointingAngle(0.998);
65 task->SetAcceptKinkDaughters(kFALSE);//accept kink daughters -> dont use this cut anymore
66 task->SetRequireTPCRefit(kTRUE);
67 task->SetCutV0DecayMin(0.);//multiples of ctau, cut on 2D decay distance over transverse mom. (for K0s, Lambda, Antilambda)
68 task->SetCutV0DecayMax(5.);//multiples of ctau (for K0s, Lambda, Antilambda) Lee Barnby uses 3.0, use 5.0!!!!!
69 task->SetCutDcaV0Daughters(1.);//cut value in multiples of sigma default: 1.
70 task->SetCutDcaPosToPrimVertex(0.1); //cut value in cm
71 task->SetCutDcaNegToPrimVertex(0.1); //cut value in cm
72 task->SetCutV0RadiusMin(5.);//in cm previous value was 0.9 cm
73 task->SetCutV0RadiusMax(100.);//in cm
74 task->SetCutBetheBloch(3.);//in units of sigma
76 //task->SetCutRatioTPC(0.8);//Cut on Ratio of crossed Rows over findable clusters in TPC -> not used anymore by Strangeness PAG group
77 //task->SetCuttrackPosNcls(70);
78 //task->SetCuttrackNegNcls(70);
79 //task->SetCuttrackPosRap(100000.0);
80 //task->SetCuttrackNegRap(100000.0);
81 //task->SetCutV0Rap(0.5);
82 //task->SetCutV0totMom(10000.);//tot Mom of V0s
86 if(IsArmenterosSelected == 1){
87 task->SetCutArmenteros(0.2);
89 task->SetCutArmenteros(0.);
92 if(IsJetPtBiasSelected == 1){
93 task->SetFFMinLTrackPt(5.);//at least one track must have a track-pt higher or equal than this JetMinPt value
95 task->SetFFMinLTrackPt(-1.);
98 //------------------------------------
100 task->SetFFHistoBins();
101 task->SetQAJetHistoBins();
102 task->SetQATrackHistoBins();
103 task->SetFFInvMassHistoBins();
104 task->SetPhiCorrInvMassHistoBins();
105 task->SetFFInvMassLaHistoBins();
106 task->SetPhiCorrInvMassLaHistoBins();
110 // Create ONLY the output containers for the data produced by the task.
111 // Get and connect other common input/output containers via the manager as below
112 //==============================================================================
115 if(K0type == AliAnalysisTaskJetChem::kOnFly) strK0type = "OnFly";
116 if(K0type == AliAnalysisTaskJetChem::kOnFlyPID) strK0type = "OnFlyPID";
117 if(K0type == AliAnalysisTaskJetChem::kOnFlydEdx) strK0type = "OnFlydEdx";
118 if(K0type == AliAnalysisTaskJetChem::kOnFlyPrim) strK0type = "OnFlyPrim";
119 if(K0type == AliAnalysisTaskJetChem::kOffl) strK0type = "Offl";
120 if(K0type == AliAnalysisTaskJetChem::kOfflPID) strK0type = "OfflPID";
121 if(K0type == AliAnalysisTaskJetChem::kOffldEdx) strK0type = "OffldEdx";
122 if(K0type == AliAnalysisTaskJetChem::kOfflPrim) strK0type = "OfflPrim";
125 if(Latype == AliAnalysisTaskJetChem::kOnFly) strLatype = "OnFly";
126 if(Latype == AliAnalysisTaskJetChem::kOnFlyPID) strLatype = "OnFlyPID";
127 if(Latype == AliAnalysisTaskJetChem::kOnFlydEdx) strLatype = "OnFlydEdx";
128 if(Latype == AliAnalysisTaskJetChem::kOnFlyPrim) strLatype = "OnFlyPrim";
129 if(Latype == AliAnalysisTaskJetChem::kOffl) strLatype = "Offl";
130 if(Latype == AliAnalysisTaskJetChem::kOfflPID) strLatype = "OfflPID";
131 if(Latype == AliAnalysisTaskJetChem::kOffldEdx) strLatype = "OffldEdx";
132 if(Latype == AliAnalysisTaskJetChem::kOfflPrim) strLatype = "OfflPrim";
135 if(ALatype == AliAnalysisTaskJetChem::kOnFly) strALatype = "OnFly";
136 if(ALatype == AliAnalysisTaskJetChem::kOnFlyPID) strALatype = "OnFlyPID";
137 if(ALatype == AliAnalysisTaskJetChem::kOnFlydEdx) strALatype = "OnFlydEdx";
138 if(ALatype == AliAnalysisTaskJetChem::kOnFlyPrim) strALatype = "OnFlyPrim";
139 if(ALatype == AliAnalysisTaskJetChem::kOffl) strALatype = "Offl";
140 if(ALatype == AliAnalysisTaskJetChem::kOfflPID) strALatype = "OfflPID";
141 if(ALatype == AliAnalysisTaskJetChem::kOffldEdx) strALatype = "OffldEdx";
142 if(ALatype == AliAnalysisTaskJetChem::kOfflPrim) strALatype = "OfflPrim";
144 if((IsArmenterosSelected == 0) && (IsJetPtBiasSelected == 0)){
145 TString listName1(Form("PWG4_JetChem_%s_%s_cl%d",branchRecJets.Data(),strK0type.Data(),eventClass));
146 AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName1,
148 AliAnalysisManager::kOutputContainer,
149 Form("%s:PWG4_zimmerma_JetChem",AliAnalysisManager::GetCommonFileName()));
153 if((IsArmenterosSelected == 1) && (IsJetPtBiasSelected == 0)){
154 TString listName2(Form("PWG4_JetChem_%s_%s_cl%d_Armenteros",branchRecJets.Data(),strK0type.Data(),eventClass));
155 AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName2,
157 AliAnalysisManager::kOutputContainer,
158 Form("%s:PWG4_zimmerma_JetChem_Armenteros",AliAnalysisManager::GetCommonFileName()));
163 if((IsArmenterosSelected == 0) && (IsJetPtBiasSelected == 1)) {
164 TString listName3(Form("PWG4_JetChem_%s_%s_cl%d_JetPtbias",branchRecJets.Data(),strK0type.Data(),eventClass));
165 AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName3,
167 AliAnalysisManager::kOutputContainer,
168 Form("%s:PWG4_zimmerma_JetChem_JetPtBias",AliAnalysisManager::GetCommonFileName()));
171 if((IsArmenterosSelected == 1) && (IsJetPtBiasSelected == 1)) {
172 TString listName4(Form("PWG4_JetChem_%s_%s_cl%d_Armenteros_JetPtBias",branchRecJets.Data(),strK0type.Data(),eventClass));
173 AliAnalysisDataContainer *coutput_JetChem = mgr->CreateContainer(listName4,
175 AliAnalysisManager::kOutputContainer,
176 Form("%s:PWG4_zimmerma_JetChem_Armenteros_JetPtBias",AliAnalysisManager::GetCommonFileName()));
183 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
184 mgr->ConnectOutput(task, 1, coutput_JetChem);