]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetSampleDev.C
jet framework from Marta/Salvatore
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetSampleDev.C
1 // $Id: AddTaskEmcalJetSampleDev.C 60393 2013-01-20 10:05:07Z loizides $
2
3 AliAnalysisTaskEmcalJetSampleDev* AddTaskEmcalJetSampleDev(
4   const char *ntracks            = "Tracks",
5   const char *nclusters          = "CaloClusters",
6   const char *njets              = "Jets",
7   const char *nrho               = "Rho",
8   Double_t    jetradius          = 0.2,
9   Double_t    jetptcut           = 1,
10   Double_t    jetareacut         = 0.557,
11   UInt_t      type               = AliAnalysisTaskEmcalJet::kEMCAL,
12   Int_t       leadhadtype        = 0,
13   const char *taskname           = "AliAnalysisTaskEmcalJetSampleDev"
14 )
15 {  
16   // Get the pointer to the existing analysis manager via the static access method.
17   //==============================================================================
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20   {
21     ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to.");
22     return NULL;
23   }  
24   
25   // Check the analysis type using the event handlers connected to the analysis manager.
26   //==============================================================================
27   if (!mgr->GetInputEventHandler())
28   {
29     ::Error("AddTaskEmcalJetSample", "This task requires an input event handler");
30     return NULL;
31   }
32   
33   //-------------------------------------------------------
34   // Init the task and do settings
35   //-------------------------------------------------------
36
37   TString name(taskname);
38   if (strcmp(njets,"")) {
39     name += "_";
40     name += njets;
41   }
42   if (strcmp(nrho,"")) {
43     name += "_";
44     name += nrho;
45   }
46   if (type == AliAnalysisTaskEmcalDev::kTPC) 
47     name += "_TPC";
48   else if (type == AliAnalysisTaskEmcalDev::kEMCAL) 
49     name += "_EMCAL";
50   else if (type == AliAnalysisTaskEmcalDev::kUser) 
51     name += "_USER";
52
53   Printf("name: %s",name.Data());
54
55   AliAnalysisTaskEmcalJetSampleDev* jetTask = new AliAnalysisTaskEmcalJetSampleDev(name);
56   jetTask->SetAnaType(type);
57   jetTask->SetTracksName(ntracks);
58   jetTask->SetClusName(nclusters);
59   jetTask->SetJetsName(njets);
60   jetTask->SetRhoName(nrho);
61   jetTask->SetJetRadius(jetradius);
62   jetTask->SetJetPtCut(jetptcut);
63   jetTask->SetPercAreaCut(jetareacut);
64   jetTask->SetLeadingHadronType(leadhadtype);
65   
66   //-------------------------------------------------------
67   // Final settings, pass to manager and set the containers
68   //-------------------------------------------------------
69   
70   mgr->AddTask(jetTask);
71   
72   // Create containers for input/output
73   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
74   TString contname(name);
75   contname += "_histos";
76   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
77                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
78                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
79   mgr->ConnectInput  (jetTask, 0,  cinput1 );
80   mgr->ConnectOutput (jetTask, 1, coutput1 );
81   
82   return jetTask;
83 }