ea91a38bfc3ce08af77ba812889925a2dd325150
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetSpectraMECpA.C
1 // $Id$
2
3 AliAnalysisTaskEmcalJetSpectraMECpA* AddTaskEmcalJetSpectraMECpA(
4    const char *outfilename    = "AnalysisOutput.root",
5    UInt_t type                = AliAnalysisTaskEmcal::kTPC,
6    const char *nRhosCh        = "rhoChEm",
7    const Double_t radius      = 0.2,
8    const Double_t minPhi      = 1.8,
9    const Double_t maxPhi      = 2.74,
10    const Double_t minEta      = -0.3,
11    const Double_t maxEta      = 0.3,
12    const char* usedTracks     = "PicoTracks",
13    const char* outClusName    = "CaloClustersCorr",
14    const Double_t minTrackPt  = 0.15,
15    const Double_t minClusterPt = 0.30
16    )
17 {  
18   // Get the pointer to the existing analysis manager via the static access method.
19   //==============================================================================
20   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21   if (!mgr)
22   {
23     ::Error("AddTasEmcalJetSpectraMECpA", "No analysis manager to connect to.");
24     return NULL;
25   }  
26   
27   // Check the analysis type using the event handlers connected to the analysis manager.
28   //==============================================================================
29   if (!mgr->GetInputEventHandler())
30   {
31     ::Error("AddTaskEmcalJetSpectraMECpA", "This task requires an input event handler");
32     return NULL;
33   }
34   
35   //Run the jet finder and rho tasks first
36
37   // Some constants for the jet finders
38   const Int_t cKT                 = 0;
39   const Int_t cANTIKT             = 1;
40   const Int_t cFULLJETS           = 0;
41   const Int_t cCHARGEDJETS        = 1;
42   const Int_t cNEUTRALJETS        = 2;
43
44   const UInt_t type = 1;
45     
46   float AreaCut = radius*radius*TMath::Pi();
47
48   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
49
50     AliEmcalJetTask* jetFinderTaskChBack = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
51
52
53   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,radius, cFULLJETS,minTrackPt,minClusterPt);
54
55   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRho.C");
56
57   AliAnalysisTaskRho *rhochtask = AddTaskRho(jetFinderTaskChBack->GetName(),usedTracks,outClusName,nRhosCh,0.2,0,0.01,0,sfunc,0,kTRUE,nRhosCh);
58
59
60
61   //-------------------------------------------------------
62   // Init the task and do settings
63   //-------------------------------------------------------
64
65   const char *nJets = jetFinderTask->GetName();
66
67
68   TString name(Form("SpectraMECpA_%s", nJets));
69   AliAnalysisTaskEmcalJetSpectraMECpA *spectratask = new AliAnalysisTaskEmcalJetSpectraMECpA(name);
70   spectratask->SetJetsName(jetFinderTask->GetName());
71   spectratask->SetAnaType(type);
72   spectratask->SetRhoName(nRhosCh);
73   spectratask->SetJetPhiLimits(minPhi,maxPhi);
74   spectratask->SetJetEtaLimits(minEta,maxEta);
75   spectratask->SetJetAreaCut(AreaCut);
76   spectratask->SetTracksName(usedTracks);
77
78   //-------------------------------------------------------
79   // Final settings, pass to manager and set the containers
80   //-------------------------------------------------------
81
82   mgr->AddTask(spectratask);
83
84   // Create containers for input/output
85   mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() );
86   AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
87                                                            TList::Class(),
88                                                            AliAnalysisManager::kOutputContainer,
89                                                            outfilename);
90   mgr->ConnectOutput(spectratask,1,cospectra);
91
92   return spectratask;
93 }