1 Bool_t ConfigWithFlagsJetSpectrum2();
\r
2 AliAnalysisTaskJetSpectrum2 *jetspec = 0;
\r
4 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
7 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
9 TString cBack = back;
\r
11 AliAnalysisTaskJetSpectrum2 *js = 0;
\r
13 if(iFlag&(1<<0)){ // UA104
\r
14 js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
15 js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
17 if(iFlag&(1<<1)){ // ANTIKT 04
\r
18 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
19 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
20 // cross check MC only background subtration
\r
21 js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
23 if(iFlag&(1<<2)){ // KT 04
\r
24 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
\r
25 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
27 if(iFlag&(1<<3)){ // SISCONE 04
\r
28 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
29 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
31 // here can go other radii
\r
33 else { // only the data ... no MC
\r
34 if(iFlag&(1<<0)){ // UA104
\r
35 js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask,1);
\r
37 if(iFlag&(1<<1)){ // ANTIKT 04
\r
38 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
40 if(iFlag&(1<<2)){ // KT 04
\r
41 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
\r
43 if(iFlag&(1<<3)){ // SISCONE 04
\r
44 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
\r
51 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* nonStdFile,UInt_t filterMask,Int_t iPhysicsSelectionFlag,UInt_t iEventSelectionMask,Int_t iCl)
\r
53 // Creates a jet fider task, configures it and adds it to the analysis manager.
\r
54 // Get the pointer to the existing analysis manager via the static access method.
\r
55 //==============================================================================
\r
56 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
58 ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");
\r
62 // Check the analysis type using the event handlers connected to the analysis manager.
\r
63 //==============================================================================
\r
64 if (!mgr->GetInputEventHandler()) {
\r
65 ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");
\r
69 TString type = mgr->GetInputEventHandler()->GetDataType();
\r
70 TString typeRec(bRec);
\r
71 TString typeGen(bGen);
\r
76 // Create the task and configure it.
\r
77 //===========================================================================
\r
79 jetspec = new AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl));
\r
80 if(iCl)jetspec->SetEventClass(iCl);
\r
82 // add the filter mask for non default jets branches
\r
84 cAdd += Form("_Filter%05d",filterMask);
\r
88 jetspec->SetBranchGen(bGen);
\r
89 // if(typeGen.Contains("JETSAOD")&&!typeGen.Contains("MC"))jetspec->SetBranchGen(Form("%s%s",bGen,cAdd.Data()));
\r
91 jetspec->SetBranchRec(bRec);
\r
92 // if(typeRec.Contains("JETSAOD")&&!typeRec.Contains("MC")) jetspec->SetBranchRec(Form("%s%s",bRec,cAdd.Data()));
\r
97 // Assume all jets are not yet produced
\r
98 // jetspec->SetAODJetInput(kTRUE);
\r
99 jetspec->SetAODTrackInput(kTRUE);
\r
100 jetspec->SetAODMCInput(kTRUE);
\r
103 if(mgr->GetMCtruthEventHandler()){
\r
104 jetspec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);
\r
108 if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
109 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
111 else if (typeRec.Contains("AODMC2")){
\r
112 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
114 else if (typeRec.Contains("AODMC")){
\r
115 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
117 else { // catch akk use AOD
\r
118 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
121 if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
122 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
124 else if (typeGen.Contains("AODMC2")){
\r
125 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
127 else if (typeGen.Contains("AODMC")){
\r
128 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
130 else if (typeGen.Length()>0){ // catch all use AOD
\r
131 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
134 if(iEventSelectionMask)jetspec->SetEventSelectionMask(iEventSelectionMask);
\r
136 // jetspec->SetDebugLevel(10);
\r
137 if(!ConfigWithFlagsJetSpectrum2())return 0;
\r
139 jetspec->SetUseGlobalSelection(kTRUE);
\r
140 jetspec->SetMinJetPt(-1.);//keep all jets
\r
142 // to fetch the AOD from the AOD extension ouput
\r
143 if(strlen(nonStdFile))jetspec->SetNonStdFile(nonStdFile);
\r
144 mgr->AddTask(jetspec);
\r
146 // Create ONLY the output containers for the data produced by the task.
\r
147 // Get and connect other common input/output containers via the manager as below
\r
148 //==============================================================================
\r
149 AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer(Form("pwgje_spec2_%s_%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_spec2_%s_%s_%010d_Class%02d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl));
\r
151 mgr->ConnectInput (jetspec, 0, mgr->GetCommonInputContainer());
\r
152 mgr->ConnectOutput (jetspec, 0, mgr->GetCommonOutputContainer());
\r
153 mgr->ConnectOutput (jetspec, 1, coutput1_Spec );
\r
158 void SetAODInput(AliAnalysisTaskJetSpectrum2 *taskJetSpectrum){
\r
159 taskJetSpectrum->SetAODJetInput(kTRUE);
\r
160 taskJetSpectrum->SetAODTrackInput(kTRUE);
\r
161 // taskJetSpectrum->SetUseGlobalSelection(kFALSE);
\r
164 Bool_t ConfigWithFlagsJetSpectrum2(){
\r
166 Bool_t bGood1 = kFALSE;
\r
167 Bool_t bGood2 = kFALSE;
\r
170 Int_t nTrigger = AliAnalysisManager::GetGlobalInt("kNTrigger",bGood1);
\r
173 jetspec->SetNTrigger(nTrigger);
\r
174 for(int it = 0;it < nTrigger;it++){
\r
175 jetspec->SetTrigger(it,
\r
176 AliAnalysisManager::GetGlobalInt(Form("kTriggerBit%d",it),bGood1),
\r
177 AliAnalysisManager::GetGlobalStr(Form("kTriggerName%d",it),bGood2));
\r
181 Printf("%s%d: kNTrigger not defined",(char*)__FILE__,__LINE__); return kFALSE;
\r
185 AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1);if(bGood1){
\r
186 jetspec->SelectCollisionCandidates(AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1));
\r
188 else {Printf("%s%d: kPhysicsSelectionFlag not defined",(char*)__FILE__,__LINE__); return kFALSE; }
\r
191 AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1);if(bGood1)jetspec->SetNonStdFile(AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1));
\r
192 else {Printf("%s%d: kDeltaAODJetName not defined",(char*)__FILE__,__LINE__); return kFALSE; }
\r
194 AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1);if(bGood1)jetspec->SetTrackEtaWindow(AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1));
\r
195 else {Printf("%s%d: kTrackEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
\r
197 AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1);if(bGood1)jetspec->SetJetEtaWindow(AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1));
\r
198 else {Printf("%s%d: kJetEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
\r
201 AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1);if(bGood1)jetspec->SetFilterMask(AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1));
\r
202 else {Printf("%s%d: kHighPtFilterMask not defined",(char*)__FILE__,__LINE__); return kFALSE; }
\r