]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C
up from Chris
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetResponseMaker.C
CommitLineData
5193b38c 1// $Id$
2
3AliJetResponseMaker* AddTaskJetResponseMaker(
cfc2ac24 4 const char *ntracks1 = "Tracks",
5 const char *nclusters1 = "CaloClusters",
6 const char *njets1 = "Jets",
7 const char *nrho1 = "Rho",
8 const char *ntracks2 = "MCParticles",
9 const char *nclusters2 = "",
10 const char *njets2 = "MCJets",
11 const char *nrho2 = "",
624bef5b 12 Double_t jetradius = 0.2,
5193b38c 13 Double_t jetptcut = 1,
624bef5b 14 Double_t jetareacut = 0.557,
15 Double_t jetBiasTrack = 5,
16 Double_t jetBiasClus = 5,
cfc2ac24 17 UInt_t matching = AliJetResponseMaker::kGeometrical,
2bddb6ae 18 Double_t maxDistance = 0.25,
4643d2e8 19 UInt_t type = AliAnalysisTaskEmcal::kTPC,
20 Int_t ptHardBin = -999,
53dca394 21 const char *taskname = "AliJetResponseMaker",
cfc2ac24 22 Bool_t biggerMatrix = kFALSE,
53dca394 23 AliJetResponseMaker* address = 0
5193b38c 24)
25{
26 // Get the pointer to the existing analysis manager via the static access method.
27 //==============================================================================
28 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
29 if (!mgr)
30 {
31 ::Error("AddTaskJetResponseMaker", "No analysis manager to connect to.");
32 return NULL;
33 }
34
35 // Check the analysis type using the event handlers connected to the analysis manager.
36 //==============================================================================
37 if (!mgr->GetInputEventHandler())
38 {
39 ::Error("AddTaskJetResponseMaker", "This task requires an input event handler");
40 return NULL;
41 }
42
43 //-------------------------------------------------------
44 // Init the task and do settings
45 //-------------------------------------------------------
46
cfc2ac24 47 TString name(Form("%s_%s_%s_Track%d_Clus%d_",taskname,njets1,njets2,(Int_t)floor(jetBiasTrack),(Int_t)floor(jetBiasClus)));
624bef5b 48 if (type == AliAnalysisTaskEmcal::kTPC)
4643d2e8 49 name += "TPC";
50 else if (type == AliAnalysisTaskEmcal::kEMCAL)
51 name += "EMCAL";
624bef5b 52 else if (type == AliAnalysisTaskEmcal::kUser)
53 name += "USER";
4643d2e8 54 if (ptHardBin != -999) {
55 name += "_PtHard";
56 name += ptHardBin;
57 }
58
53dca394 59 AliJetResponseMaker* jetTask = address;
60 if (jetTask)
61 new (jetTask) AliJetResponseMaker(name);
62 else
63 jetTask = new AliJetResponseMaker(name);
64
5193b38c 65 jetTask->SetAnaType(type);
cfc2ac24 66 jetTask->SetTracksName(ntracks1);
67 jetTask->SetClusName(nclusters1);
68 jetTask->SetJetsName(njets1);
69 jetTask->SetRhoName(nrho1);
70 jetTask->SetTracks2Name(ntracks2);
71 jetTask->SetClus2Name(nclusters2);
72 jetTask->SetJets2Name(njets2);
73 jetTask->SetRho2Name(nrho2);
5193b38c 74 jetTask->SetJetRadius(jetradius);
75 jetTask->SetJetPtCut(jetptcut);
ceefbfbc 76 jetTask->SetPercAreaCut(jetareacut);
5193b38c 77 jetTask->SetPtBiasJetTrack(jetBiasTrack);
78 jetTask->SetPtBiasJetClus(jetBiasClus);
cfc2ac24 79 jetTask->SetMatching(matching, maxDistance);
4643d2e8 80 jetTask->SetVzRange(-10,10);
81 jetTask->SetPtHardBin(ptHardBin);
cfc2ac24 82
83 if (biggerMatrix)
84 jetTask->SetHistoBins(1000,0,500);
5193b38c 85
86 //-------------------------------------------------------
87 // Final settings, pass to manager and set the containers
88 //-------------------------------------------------------
89
90 mgr->AddTask(jetTask);
91
92 // Create containers for input/output
93 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
4643d2e8 94 TString contname(name);
5193b38c 95 contname += "_histos";
96 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
97 TList::Class(),AliAnalysisManager::kOutputContainer,
98 Form("%s", AliAnalysisManager::GetCommonFileName()));
99 mgr->ConnectInput (jetTask, 0, cinput1 );
100 mgr->ConnectOutput (jetTask, 1, coutput1 );
101
102 return jetTask;
103}