1 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* bBkg="",UInt_t filterMask = 32, Int_t iPhysicsSelection = 1,UInt_t iEventSelectionMask = 0,Bool_t kBackground=kTRUE,Int_t iFillCorrBkg = 0);
\r
4 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelection = 1,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,Bool_t kBackground = kTRUE){
\r
7 AliAnalysisTaskJetSpectrum2 *js = 0;
\r
9 TString cBack = ""; //
\r
12 if(iFlag&(1<<0)){ // UA104
\r
13 js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
14 js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
16 if(iFlag&(1<<1)){ // ANTIKT 04
\r
17 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
18 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
19 // cross check MC only background subtration
\r
20 js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
22 if(iFlag&(1<<2)){ // KT 04
\r
23 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection,iEventSelectionMask,kBackground);
\r
24 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
26 if(iFlag&(1<<3)){ // SISCONE 04
\r
27 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
28 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
30 // here can go other radii
\r
32 else { // only the data ... no MC
\r
33 if(iFlag&(1<<0)){ // UA104
\r
34 js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
36 if(iFlag&(1<<1)){ // ANTIKT 04
\r
37 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
39 if(iFlag&(1<<2)){ // KT 04
\r
40 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelection,iEventSelectionMask,kBackground);
\r
42 if(iFlag&(1<<3)){ // SISCONE 04
\r
43 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
49 if(iFlag&(1<<7))js = AddTaskJetSpectrum2("jets","jetsAOD_FASTJET04",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
50 if(iFlag&(1<<8))js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
51 if(iFlag&(1<<9))js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
52 if(iFlag&(1<<10))js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
56 js = AddTaskJetSpectrum2("jetsAOD_UA107","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
57 js->SetRecEtaWindow(0.2);
\r
60 js = AddTaskJetSpectrum2("jetsAOD_FASTJET07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
61 js->SetRecEtaWindow(0.2);
\r
64 js = AddTaskJetSpectrum2("jetsAOD_FASTKT07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
65 js->SetRecEtaWindow(0.2);
\r
68 js = AddTaskJetSpectrum2("jetsAOD_SISCONE07","",cBack.Data(),filterMask,iPhysicsSelection, iEventSelectionMask,kBackground);
\r
69 js->SetRecEtaWindow(0.2);
\r
77 AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* bBkg,UInt_t filterMask,Int_t iPhysicsSelection,UInt_t iEventSelectionMask,Bool_t kBackground,Int_t iFillCorrBkg)
\r
79 // Creates a jet fider task, configures it and adds it to the analysis manager.
\r
80 // Get the pointer to the existing analysis manager via the static access method.
\r
81 //==============================================================================
\r
82 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
84 ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");
\r
88 // Check the analysis type using the event handlers connected to the analysis manager.
\r
89 //==============================================================================
\r
90 if (!mgr->GetInputEventHandler()) {
\r
91 ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");
\r
95 TString type = mgr->GetInputEventHandler()->GetDataType();
\r
96 TString typeRec(bRec);
\r
97 TString typeGen(bGen);
\r
101 TString bBkgName = bBkg;
\r
102 if(kBackground&&bBkgName.Length()==0){
\r
103 if(typeGen.Contains("AODMC2"))bBkgName = "jeteventbackground_clustersAODMC2_KT06";
\r
104 else bBkgName = "jeteventbackground_clustersAOD_KT06";
\r
107 // Create the task and configure it.
\r
108 //===========================================================================
\r
110 if(iFillCorrBkg)bGen = Form("SubBkg%d",iFillCorrBkg);
\r
111 AliAnalysisTaskJetSpectrum2* pwg4spec = new AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d",bRec,bGen,iEventSelectionMask));
\r
113 // or a config file
\r
114 // pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMC);
\r
115 // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);
\r
116 // pwg4spec->SetDebugLevel(11);
\r
118 if(iFillCorrBkg)pwg4spec->SetBranchGen("");
\r
119 else pwg4spec->SetBranchGen(bGen);
\r
120 pwg4spec->SetBranchRec(bRec);
\r
122 if(bBkgName.Length()>0)pwg4spec->SetBranchBkg(bBkgName.Data());
\r
125 pwg4spec->SetFilterMask(filterMask);
\r
126 pwg4spec->SetUseGlobalSelection(kTRUE);
\r
127 pwg4spec->SetMinJetPt(5.);
\r
128 pwg4spec->SetBkgSubtraction(kBackground);
\r
132 // Assume all jet are produced already
\r
133 pwg4spec->SetAODJetInput(kTRUE);
\r
134 pwg4spec->SetAODTrackInput(kTRUE);
\r
135 pwg4spec->SetAODMCInput(kTRUE);
\r
138 if(mgr->GetMCtruthEventHandler()){
\r
139 pwg4spec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);
\r
143 if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
144 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
146 else if (typeRec.Contains("AODMC2")){
\r
147 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
149 else if (typeRec.Contains("AODMC")){
\r
150 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
152 else { // catch akk use AOD
\r
153 pwg4spec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
156 if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
\r
157 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
\r
159 else if (typeGen.Contains("AODMC2")){
\r
160 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
\r
162 else if (typeGen.Contains("AODMC")){
\r
163 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
\r
165 else if (typeGen.Length()>0){ // catch all use AOD
\r
166 pwg4spec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);
\r
169 if(iPhysicsSelection)pwg4spec->SelectCollisionCandidates();
\r
170 if(iEventSelectionMask)pwg4spec->SetEventSelectionMask(iEventSelectionMask);
\r
172 mgr->AddTask(pwg4spec);
\r
174 // Create ONLY the output containers for the data produced by the task.
\r
175 // Get and connect other common input/output containers via the manager as below
\r
176 //==============================================================================
\r
177 AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer(Form("pwg4spec2_%s_%s_%010d",bRec,bGen,iEventSelectionMask),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_spec2_%s_%s_%010d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask));
\r
179 mgr->ConnectInput (pwg4spec, 0, mgr->GetCommonInputContainer());
\r
180 mgr->ConnectOutput (pwg4spec, 0, mgr->GetCommonOutputContainer());
\r
181 mgr->ConnectOutput (pwg4spec, 1, coutput1_Spec );
\r