19 #include "AliAnalysisManager.h"
20 #include "AliVEventHandler.h"
62 fZLeading = source.
fZ;
115 fZLeading = source.
fZ;
118 fArea = source.
fArea;
174 fZLeading = source.
fZ;
177 fArea = source.
fArea;
180 fMCPt = source.
fMCPt;
193 DefineOutput(2, TTree::Class());
206 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPP>");
210 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPbPb>");
214 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryEmbedding>");
218 ::Error(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Type %d not implemented!", type);
280 typename std::map<std::string,std::vector<T> >::iterator it = (fCurrentOutput->insert(std::pair<std::string,std::vector<T> >(jets->GetName(), std::vector<T>()))).first;
281 fTree->Branch(jets->GetName(), &((*it).second));
288 fCurrentOutput =
new std::map<std::string, std::vector<T> >();
289 TString treeName = TString::Format(
"%s_jets", GetName());
290 fTree =
new TTree(treeName, treeName);
303 static typename std::map<std::string, std::vector<T> >::iterator it = fCurrentOutput->end();
305 if (it == fCurrentOutput->end() ||
TString(jets->GetName()) != it->first) {
306 it = fCurrentOutput->find(jets->GetName());
307 if (it == fCurrentOutput->end())
return;
310 it->second.push_back(
T(jet));
319 typedef typename std::map<std::string, std::vector<T> >::iterator iterator_type;
321 for (iterator_type it = fCurrentOutput->begin(); it != fCurrentOutput->end(); it++) {
326 if (!r)
return kFALSE;
346 ::Error(
"AddTaskEmcalJetTree",
"No analysis manager to connect to.");
351 AliVEventHandler* handler = mgr->GetInputEventHandler();
353 ::Error(
"AddTaskEmcalJetTree",
"This task requires an input event handler");
359 if (handler->InheritsFrom(
"AliESDInputHandler")) {
362 else if (handler->InheritsFrom(
"AliAODInputHandler")) {
368 if (ntracks ==
"usedefault") {
369 if (dataType ==
kESD) {
372 else if (dataType ==
kAOD) {
380 if (nclusters ==
"usedefault") {
381 if (dataType ==
kESD) {
382 nclusters =
"CaloClusters";
384 else if (dataType ==
kAOD) {
385 nclusters =
"caloClusters";
392 TString name(
"AliAnalysisTaskEmcalJetTree");
393 if (strcmp(suffix,
"")) {
402 if (ntracks ==
"mcparticles") {
406 else if (ntracks ==
"tracks" || ntracks ==
"Tracks") {
409 else if (!ntracks.IsNull()) {
427 mgr->AddTask(jetTask);
430 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
432 contname0 +=
"_jets";
434 contname1 +=
"_histos";
435 AliAnalysisDataContainer *coutput0 = mgr->CreateContainer(contname0.Data(),
436 TTree::Class(),AliAnalysisManager::kOutputContainer,
437 Form(
"%s", AliAnalysisManager::GetCommonFileName()));
438 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname1.Data(),
439 TList::Class(),AliAnalysisManager::kOutputContainer,
440 Form(
"%s", AliAnalysisManager::GetCommonFileName()));
441 mgr->ConnectInput (jetTask, 0, cinput1 );
442 mgr->ConnectOutput (jetTask, 1, coutput1 );
443 mgr->ConnectOutput (jetTask, 2, coutput0 );
void SetParticlePtCut(Double_t cut)
EDataType_t
Switch for the data type.
void Set(const AliEmcalJetInfo &source)
templateClassImp(AliTHnT) template< class TemplateArray
void Reset()
Reset the object.
Container with name, TClonesArray and cuts for particles.
AliTrackContainer * AddTrackContainer(const char *n)
Class that encapsulates jets in a very compact structure (embedding analysis)
AliAnalysisTaskEmcalJetTree()
Default constructor for ROOT I/O purposes.
void Reset()
Reset the object.
void Set(const AliEmcalJetInfo &source)
void UserCreateOutputObjects()
Overloads base class method. Creates output objects.
void Set(const AliEmcalJetInfo &source)
Container for particles within the EMCAL framework.
UShort_t T(UShort_t m, UShort_t t)
AliEmcalJetInfoSummaryPP()
AliClusterContainer * AddClusterContainer(const char *n)
void UserCreateOutputObjects()
Overloads base class method. Creates output objects.
TTree * fTree
! Output tree
Double_t Phi_0_2pi() const
Declaration of class AliAnalysisTaskEmcalJetTree.
void SetNeedEmcalGeom(Bool_t n)
void SetHistoType(EHistoType_t t)
Pure virtual base class for AliAnalysisTaskEmcalJetTree<T>
Implementation of a task to generate a tree with all jets.
void FillTTree(const AliEmcalJetInfo &jetInfo, const AliJetContainer *jets)
static AliAnalysisTaskEmcalJetTreeBase * CreateInstance(const char *name, EAnalisysType_t type=kJetPP)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Class that encapsulates jets in a very compact structure (pp analysis)
void SelectPhysicalPrimaries(Bool_t s)
void Reset()
Reset the object.
void SetVzRange(Double_t min, Double_t max)
AliMCParticleContainer * AddMCParticleContainer(const char *n)
void SetClusPtCut(Double_t cut)
Class that encapsulates jets in a very compact structure (Pb-Pb analysis)
void SetClusECut(Double_t cut)
void SetDefaultClusterEnergy(Int_t d)
Container structure for EMCAL clusters.
Container for MC-true particles within the EMCAL framework.
AliParticleContainer * AddParticleContainer(const char *n)
void AllocateTTree(const AliJetContainer *jets)
Double_t fCent
!event centrality
Container for jet within the EMCAL jet framework.
Implementation of a task to perform QA on jet spectra.
static AliAnalysisTaskEmcalJetTreeBase * AddTaskEmcalJetTree(TString ntracks="usedefault", TString nclusters="usedefault", Double_t trackPtCut=0.15, Double_t clusECut=0.30, EAnalisysType_t type=kJetPP, TString suffix="")
void SetClusHadCorrEnergyCut(Double_t cut)
Class that encapsulates jets.