]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetHadCorQA.C
Protection against re-initialization of histograms if not already
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetHadCorQA.C
1
2
3 AliAnalysisTaskEmcalJetHadCorQA* AddTaskEmcalJetHadCorQA(
4    const char *outfilename    = "AnalysisOutput.root",
5    const char *nJets          = "Jets",
6    UInt_t type                = AliAnalysisTaskEmcal::kTPC,
7    const char *nRhosChEm      = "rhoChEm",
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 Double_t minArea     = 0.4,
13    const char *nTracks        = "PicoTracks",
14    const char *nClusters      = "CaloClusters",
15    const char *nClustersCorr  = "CaloClusters"
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("AddTaskEmcalJetHadCorQA", "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("AddTaskEmcalJetHadCorQA", "This task requires an input event handler");
32     return NULL;
33   }
34   
35   //-------------------------------------------------------
36   // Init the task and do settings
37   //-------------------------------------------------------
38
39   TString name(Form("JetHadCor_%s", nJets));
40   AliAnalysisTaskEmcalJetHadCorQA *jethadcortask = new AliAnalysisTaskEmcalJetHadCorQA(name);
41   jethadcortask->SetJetsName(nJets);
42   jethadcortask->SetAnaType(type);
43   jethadcortask->SetRhoName(nRhosChEm);
44   jethadcortask->SetJetPhiLimits(minPhi,maxPhi);
45   jethadcortask->SetJetEtaLimits(minEta,maxEta);
46   jethadcortask->SetJetAreaCut(minArea);
47   jethadcortask->SetTracksName(nTracks);
48   jethadcortask->SetClusName(nClusters);
49   jethadcortask->SetCalo2Name(nClustersCorr);
50   jethadcortask->SetPtCut(0.15);
51
52   //-------------------------------------------------------
53   // Final settings, pass to manager and set the containers
54   //-------------------------------------------------------
55
56   mgr->AddTask(jethadcortask);
57
58   // Create containers for input/output
59   mgr->ConnectInput (jethadcortask, 0, mgr->GetCommonInputContainer() );
60   AliAnalysisDataContainer *cojethadcor = mgr->CreateContainer(name,
61                                                            TList::Class(),
62                                                            AliAnalysisManager::kOutputContainer,
63                                                            outfilename);
64   mgr->ConnectOutput(jethadcortask,1,cojethadcor);
65
66   return jethadcortask;
67 }