AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(){
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if(!mgr){
::Error("AddTaskCentralitySelection", "No analysis manager to connect ot.");
return NULL;
}
if(!mgr->GetInputEventHandler()){
::Error("AddTaskCentralitySelection", "This task requires an input event handler.");
return NULL;
}
AliAnalysisTaskFastEmbedding *task = new AliAnalysisTaskFastEmbedding("FastEmbedding");
// ## set embedding mode ##
// kAODFull=0, kAODJetTracks, kAODJet4Mom, kToySingle4Mom
task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kToyTracks);
// ## set ranges for toy ##
//SetToyTrackRanges(
Double_t minPt = 50.; Double_t maxPt = 100.;
Double_t minEta = -0.5; Double_t maxEta = 0.5;
//Double_t minEta = -0.4; Double_t maxEta = 0.4; // for LHC10h pass1
Double_t minPhi = 0.; Double_t maxPhi = 2*TMath::Pi();
//fToyDistributionTrackPt: 0 = uniform distribution
// else = exponential / power law (not implemented yet)
//task->SetToyNumberOfTrackRange(4,4);
//task->SetToyTrackRanges(0.15, 300., 5,-.9, .9, 0., 2*TMath::Pi());
task->SetToyTrackRanges(minPt,maxPt,0.,minEta,maxEta,minPhi,maxPhi);
task->SetToyFilterMap((1<<32)-1);
// ## set event selection for events of the addition AOD ##
// kEventsAll=0; kEventsJetPt
task->SetEvtSelecMode(AliAnalysisTaskFastEmbedding::kEventsJetPt);
// ## set jet pT range for event selection ##
// SetEvtSelJetPtRange(Float_t minPt, Float_t maxPt)
task->SetEvtSelJetPtRange(50.,110.);
//task->SetEvtSelJetEtaRange(-0.4, 0.4); // smaller eta window for LHC10h pass1
task->SetEvtSelJetEtaRange(-0.5, 0.5);
task->SetTrackFilterMap(272);
// event selection
task->SetOfflineTrgMask(AliVEvent::kMB);
task->SetCentMin(0.);
task->SetCentMax(80.);
//task->SetVtxMin(-10.);
//task->SetVtxMax(10.);
mgr->AddTask(task);
// ## create the output containers ##
AliAnalysisDataContainer *coutputFastEmbedding = mgr->CreateContainer(
"fastembedding", TList::Class(), AliAnalysisManager::kOutputContainer,
Form("%s:PWGJE_FastEmbedding", AliAnalysisManager::GetCommonFileName()));
mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
mgr->ConnectOutput(task, 1, coutputFastEmbedding);
return task;
}
AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(TObjArray* aodarray){
AliAnalysisTaskFastEmbedding *task = AddTaskFastEmbedding();
if(aodarray){
task->SetArrayOfAODPaths(aodarray);
task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kAODFull);
}
return task;
}
AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(const char* filepath, Int_t mode = 0){
AliAnalysisTaskFastEmbedding *task = AddTaskFastEmbedding();
if(strlen(filepath)){
if(mode==0){ // path to single AOD
task->SetAODPath(filepath);
}
if(mode==1){ // path to text file with list of paths of multiple AODs
Printf("Read aod paths from file %s", filepath);
TObjArray* array = new TObjArray();
TObjString* ostr = 0;
TString line;
ifstream in;
in.open(filepath);
while(in.good()){
in >> line;
if(line.Length() == 0) continue;
Printf("found aod path %s", line.Data());
ostr = new TObjString(line.Data());
array->Add(ostr);
}
Printf("-> %d aod paths found", array->GetEntries());
task->SetArrayOfAODPaths(array);
}
if(mode==2) { //read root file which contains object array
TFile *f = TFile::Open(filepath);
TObjArray *objarray;
f->GetObject("array",objarray);
Printf("-> %d aod paths found", objarray->GetEntries());
task->SetArrayOfAODPaths(objarray);
Int_t count = 0;
Int_t iEntry = -1;
Int_t iEntrySum = 0;
Int_t iEntryMax = 0;
TArrayI* array = new TArrayI();
for(int i=0; i<objarray->GetEntriesFast(); i++) {
TObjString *objStr = (TObjString*) objarray->At(i);
TString str = objStr->GetString();
iEntry = str.Atoi();
array->Set(count+1);
array->AddAt(iEntry,count);
count++;
iEntrySum += iEntry;
if(iEntry>iEntryMax) iEntryMax = iEntry;
}
task->SetArrayOfAODEntries(array);
task->SetAODEntriesSum(iEntrySum);
task->SetAODEntriesMax(iEntryMax);
}
task->SetEmbedMode(AliAnalysisTaskFastEmbedding::kAODFull);
}
return task;
}
AliAnalysisTaskFastEmbedding* AddTaskFastEmbedding(const char* aodpath, const char* entriespath){
AliAnalysisTaskFastEmbedding *task = AddTaskFastEmbedding(aodpath, 1);
Printf("Read entries of aod files from %s", entriespath);
TArrayI* array = new TArrayI();
Int_t count = 0;
Int_t iEntry = -1;
Int_t iEntrySum = 0;
Int_t iEntryMax = 0;
TString line;
ifstream in;
in.open(entriespath);
while(in.good()){
in >> line;
iEntry = line.Atoi();
array->Set(count+1);
array->AddAt(iEntry,count);
count++;
iEntrySum += iEntry;
if(iEntry>iEntryMax) iEntryMax = iEntry;
}
task->SetArrayOfAODEntries(array);
task->SetAODEntriesSum(iEntrySum);
task->SetAODEntriesMax(iEntryMax);
return task;
}
AddTaskFastEmbedding.C:10 AddTaskFastEmbedding.C:11 AddTaskFastEmbedding.C:12 AddTaskFastEmbedding.C:13 AddTaskFastEmbedding.C:14 AddTaskFastEmbedding.C:15 AddTaskFastEmbedding.C:16 AddTaskFastEmbedding.C:17 AddTaskFastEmbedding.C:18 AddTaskFastEmbedding.C:19 AddTaskFastEmbedding.C:20 AddTaskFastEmbedding.C:21 AddTaskFastEmbedding.C:22 AddTaskFastEmbedding.C:23 AddTaskFastEmbedding.C:24 AddTaskFastEmbedding.C:25 AddTaskFastEmbedding.C:26 AddTaskFastEmbedding.C:27 AddTaskFastEmbedding.C:28 AddTaskFastEmbedding.C:29 AddTaskFastEmbedding.C:30 AddTaskFastEmbedding.C:31 AddTaskFastEmbedding.C:32 AddTaskFastEmbedding.C:33 AddTaskFastEmbedding.C:34 AddTaskFastEmbedding.C:35 AddTaskFastEmbedding.C:36 AddTaskFastEmbedding.C:37 AddTaskFastEmbedding.C:38 AddTaskFastEmbedding.C:39 AddTaskFastEmbedding.C:40 AddTaskFastEmbedding.C:41 AddTaskFastEmbedding.C:42 AddTaskFastEmbedding.C:43 AddTaskFastEmbedding.C:44 AddTaskFastEmbedding.C:45 AddTaskFastEmbedding.C:46 AddTaskFastEmbedding.C:47 AddTaskFastEmbedding.C:48 AddTaskFastEmbedding.C:49 AddTaskFastEmbedding.C:50 AddTaskFastEmbedding.C:51 AddTaskFastEmbedding.C:52 AddTaskFastEmbedding.C:53 AddTaskFastEmbedding.C:54 AddTaskFastEmbedding.C:55 AddTaskFastEmbedding.C:56 AddTaskFastEmbedding.C:57 AddTaskFastEmbedding.C:58 AddTaskFastEmbedding.C:59 AddTaskFastEmbedding.C:60 AddTaskFastEmbedding.C:61 AddTaskFastEmbedding.C:62 AddTaskFastEmbedding.C:63 AddTaskFastEmbedding.C:64 AddTaskFastEmbedding.C:65 AddTaskFastEmbedding.C:66 AddTaskFastEmbedding.C:67 AddTaskFastEmbedding.C:68 AddTaskFastEmbedding.C:69 AddTaskFastEmbedding.C:70 AddTaskFastEmbedding.C:71 AddTaskFastEmbedding.C:72 AddTaskFastEmbedding.C:73 AddTaskFastEmbedding.C:74 AddTaskFastEmbedding.C:75 AddTaskFastEmbedding.C:76 AddTaskFastEmbedding.C:77 AddTaskFastEmbedding.C:78 AddTaskFastEmbedding.C:79 AddTaskFastEmbedding.C:80 AddTaskFastEmbedding.C:81 AddTaskFastEmbedding.C:82 AddTaskFastEmbedding.C:83 AddTaskFastEmbedding.C:84 AddTaskFastEmbedding.C:85 AddTaskFastEmbedding.C:86 AddTaskFastEmbedding.C:87 AddTaskFastEmbedding.C:88 AddTaskFastEmbedding.C:89 AddTaskFastEmbedding.C:90 AddTaskFastEmbedding.C:91 AddTaskFastEmbedding.C:92 AddTaskFastEmbedding.C:93 AddTaskFastEmbedding.C:94 AddTaskFastEmbedding.C:95 AddTaskFastEmbedding.C:96 AddTaskFastEmbedding.C:97 AddTaskFastEmbedding.C:98 AddTaskFastEmbedding.C:99 AddTaskFastEmbedding.C:100 AddTaskFastEmbedding.C:101 AddTaskFastEmbedding.C:102 AddTaskFastEmbedding.C:103 AddTaskFastEmbedding.C:104 AddTaskFastEmbedding.C:105 AddTaskFastEmbedding.C:106 AddTaskFastEmbedding.C:107 AddTaskFastEmbedding.C:108 AddTaskFastEmbedding.C:109 AddTaskFastEmbedding.C:110 AddTaskFastEmbedding.C:111 AddTaskFastEmbedding.C:112 AddTaskFastEmbedding.C:113 AddTaskFastEmbedding.C:114 AddTaskFastEmbedding.C:115 AddTaskFastEmbedding.C:116 AddTaskFastEmbedding.C:117 AddTaskFastEmbedding.C:118 AddTaskFastEmbedding.C:119 AddTaskFastEmbedding.C:120 AddTaskFastEmbedding.C:121 AddTaskFastEmbedding.C:122 AddTaskFastEmbedding.C:123 AddTaskFastEmbedding.C:124 AddTaskFastEmbedding.C:125 AddTaskFastEmbedding.C:126 AddTaskFastEmbedding.C:127 AddTaskFastEmbedding.C:128 AddTaskFastEmbedding.C:129 AddTaskFastEmbedding.C:130 AddTaskFastEmbedding.C:131 AddTaskFastEmbedding.C:132 AddTaskFastEmbedding.C:133 AddTaskFastEmbedding.C:134 AddTaskFastEmbedding.C:135 AddTaskFastEmbedding.C:136 AddTaskFastEmbedding.C:137 AddTaskFastEmbedding.C:138 AddTaskFastEmbedding.C:139 AddTaskFastEmbedding.C:140 AddTaskFastEmbedding.C:141 AddTaskFastEmbedding.C:142 AddTaskFastEmbedding.C:143 AddTaskFastEmbedding.C:144 AddTaskFastEmbedding.C:145 AddTaskFastEmbedding.C:146 AddTaskFastEmbedding.C:147 AddTaskFastEmbedding.C:148 AddTaskFastEmbedding.C:149 AddTaskFastEmbedding.C:150 AddTaskFastEmbedding.C:151 AddTaskFastEmbedding.C:152 AddTaskFastEmbedding.C:153 AddTaskFastEmbedding.C:154 AddTaskFastEmbedding.C:155 AddTaskFastEmbedding.C:156 AddTaskFastEmbedding.C:157 AddTaskFastEmbedding.C:158 AddTaskFastEmbedding.C:159 AddTaskFastEmbedding.C:160 AddTaskFastEmbedding.C:161 AddTaskFastEmbedding.C:162 AddTaskFastEmbedding.C:163 AddTaskFastEmbedding.C:164 AddTaskFastEmbedding.C:165 AddTaskFastEmbedding.C:166 AddTaskFastEmbedding.C:167 AddTaskFastEmbedding.C:168 AddTaskFastEmbedding.C:169 AddTaskFastEmbedding.C:170 AddTaskFastEmbedding.C:171 AddTaskFastEmbedding.C:172 AddTaskFastEmbedding.C:173 AddTaskFastEmbedding.C:174 AddTaskFastEmbedding.C:175 AddTaskFastEmbedding.C:176 AddTaskFastEmbedding.C:177 AddTaskFastEmbedding.C:178 AddTaskFastEmbedding.C:179