AliAnalysisTaskJetClusterKine *AddTaskJetClusterKine(char* bGen = "KINECHARGED",Char_t *jf = "ANTIKT", Float_t radius = 0.4, Int_t kWriteAOD = 1, char* deltaFile = "", Float_t ptTrackCut = 0.15, Float_t etaTrackWindow = 0.9, Float_t vertexWindow = 10.);
Float_t kPtTrackCutCl = 0.15;
Float_t kTrackEtaWindowCl = 0.8;
Float_t kVertexWindowCl = 10.0;
AliAnalysisTaskJetClusterKine *AddTaskJetClusterKine(char* bGen, Char_t *jf, Float_t radius, Int_t kWriteAOD, char *deltaFile, Float_t ptTrackCut, Float_t etaTrackWindow, Float_t vertexWindow){
// Creates a jet fider task, configures it and adds it to the analysis manager.
kPtTrackCutCl = ptTrackCut;
kTrackEtaWindowCl = etaTrackWindow;
kVertexWindowCl = vertexWindow;
TString outputFile(deltaFile);
// Get the pointer to the existing analysis manager via the static access method.
//==============================================================================
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if(!mgr){
::Error("AddTaskJetClusterKine", "No analysis manager to connect to.");
return NULL;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//==============================================================================
if(!mgr->GetMCtruthEventHandler()){
::Error("AddTaskJetClusterKine", "This task requires an input MC event handler");
return NULL;
}
TString typeGen(bGen);
typeGen.ToUpper();
// Create the task and configure it.
//===========================================================================
TString cAdd = "";
cAdd += Form("%02d_",TMath::Nint(radius*10.));
cAdd += Form("Cut%05d",TMath::Nint(1000.*kPtTrackCutCl));
Printf("%s %s%s", typeGen.Data(), jf, cAdd.Data());
AliAnalysisTaskJetClusterKine* clus = new AliAnalysisTaskJetClusterKine(Form("JetCluster%s_%s%s",bGen,jf,cAdd.Data()));
// or a config file
clus->SetVtxCuts(kVertexWindowCl);
if(typeGen.Contains("KINECHARGED")){
clus->SetTrackTypeGen(AliAnalysisTaskJetClusterKine::kTrackKineCharged);
clus->SetTrackPtCut(kPtTrackCutCl);
clus->SetTrackEtaWindow(kTrackEtaWindowCl);
}else if(typeGen.Contains("KINEFULL")){
clus->SetTrackTypeGen(AliAnalysisTaskJetClusterKine::kTrackKineAll);
clus->SetTrackPtCut(kPtTrackCutCl);
clus->SetTrackEtaWindow(kTrackEtaWindowCl);
}
clus->SetRparam(radius);
clus->SetGhostArea(0.005);
clus->SetGhostEtamax(kTrackEtaWindowCl);
clus->SetDebugLevel(0);
switch (jf) {
case "ANTIKT":
clus->SetAlgorithm(2); // antikt from fastjet/JetDefinition.hh
break;
case "CA":
clus->SetAlgorithm(1); // CA from fastjet/JetDefinition.hh
break;
case "KT":
clus->SetAlgorithm(0); // kt from fastjet/JetDefinition.hh
break;
default:
::Error("AddTaskJetClusterKine", "Wrong jet finder selected\n");
return 0;
}
TString nameOutArray = Form("clusters%s_%s%s",bGen,jf,cAdd.Data()); //FF//
if(kWriteAOD){
if(outputFile.Length())clus->SetJetOutputFile(outputFile);
Printf("Output branch: %s",nameOutArray.Data());//FF//
clus->SetJetOutputBranch(nameOutArray.Data());//FF//
clus->SetJetOutputMinPt(0); // store only jets / clusters above a certain threshold
}
clus->SetJetOutputContainer(kWriteAOD); //0=no output 1=AOD 2=Exchange
mgr->AddTask(clus);
// Create ONLY the output containers for the data produced by the task.
// Get and connect other common input/output containers via the manager as below
//==============================================================================
AliAnalysisDataContainer *coutput1_clus = mgr->CreateContainer(Form("cluster_%s_%s%s",bGen,jf,cAdd.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_cluster_%s_%s%s",AliAnalysisManager::GetCommonFileName(),bGen,jf,cAdd.Data()));
mgr->ConnectInput (clus, 0, mgr->GetCommonInputContainer());
if(kWriteAOD==1){//FF//
mgr->ConnectOutput (clus, 0, mgr->GetCommonOutputContainer());
}
mgr->ConnectOutput (clus, 1, coutput1_clus );
if(kWriteAOD==2){//FF//
AliAnalysisDataContainer *coutput2_clus = mgr->CreateContainer( nameOutArray.Data(), //??
TClonesArray::Class(),
AliAnalysisManager::kExchangeContainer);
mgr->ConnectOutput (clus, 2, coutput2_clus); //FF//
}
return clus;
}
AddTaskJetClusterKine.C:1 AddTaskJetClusterKine.C:2 AddTaskJetClusterKine.C:3 AddTaskJetClusterKine.C:4 AddTaskJetClusterKine.C:5 AddTaskJetClusterKine.C:6 AddTaskJetClusterKine.C:7 AddTaskJetClusterKine.C:8 AddTaskJetClusterKine.C:9 AddTaskJetClusterKine.C:10 AddTaskJetClusterKine.C:11 AddTaskJetClusterKine.C:12 AddTaskJetClusterKine.C:13 AddTaskJetClusterKine.C:14 AddTaskJetClusterKine.C:15 AddTaskJetClusterKine.C:16 AddTaskJetClusterKine.C:17 AddTaskJetClusterKine.C:18 AddTaskJetClusterKine.C:19 AddTaskJetClusterKine.C:20 AddTaskJetClusterKine.C:21 AddTaskJetClusterKine.C:22 AddTaskJetClusterKine.C:23 AddTaskJetClusterKine.C:24 AddTaskJetClusterKine.C:25 AddTaskJetClusterKine.C:26 AddTaskJetClusterKine.C:27 AddTaskJetClusterKine.C:28 AddTaskJetClusterKine.C:29 AddTaskJetClusterKine.C:30 AddTaskJetClusterKine.C:31 AddTaskJetClusterKine.C:32 AddTaskJetClusterKine.C:33 AddTaskJetClusterKine.C:34 AddTaskJetClusterKine.C:35 AddTaskJetClusterKine.C:36 AddTaskJetClusterKine.C:37 AddTaskJetClusterKine.C:38 AddTaskJetClusterKine.C:39 AddTaskJetClusterKine.C:40 AddTaskJetClusterKine.C:41 AddTaskJetClusterKine.C:42 AddTaskJetClusterKine.C:43 AddTaskJetClusterKine.C:44 AddTaskJetClusterKine.C:45 AddTaskJetClusterKine.C:46 AddTaskJetClusterKine.C:47 AddTaskJetClusterKine.C:48 AddTaskJetClusterKine.C:49 AddTaskJetClusterKine.C:50 AddTaskJetClusterKine.C:51 AddTaskJetClusterKine.C:52 AddTaskJetClusterKine.C:53 AddTaskJetClusterKine.C:54 AddTaskJetClusterKine.C:55 AddTaskJetClusterKine.C:56 AddTaskJetClusterKine.C:57 AddTaskJetClusterKine.C:58 AddTaskJetClusterKine.C:59 AddTaskJetClusterKine.C:60 AddTaskJetClusterKine.C:61 AddTaskJetClusterKine.C:62 AddTaskJetClusterKine.C:63 AddTaskJetClusterKine.C:64 AddTaskJetClusterKine.C:65 AddTaskJetClusterKine.C:66 AddTaskJetClusterKine.C:67 AddTaskJetClusterKine.C:68 AddTaskJetClusterKine.C:69 AddTaskJetClusterKine.C:70 AddTaskJetClusterKine.C:71 AddTaskJetClusterKine.C:72 AddTaskJetClusterKine.C:73 AddTaskJetClusterKine.C:74 AddTaskJetClusterKine.C:75 AddTaskJetClusterKine.C:76 AddTaskJetClusterKine.C:77 AddTaskJetClusterKine.C:78 AddTaskJetClusterKine.C:79 AddTaskJetClusterKine.C:80 AddTaskJetClusterKine.C:81 AddTaskJetClusterKine.C:82 AddTaskJetClusterKine.C:83 AddTaskJetClusterKine.C:84 AddTaskJetClusterKine.C:85 AddTaskJetClusterKine.C:86 AddTaskJetClusterKine.C:87 AddTaskJetClusterKine.C:88 AddTaskJetClusterKine.C:89 AddTaskJetClusterKine.C:90 AddTaskJetClusterKine.C:91 AddTaskJetClusterKine.C:92 AddTaskJetClusterKine.C:93 AddTaskJetClusterKine.C:94 AddTaskJetClusterKine.C:95 AddTaskJetClusterKine.C:96 AddTaskJetClusterKine.C:97 AddTaskJetClusterKine.C:98 AddTaskJetClusterKine.C:99 AddTaskJetClusterKine.C:100 AddTaskJetClusterKine.C:101 AddTaskJetClusterKine.C:102 AddTaskJetClusterKine.C:103 AddTaskJetClusterKine.C:104 AddTaskJetClusterKine.C:105 AddTaskJetClusterKine.C:106 AddTaskJetClusterKine.C:107 AddTaskJetClusterKine.C:108 AddTaskJetClusterKine.C:109 AddTaskJetClusterKine.C:110 AddTaskJetClusterKine.C:111 AddTaskJetClusterKine.C:112 AddTaskJetClusterKine.C:113 AddTaskJetClusterKine.C:114 AddTaskJetClusterKine.C:115 AddTaskJetClusterKine.C:116 AddTaskJetClusterKine.C:117