3 THashTable* GenerateFileTable(const char* list);
5 AliJetEmbeddingFromPYTHIATask* AddTaskJetEmbeddingFromPYTHIA(
6 const char *tracksName = "Tracks",
7 const char *clusName = "",
8 const char *cellsName = "EMCALCells",
9 const char *MCPartName = "",
10 const char *simpath = "alien:///alice/sim/2012/LHC12a15e_fix/%d/%d/AOD141/%04d/AliAOD.root",
12 Double_t *ptHardScaling = 0,
13 const char *aodTreeName = "aodTree",
14 const char *aodTracksName = "tracks",
15 const char *aodClusName = "",
16 const char *aodCellsName = "emcalCells",
17 const char *aodMCPartName = "mcparticles",
18 const char *runperiod = "lhc12a15e",
19 Bool_t includeNoITS = kFALSE,
20 Double_t minCent = -1,
21 Double_t maxCent = -1,
23 Double_t minJetPt = 0,
24 const Bool_t copyArray = kFALSE,
25 const Bool_t makeQA = kFALSE,
26 const char *fileTable = "",
27 const char *taskName = "JetEmbeddingFromPYTHIATask"
30 // Get the pointer to the existing analysis manager via the static access method.
31 //==============================================================================
32 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
35 ::Error("AddTaskJetEmbeddingFromPYTHIA", "No analysis manager to connect to.");
39 // Check the analysis type using the event handlers connected to the analysis manager.
40 //==============================================================================
41 if (!mgr->GetInputEventHandler())
43 ::Error("AddTaskJetEmbeddingFromPYTHIA", "This task requires an input event handler");
47 //-------------------------------------------------------
48 // Init the task and do settings
49 //-------------------------------------------------------
51 AliJetEmbeddingFromPYTHIATask *jetEmb = new AliJetEmbeddingFromPYTHIATask(taskName,makeQA);
52 jetEmb->SetTracksName(tracksName);
53 jetEmb->SetClusName(clusName);
54 jetEmb->SetCellsName(cellsName);
55 jetEmb->SetMCParticlesName(MCPartName);
56 jetEmb->SetAODTreeName(aodTreeName);
57 jetEmb->SetAODTracksName(aodTracksName);
58 jetEmb->SetAODClusName(aodClusName);
59 jetEmb->SetAODCellsName(aodCellsName);
60 jetEmb->SetAODMCParticlesName(aodMCPartName);
61 jetEmb->SetCentralityRange(minCent, maxCent);
62 jetEmb->SetTriggerMask(mask);
63 jetEmb->SetCopyArray(copyArray);
64 jetEmb->SetJetMinPt(minJetPt);
65 jetEmb->SetNClusters(1);
68 if (strcmp(fileTable, "") != 0)
69 jetEmb->SetFileTable(GenerateFileTable(fileTable));
71 jetEmb->SetIncludeNoITS(includeNoITS);
72 TString runPeriod(runperiod);
74 if (runPeriod == "lhc12a15e") {
75 jetEmb->SetAODfilterBits(256,512);
77 else if (runPeriod == "lhc12a15a") {
78 jetEmb->SetAODfilterBits(256,16);
81 if (!runPeriod.IsNull())
82 ::Warning("Run period %s not known. It will use IsHybridGlobalConstrainedGlobal.", runPeriod.Data());
85 jetEmb->SetPYTHIAPath(simpath);
88 if (ptHardScaling==0) {
89 ptHardScaling = new Double_t[nPtHard];
90 for (Int_t i = 0; i < nPtHard; i++)
93 jetEmb->SetPtHardBinScaling(nPtHard, ptHardScaling);
96 //-------------------------------------------------------
97 // Final settings, pass to manager and set the containers
98 //-------------------------------------------------------
100 mgr->AddTask(jetEmb);
102 // Create containers for input/output
103 mgr->ConnectInput(jetEmb, 0, mgr->GetCommonInputContainer());
106 TString contName = taskName;
107 contName += "_histos";
108 AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
110 AliAnalysisManager::kOutputContainer,
111 "AnalysisResults.root");
112 mgr->ConnectOutput(jetEmb, 1, outc);
118 THashTable* GenerateFileTable(const char* list)
120 THashTable *table = new THashTable();
122 TString myList = list;
123 if (myList.Contains("alien:///")) {
124 TFile::Cp(myList,"file:./list.txt");
125 myList = "./list.txt";
128 // Open the input stream
130 in.open(myList.Data());
132 // Read the input list of files and add them to the chain
137 if (line.Length() == 0)
140 TObjString *aodFile = new TObjString(line);