]>
Commit | Line | Data |
---|---|---|
2cc9dfde | 1 | |
2 | AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(){ | |
3 | ||
4 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
5 | if(!mgr){ | |
6 | ::Error("AddTaskCentralitySelection", "No analysis manager to connect ot."); | |
7 | return NULL; | |
8 | } | |
9 | if(!mgr->GetInputEventHandler()){ | |
10 | ::Error("AddTaskCentralitySelection", "This task requires an input event handler."); | |
11 | return NULL; | |
12 | } | |
13 | ||
14 | ||
15 | AliAnalysisTaskFastEmbedding *task = new AliAnalysisTaskFastEmbedding("FastEmbedding"); | |
16 | // ## set embedding mode ## | |
17 | // kAODFull=0, kAODJetTracks, kAODJet4Mom, kToySingle4Mom | |
18 | task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kToyTracks); | |
19 | ||
20 | // ## set ranges for toy ## | |
21 | //SetToyTrackRanges( | |
46465e39 | 22 | Double_t minPt = 20.; Double_t maxPt = 200.; |
a1d44e31 | 23 | Double_t minEta = -0.5; Double_t maxEta = 0.5; |
24 | Double_t minPhi = 0.; Double_t maxPhi = 2*TMath::Pi(); | |
25 | //fToyDistributionTrackPt: 0 = uniform distribution | |
26 | // else = exponential / power law (not implemented yet) | |
46465e39 | 27 | //task->SetToyNumberOfTrackRange(4,4); |
2cc9dfde | 28 | //task->SetToyTrackRanges(0.15, 300., 5,-.9, .9, 0., 2*TMath::Pi()); |
a1d44e31 | 29 | task->SetToyTrackRanges(minPt,maxPt,0.,minEta,maxEta,minPhi,maxPhi); |
2cc9dfde | 30 | task->SetToyFilterMap((1<<32)-1); |
31 | ||
32 | // ## set event selection for events of the addition AOD ## | |
33 | // kEventsAll=0; kEventsJetPt | |
34 | task->SetEvtSelecMode(AliAnalysisTaskFastEmbedding::kEventsJetPt); | |
35 | ||
36 | // ## set jet pT range for event selection ## | |
37 | // SetEvtSelJetPtRange(Float_t minPt, Float_t maxPt) | |
38 | task->SetEvtSelJetPtRange(20.,-1.); | |
39 | ||
40 | mgr->AddTask(task); | |
41 | ||
42 | // ## create the output containers ## | |
43 | AliAnalysisDataContainer *coutputFastEmbedding = mgr->CreateContainer( | |
44 | "fastembedding", TList::Class(), AliAnalysisManager::kOutputContainer, | |
45 | Form("%s:PWG4_FastEmbedding", AliAnalysisManager::GetCommonFileName())); | |
46 | ||
47 | mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer()); | |
48 | mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer()); | |
49 | mgr->ConnectOutput(task, 1, coutputFastEmbedding); | |
50 | ||
51 | ||
52 | return task; | |
53 | ||
54 | } | |
55 | ||
56 | AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(TObjArray* aodarray){ | |
57 | ||
58 | AliAnalysisTaskFastEmbedding *task = AddTaskFastEmbedding(); | |
59 | if(aodarray){ | |
60 | task->SetArrayOfAODPaths(aodarray); | |
61 | task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kAODFull); | |
62 | } | |
63 | ||
64 | return task; | |
65 | } | |
66 | ||
67 | ||
1a2bb6d5 | 68 | AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(const char* filepath, Int_t mode = 0){ |
2cc9dfde | 69 | |
70 | AliAnalysisTaskFastEmbedding *task = AddTaskFastEmbedding(); | |
71 | if(strlen(filepath)){ | |
1a2bb6d5 | 72 | |
73 | if(mode==0){ // path to single AOD | |
74 | task->SetAODPath(filepath); | |
75 | } | |
76 | if(mode==1){ // path to text file with list of paths of multiple AODs | |
46465e39 | 77 | Printf("Read aod paths from file %s", filepath); |
1a2bb6d5 | 78 | TObjArray* array = new TObjArray(); |
79 | TObjString* ostr = 0; | |
80 | TString line; | |
81 | ifstream in; | |
82 | in.open(filepath); | |
83 | while(in.good()){ | |
84 | in >> line; | |
85 | if(line.Length() == 0) continue; | |
86 | Printf("found aod path %s", line.Data()); | |
87 | ostr = new TObjString(line.Data()); | |
88 | array->Add(ostr); | |
89 | } | |
90 | Printf("-> %d aod paths found", array->GetEntries()); | |
91 | ||
92 | task->SetArrayOfAODPaths(array); | |
93 | } | |
94 | ||
2cc9dfde | 95 | task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kAODFull); |
96 | } | |
97 | ||
98 | return task; | |
99 | } | |
100 |