3 AliJetResponseMaker* AddTaskJetResponseMaker(
4 const char *ntracks = "Tracks",
5 const char *nclusters = "CaloClusters",
6 const char *njets = "Jets",
7 const char *nmcjets = "MCJets",
8 const char *nmctracks = "MCParticles",
9 Double_t jetradius = 0.4,
10 Double_t jetptcut = 1,
11 Double_t jetareacut = 0.8,
12 Double_t ptcut = 0.15,
13 Double_t jetBiasTrack = 10,
14 Double_t jetBiasClus = 10,
15 Double_t maxDistance = 0.25,
16 UInt_t type = AliAnalysisTaskEmcal::kTPC,
17 Int_t ptHardBin = -999,
18 const char *taskname = "AliJetResponseMaker",
19 AliJetResponseMaker* address = 0
22 // Get the pointer to the existing analysis manager via the static access method.
23 //==============================================================================
24 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
27 ::Error("AddTaskJetResponseMaker", "No analysis manager to connect to.");
31 // Check the analysis type using the event handlers connected to the analysis manager.
32 //==============================================================================
33 if (!mgr->GetInputEventHandler())
35 ::Error("AddTaskJetResponseMaker", "This task requires an input event handler");
39 //-------------------------------------------------------
40 // Init the task and do settings
41 //-------------------------------------------------------
43 TString name(taskname);
51 name += floor(jetradius*10+0.5);
53 name += floor(ptcut*1000+0.5);
55 if (type == AliAnalysisTaskEmcal::kTPC)
57 else if (type == AliAnalysisTaskEmcal::kEMCAL)
59 else if (type == AliAnalysisTaskEmcal::kTPCSmall)
61 else if (type == AliAnalysisTaskEmcal::kEMCALOnly)
63 if (ptHardBin != -999) {
68 AliJetResponseMaker* jetTask = address;
70 new (jetTask) AliJetResponseMaker(name);
72 jetTask = new AliJetResponseMaker(name);
74 jetTask->SetAnaType(type);
75 jetTask->SetTracksName(ntracks);
76 jetTask->SetClusName(nclusters);
77 jetTask->SetJetsName(njets);
78 jetTask->SetMCJetsName(nmcjets);
79 jetTask->SetMCTracksName(nmctracks);
80 jetTask->SetPtCut(ptcut);
81 jetTask->SetJetRadius(jetradius);
82 jetTask->SetJetPtCut(jetptcut);
83 jetTask->SetPercAreaCut(jetareacut);
84 jetTask->SetPtBiasJetTrack(jetBiasTrack);
85 jetTask->SetPtBiasJetClus(jetBiasClus);
86 jetTask->SetMaxDistance(maxDistance);
87 jetTask->SetVzRange(-10,10);
88 jetTask->SetPtHardBin(ptHardBin);
90 //-------------------------------------------------------
91 // Final settings, pass to manager and set the containers
92 //-------------------------------------------------------
94 mgr->AddTask(jetTask);
96 // Create containers for input/output
97 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
98 TString contname(name);
99 contname += "_histos";
100 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
101 TList::Class(),AliAnalysisManager::kOutputContainer,
102 Form("%s", AliAnalysisManager::GetCommonFileName()));
103 mgr->ConnectInput (jetTask, 0, cinput1 );
104 mgr->ConnectOutput (jetTask, 1, coutput1 );