1 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* nonStdFile="",UInt_t filterMask = 32, Int_t iPhysicsSelectionFlag = AliVEvent::kMB,UInt_t iEventSelectionMask = 0,Int_t iCl = 0);
\r
4 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelectionFlag = AliVEvent::kMB,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,char* back = ""){
\r
6 TString cBack = back;
\r
8 AliAnalysisTaskJetSpectrum2 *js = 0;
\r
10 if(iFlag&(1<<0)){ // UA104
\r
11 js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
12 js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
14 if(iFlag&(1<<1)){ // ANTIKT 04
\r
15 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
16 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
17 // cross check MC only background subtration
\r
18 js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
20 if(iFlag&(1<<2)){ // KT 04
\r
21 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
\r
22 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
24 if(iFlag&(1<<3)){ // SISCONE 04
\r
25 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
26 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
28 // here can go other radii
\r
30 else { // only the data ... no MC
\r
31 if(iFlag&(1<<0)){ // UA104
\r
32 js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask,1);
\r
34 if(iFlag&(1<<1)){ // ANTIKT 04
\r
35 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
37 if(iFlag&(1<<2)){ // KT 04
\r
38 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
\r
40 if(iFlag&(1<<3)){ // SISCONE 04
\r
41 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
48 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* nonStdFile,UInt_t filterMask,Int_t iPhysicsSelectionFlag,UInt_t iEventSelectionMask,Int_t iCl)
\r
50 // Creates a jet fider task, configures it and adds it to the analysis manager.
\r
51 // Get the pointer to the existing analysis manager via the static access method.
\r
52 //==============================================================================
\r
53 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
55 ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");
\r
59 // Check the analysis type using the event handlers connected to the analysis manager.
\r
60 //==============================================================================
\r
61 if (!mgr->GetInputEventHandler()) {
\r
62 ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");
\r
66 TString type = mgr->GetInputEventHandler()->GetDataType();
\r
67 TString typeRec(bRec);
\r
68 TString typeGen(bGen);
\r
73 // Create the task and configure it.
\r
74 //===========================================================================
\r
76 AliAnalysisTaskJetSpectrum2* pwg4spec = new AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl));
\r
77 if(iCl)pwg4spec->SetEventClass(iCl);
\r
79 // add the filter mask for non default jets branches
\r
81 cAdd += Form("_Filter%05d",filterMask);
\r
85 pwg4spec->SetBranchGen(bGen);
\r
86 // if(typeGen.Contains("JETSAOD")&&!typeGen.Contains("MC"))pwg4spec->SetBranchGen(Form("%s%s",bGen,cAdd.Data()));
\r
88 pwg4spec->SetBranchRec(bRec);
\r
89 // if(typeRec.Contains("JETSAOD")&&!typeRec.Contains("MC")) pwg4spec->SetBranchRec(Form("%s%s",bRec,cAdd.Data()));
\r
92 pwg4spec->SetFilterMask(filterMask);
\r
93 pwg4spec->SetUseGlobalSelection(kTRUE);
\r
94 pwg4spec->SetMinJetPt(5.);
\r
95 pwg4spec->SetJetEtaWindow(0.4);
\r
100 // Assume all jets are not yet produced
\r
101 // pwg4spec->SetAODJetInput(kTRUE);
\r
102 pwg4spec->SetAODTrackInput(kTRUE);
\r
103 pwg4spec->SetAODMCInput(kTRUE);
\r
106 if(mgr->GetMCtruthEventHandler()){
\r
107 pwg4spec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);
\r
111 if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
112 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
114 else if (typeRec.Contains("AODMC2")){
\r
115 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
117 else if (typeRec.Contains("AODMC")){
\r
118 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
120 else { // catch akk use AOD
\r
121 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
124 if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
125 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
127 else if (typeGen.Contains("AODMC2")){
\r
128 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
130 else if (typeGen.Contains("AODMC")){
\r
131 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
133 else if (typeGen.Length()>0){ // catch all use AOD
\r
134 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
137 if(iPhysicsSelectionFlag)pwg4spec->SelectCollisionCandidates(iPhysicsSelectionFlag);
\r
138 if(iEventSelectionMask)pwg4spec->SetEventSelectionMask(iEventSelectionMask);
\r
140 // pwg4spec->SetDebugLevel(10);
\r
143 // to fetch the AOD from the AOD extension ouput
\r
144 if(strlen(nonStdFile))pwg4spec->SetNonStdFile(nonStdFile);
\r
145 mgr->AddTask(pwg4spec);
\r
147 // Create ONLY the output containers for the data produced by the task.
\r
148 // Get and connect other common input/output containers via the manager as below
\r
149 //==============================================================================
\r
150 AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer(Form("pwg4spec2_%s_%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2_%s_%s_%010d_Class%02d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl));
\r
152 mgr->ConnectInput (pwg4spec, 0, mgr->GetCommonInputContainer());
\r
153 mgr->ConnectOutput (pwg4spec, 0, mgr->GetCommonOutputContainer());
\r
154 mgr->ConnectOutput (pwg4spec, 1, coutput1_Spec );
\r
159 void SetAODInput(AliAnalysisTaskJetSpectrum2 *taskJetSpectrum){
\r
160 taskJetSpectrum->SetAODJetInput(kTRUE);
\r
161 taskJetSpectrum->SetAODTrackInput(kTRUE);
\r
162 // taskJetSpectrum->SetUseGlobalSelection(kFALSE);
\r