1 // $Id: AddTaskJetEmbeddingFromPYTHIA.C $
3 AliJetEmbeddingFromPYTHIATask* AddTaskJetEmbeddingFromPYTHIA(
4 const char *tracksName = "Tracks",
5 const char *clusName = "",
6 const char *cellsName = "EMCALCells",
7 const char *MCPartName = "",
8 const char *simpath = "/alice/sim/2012/LHC12a15e",
10 Double_t *ptHardScaling = 0,
11 const char *aodTreeName = "aodTree",
12 const char *aodTracksName = "tracks",
13 const char *aodClusName = "",
14 const char *aodCellsName = "emcalCells",
15 const char *aodMCPartName = "mcparticles",
16 const char *runperiod = "lhc12a15e",
17 Bool_t includeNoITS = kTRUE,
18 Double_t minCent = -1,
19 Double_t maxCent = -1,
20 UInt_t mask = AliVEvent::kAny,
21 const Int_t nTracks = 1234567890,
22 const Int_t nClus = 0,
23 const Int_t nCells = 1234567890,
24 const Bool_t copyArray = kTRUE,
25 const Int_t nFiles = 1234567890,
26 const Bool_t makeQA = kFALSE,
27 const Double_t minPt = 0,
28 const Double_t maxPt = 1000,
29 const Double_t minEta = -0.9,
30 const Double_t maxEta = 0.9,
31 const Double_t minPhi = 0,
32 const Double_t maxPhi = TMath::Pi() * 2,
33 const char *taskName = "JetEmbeddingFromPYTHIATask"
36 // Get the pointer to the existing analysis manager via the static access method.
37 //==============================================================================
38 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
41 ::Error("AddTaskJetEmbeddingFromPYTHIA", "No analysis manager to connect to.");
45 // Check the analysis type using the event handlers connected to the analysis manager.
46 //==============================================================================
47 if (!mgr->GetInputEventHandler())
49 ::Error("AddTaskJetEmbeddingFromPYTHIA", "This task requires an input event handler");
53 //-------------------------------------------------------
54 // Init the task and do settings
55 //-------------------------------------------------------
57 AliJetEmbeddingFromPYTHIATask *jetEmb = new AliJetEmbeddingFromPYTHIATask(taskName,makeQA);
58 jetEmb->SetTracksName(tracksName);
59 jetEmb->SetClusName(clusName);
60 jetEmb->SetCellsName(cellsName);
61 jetEmb->SetMCParticlesName(MCPartName);
62 jetEmb->SetAODTreeName(aodTreeName);
63 jetEmb->SetAODTracksName(aodTracksName);
64 jetEmb->SetAODClusName(aodClusName);
65 jetEmb->SetAODCellsName(aodCellsName);
66 jetEmb->SetAODMCParticlesName(aodMCPartName);
67 jetEmb->SetCentralityRange(minCent, maxCent);
68 jetEmb->SetTriggerMask(mask);
69 jetEmb->SetNCells(nCells);
70 jetEmb->SetNClusters(nClus);
71 jetEmb->SetNTracks(nTracks);
72 jetEmb->SetCopyArray(copyArray);
73 jetEmb->SetEtaRange(minEta, maxEta);
74 jetEmb->SetPhiRange(minPhi, maxPhi);
75 jetEmb->SetPtRange(minPt, maxPt);
77 jetEmb->SetIncludeNoITS(includeNoITS);
78 TString runPeriod(runperiod);
80 if (runPeriod == "lhc12a15a" || runPeriod == "lhc12a15e") {
81 jetEmb->SetAODfilterBits(256,16);
84 if (runPeriod.IsNull())
85 ::Warning("Run period %s not known. It will use IsHybridGlobalConstrainedGlobal.");
88 jetEmb->SetPYTHIAPath(simpath);
91 if (ptHardScaling==0) {
92 ptHardScaling = new Double_t[nPtHard];
93 for (Int_t i = 0; i < nPtHard; i++)
96 jetEmb->SetPtHardBinScaling(nPtHard, ptHardScaling);
99 //-------------------------------------------------------
100 // Final settings, pass to manager and set the containers
101 //-------------------------------------------------------
103 mgr->AddTask(jetEmb);
105 // Create containers for input/output
106 mgr->ConnectInput(jetEmb, 0, mgr->GetCommonInputContainer());
109 TString contName = taskName;
110 contName += "_histos";
111 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
113 AliAnalysisManager::kOutputContainer,
114 "AnalysisResults.root");
115 mgr->ConnectOutput(jetEmb, 1, outc);