19 #include "AliAnalysisManager.h"
20 #include "AliVEventHandler.h"
146 fArea = source.
fArea;
235 fArea = source.
fArea;
288 fArea = source.
fArea;
291 fMCPt = source.
fMCPt;
304 DefineOutput(2, TTree::Class());
317 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPP>");
321 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPbPb>");
325 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryEmbedding>");
329 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPPCharged>");
333 ::Info(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Created an instance of AliAnalysisTaskEmcalJetTree<AliEmcalJetInfoSummaryPbPbCharged>");
337 ::Error(
"AliAnalysisTaskEmcalJetTreeBase::CreateInstance",
"Type %d not implemented!", type);
349 template <class
T, class U>
410 template <
class T,
class U>
421 template <
class T,
class U>
424 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;
425 fTree->Branch(jets->GetName(), &((*it).second));
429 template <
class T,
class U>
432 fCurrentOutput =
new std::map<std::string, std::vector<T> >();
433 fCurrentEvent =
new U();
434 TString treeName = TString::Format(
"%s_jets", GetName());
435 fTree =
new TTree(treeName, treeName);
436 fTree->Branch(
"Event", &fCurrentEvent);
446 template <
class T,
class U>
449 static typename std::map<std::string, std::vector<T> >::iterator it = fCurrentOutput->end();
451 if (it == fCurrentOutput->end() ||
TString(jets->GetName()) != it->first) {
452 it = fCurrentOutput->find(jets->GetName());
453 if (it == fCurrentOutput->end())
return;
456 it->second.push_back(
T(jet));
462 template <
class T,
class U>
465 typedef typename std::map<std::string, std::vector<T> >::iterator iterator_type;
467 for (iterator_type it = fCurrentOutput->begin(); it != fCurrentOutput->end(); it++) {
471 fCurrentEvent->Set(fCent, fEPV0);
474 if (!r)
return kFALSE;
494 ::Error(
"AddTaskEmcalJetTree",
"No analysis manager to connect to.");
499 AliVEventHandler* handler = mgr->GetInputEventHandler();
501 ::Error(
"AddTaskEmcalJetTree",
"This task requires an input event handler");
507 if (handler->InheritsFrom(
"AliESDInputHandler")) {
510 else if (handler->InheritsFrom(
"AliAODInputHandler")) {
516 if (ntracks ==
"usedefault") {
517 if (dataType ==
kESD) {
520 else if (dataType ==
kAOD) {
528 if (nclusters ==
"usedefault") {
529 if (dataType ==
kESD) {
530 nclusters =
"CaloClusters";
532 else if (dataType ==
kAOD) {
533 nclusters =
"caloClusters";
540 TString name(
"AliAnalysisTaskEmcalJetTree");
541 if (strcmp(suffix,
"")) {
562 mgr->AddTask(jetTask);
565 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
567 contname0 +=
"_jets";
569 contname1 +=
"_histos";
570 AliAnalysisDataContainer *coutput0 = mgr->CreateContainer(contname0.Data(),
571 TTree::Class(),AliAnalysisManager::kOutputContainer,
572 Form(
"%s", AliAnalysisManager::GetCommonFileName()));
573 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname1.Data(),
574 TList::Class(),AliAnalysisManager::kOutputContainer,
575 Form(
"%s", AliAnalysisManager::GetCommonFileName()));
576 mgr->ConnectInput (jetTask, 0, cinput1 );
577 mgr->ConnectOutput (jetTask, 1, coutput1 );
578 mgr->ConnectOutput (jetTask, 2, coutput0 );
AliClusterContainer * AddClusterContainer(std::string branchName, std::string contName="")
void SetParticlePtCut(Double_t cut)
void Set(const AliEmcalJetInfo &source)
EDataType_t
Switch for the data type.
void Set(const AliEmcalJetInfo &source)
templateClassImp(AliTHnT) template< class TemplateArray
void Reset()
Reset the object.
void Reset()
Reset the object.
Class that encapsulates jets in a very compact structure (pp analysis)
void FillTTree(const AliEmcalJetInfo &jetInfo, const AliJetContainer *jets)
Class that encapsulates jets in a very compact structure (embedding analysis)
void Reset()
Reset the object.
void Set(const AliEmcalJetInfo &source)
void UserCreateOutputObjects()
Overloads base class method. Creates output objects.
void Set(const AliEmcalJetInfo &source)
Class that encapsulates jets in a very compact structure (Pb-Pb analysis)
Container for particles within the EMCAL framework.
void Set(Double_t cent, Double_t ep)
UShort_t T(UShort_t m, UShort_t t)
AliEmcalJetInfoSummaryPP()
void Set(const AliEmcalJetInfo &source)
TTree * fTree
! Output tree
AliEmcalJetInfoSummaryPPCharged()
AliAnalysisTaskEmcalJetTree()
Default constructor for ROOT I/O purposes.
Double_t Phi_0_2pi() const
void UserCreateOutputObjects()
Overloads base class method. Creates output objects.
Class that encapsulates event properties in a very compact structure (PbPb analysis) ...
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.
ClassImp(AliAnalysisTaskDeltaPt) AliAnalysisTaskDeltaPt
AliParticleContainer * AddParticleContainer(std::string branchName, std::string contName="")
AliEmcalJetEventInfoSummaryPbPb()
static AliAnalysisTaskEmcalJetTreeBase * CreateInstance(const char *name, EAnalisysType_t type=kJetPP)
Class that encapsulates jets in a very compact structure (pp analysis)
void Reset()
Reset the object.
void SetVzRange(Double_t min, Double_t max)
void SetClusPtCut(Double_t cut)
void Reset()
Reset the object.
Class that encapsulates jets in a very compact structure (Pb-Pb analysis)
void SetClusECut(Double_t cut)
void SetDefaultClusterEnergy(Int_t d)
void Reset()
Reset the object.
Container structure for EMCAL clusters.
Double_t fCent
!event centrality
Container for jet within the EMCAL jet framework.
void AllocateTTree(const AliJetContainer *jets)
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.