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,
16 Double_t jetBiasTrack = 5,
17 Double_t jetBiasClus = 1000,
18 UInt_t matching = AliJetResponseMaker::kGeometrical,
19 Double_t maxDistance1 = 0.25,
20 Double_t maxDistance2 = 0.25,
21 UInt_t type = AliAnalysisTaskEmcal::kTPC,
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_Track%d_Clus%d_",taskname,njets1,njets2,(Int_t)floor(jetBiasTrack),(Int_t)floor(jetBiasClus)));
53 if (type == AliAnalysisTaskEmcal::kTPC)
55 else if (type == AliAnalysisTaskEmcal::kEMCAL)
57 else if (type == AliAnalysisTaskEmcal::kUser)
60 if (minCent != -999 && maxCent != -999)
61 name += Form("_Cent%d_%d", (Int_t)floor(minCent), (Int_t)floor(maxCent));
63 if (ptHardBin != -999)
64 name += Form("_PtHard%d", ptHardBin);
66 AliJetResponseMaker* jetTask = address;
68 new (jetTask) AliJetResponseMaker(name);
70 jetTask = new AliJetResponseMaker(name);
72 jetTask->SetAnaType(type);
73 jetTask->SetTracksName(ntracks1);
74 jetTask->SetClusName(nclusters1);
75 jetTask->SetJetsName(njets1);
76 jetTask->SetRhoName(nrho1);
77 jetTask->SetJetRadius(jetradius1);
78 jetTask->SetTracks2Name(ntracks2);
79 jetTask->SetClus2Name(nclusters2);
80 jetTask->SetJets2Name(njets2);
81 jetTask->SetRho2Name(nrho2);
82 jetTask->SetJet2Radius(jetradius2);
83 jetTask->SetJetPtCut(jetptcut);
84 jetTask->SetPercAreaCut(jetareacut);
85 jetTask->SetPtBiasJetTrack(jetBiasTrack);
86 jetTask->SetPtBiasJetClus(jetBiasClus);
87 jetTask->SetMatching(matching, maxDistance1, maxDistance2);
88 jetTask->SetVzRange(-10,10);
89 jetTask->SetPtHardBin(ptHardBin);
90 jetTask->SetCentRange(minCent,maxCent);
93 jetTask->SetHistoBins(1000,0,500);
95 //-------------------------------------------------------
96 // Final settings, pass to manager and set the containers
97 //-------------------------------------------------------
99 mgr->AddTask(jetTask);
101 // Create containers for input/output
102 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
103 TString contname(name);
104 contname += "_histos";
105 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
106 TList::Class(),AliAnalysisManager::kOutputContainer,
107 Form("%s", AliAnalysisManager::GetCommonFileName()));
108 mgr->ConnectInput (jetTask, 0, cinput1 );
109 mgr->ConnectOutput (jetTask, 1, coutput1 );