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