3 AliJetResponseMaker* AddTaskJetResponseMaker(
4 const char *ntracks1 = "Tracks",
5 const char *nclusters1 = "CaloClusters",
6 const char *njets1 = "Jets",
7 const char *nrho1 = "Rho",
8 Double_t jetradius1 = 0.2,
9 const char *ntracks2 = "MCParticles",
10 const char *nclusters2 = "",
11 const char *njets2 = "MCJets",
12 const char *nrho2 = "",
13 Double_t jetradius2 = 0.2,
14 Double_t jetptcut = 1,
15 Double_t jetareacut = 0.557,
17 Int_t biasType = 0, // 0 = charged, 1 = neutral, 2 = both
18 UInt_t matching = AliJetResponseMaker::kGeometrical,
19 Double_t maxDistance1 = 0.25,
20 Double_t maxDistance2 = 0.25,
21 const char *cutType = "TPC",
22 Int_t ptHardBin = -999,
23 Double_t minCent = -999,
24 Double_t maxCent = -999,
25 const char *taskname = "AliJetResponseMaker",
26 Bool_t biggerMatrix = kFALSE,
27 AliJetResponseMaker* address = 0
30 // Get the pointer to the existing analysis manager via the static access method.
31 //==============================================================================
32 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
35 ::Error("AddTaskJetResponseMaker", "No analysis manager to connect to.");
39 // Check the analysis type using the event handlers connected to the analysis manager.
40 //==============================================================================
41 if (!mgr->GetInputEventHandler())
43 ::Error("AddTaskJetResponseMaker", "This task requires an input event handler");
47 //-------------------------------------------------------
48 // Init the task and do settings
49 //-------------------------------------------------------
51 TString name(Form("%s_%s_%s_Bias%d_BiasType%d_%s",taskname,njets1,njets2,(Int_t)floor(jetBias),biasType,cutType));
53 if (minCent != -999 && maxCent != -999)
54 name += Form("_Cent%d_%d", (Int_t)floor(minCent), (Int_t)floor(maxCent));
56 if (ptHardBin != -999)
57 name += Form("_PtHard%d", ptHardBin);
59 AliJetResponseMaker* jetTask = address;
61 new (jetTask) AliJetResponseMaker(name);
63 jetTask = new AliJetResponseMaker(name);
65 AliParticleContainer *trackCont1 = jetTask->AddParticleContainer(ntracks1);
66 AliClusterContainer *clusCont1 = jetTask->AddClusterContainer(nclusters1);
67 AliJetContainer *jetCont1 = jetTask->AddJetContainer(njets1, cutType, jetradius1);
68 jetCont1->SetRhoName(nrho1);
69 jetCont1->SetLeadingHadronType(biasType);
70 jetCont1->SetPtBiasJetTrack(jetBias);
71 jetCont1->SetPtBiasJetClus(jetBias);
72 jetCont1->SetJetPtCut(jetptcut);
73 jetCont1->SetPercAreaCut(jetareacut);
74 jetCont1->SetIsParticleLevel(kFALSE);
75 jetCont1->ConnectParticleContainer(trackCont1);
76 jetCont1->ConnectClusterContainer(clusCont1);
78 AliParticleContainer *trackCont2 = jetTask->AddParticleContainer(ntracks2);
79 AliClusterContainer *clusCont2 = jetTask->AddClusterContainer(nclusters2);
80 AliJetContainer *jetCont2 = jetTask->AddJetContainer(njets2, cutType, jetradius2);
81 jetCont2->SetRhoName(nrho2);
82 jetCont2->SetLeadingHadronType(biasType);
83 jetCont2->SetPtBiasJetTrack(jetBias);
84 jetCont2->SetPtBiasJetClus(jetBias);
85 jetCont2->SetJetPtCut(jetptcut);
86 jetCont2->SetPercAreaCut(jetareacut);
87 jetCont2->SetIsParticleLevel(kTRUE);
88 jetCont2->ConnectParticleContainer(trackCont2);
89 jetCont2->ConnectClusterContainer(clusCont2);
91 jetTask->SetMatching(matching, maxDistance1, maxDistance2);
92 jetTask->SetVzRange(-10,10);
93 jetTask->SetIsPythia(kTRUE);
94 jetTask->SetPtHardBin(ptHardBin);
95 jetTask->SetCentRange(minCent,maxCent);
98 jetTask->SetHistoBins(1000,0,500);
100 //-------------------------------------------------------
101 // Final settings, pass to manager and set the containers
102 //-------------------------------------------------------
104 mgr->AddTask(jetTask);
106 // Create containers for input/output
107 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
108 TString contname(name);
109 contname += "_histos";
110 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
111 TList::Class(),AliAnalysisManager::kOutputContainer,
112 Form("%s", AliAnalysisManager::GetCommonFileName()));
113 mgr->ConnectInput (jetTask, 0, cinput1 );
114 mgr->ConnectOutput (jetTask, 1, coutput1 );