ROOT logo
AliRoot » ANALYSIS » AliAnalysisDataContainer

class AliAnalysisDataContainer: public TNamed

   AliAnalysysDataContainer - Container of data of arbitrary type deriving
      from TObject used for analysis. A container must be connected to the
      output data slot of a single analysis task (producer) , but also as
      input slot for possibly several other tasks (consumers). The connected
      slots must enforce the same data type as the container (or a derived type).
      A container becomes the owner of the contained data once this was produced.

 Containers should be defined by the analysis module using:

   AliAnalysisModule::AddContainer(const char *name, TClass *type);

 A container should be connected to a producer:

Function Members (Methods)

public:
AliAnalysisDataContainer()
AliAnalysisDataContainer(const AliAnalysisDataContainer& cont)
AliAnalysisDataContainer(const char* name, TClass* type)
virtual~AliAnalysisDataContainer()
voidTObject::AbstractMethod(const char* method) const
voidAddConsumer(AliAnalysisTask* cons, Int_t islot)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
Bool_tClientsExecuted() const
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDeleteData()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
AliAnalysisDataWrapper*ExportData() const
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TObjArray*GetConsumers() const
TObject*GetData() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual voidGetEntry(Long64_t ientry)
TFile*GetFile() const
const char*GetFileName() const
const char*GetFolderName() const
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
AliAnalysisTask*GetProducer() const
virtual const char*TNamed::GetTitle() const
TClass*GetType() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_tHasConsumers() const
virtual ULong_tTNamed::Hash() const
Bool_tHasProducer() const
voidImportData(AliAnalysisDataWrapper* pack)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsDataReady() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tIsExchange() const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tIsOwnedData() const
Bool_tIsPostEventLoop() const
Bool_tIsRegisterDataset() const
virtual Bool_tTNamed::IsSortable() const
Bool_tIsSpecialOutput() const
Bool_tIsTouched() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Long64_tMerge(TCollection* list)
virtual Bool_tTObject::Notify()
virtual voidNotifyChange(AliAnalysisDataContainer::ENotifyMessage)
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliAnalysisDataContainer&operator=(const AliAnalysisDataContainer& cont)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidPrintContainer(Option_t* option = "all", Int_t indent = 0) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
voidTObject::ResetBit(UInt_t f)
voidResetDataReady()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tSetData(TObject* data, Option_t* option = "")
voidSetDataOwned(Bool_t flag)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetExchange(Bool_t flag)
voidSetFile(TFile* f)
voidSetFileName(const char* filename)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPostEventLoop(Bool_t flag = kTRUE)
voidSetProducer(AliAnalysisTask* prod, Int_t islot)
voidSetRegisterDataset(Bool_t flag = kTRUE)
voidSetSpecialOutput(Bool_t flag = kTRUE)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetTouched(Bool_t flag = kTRUE)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidSetType(TClass* type)

Data Members

public:
enum ENotifyMessage { kDeleteData
kSaveData
kFileChange
};
enum EAnalysisContainerFlags { kPostEventLoop
kSpecialOutput
kRegisterDataset
kExchangeData
kTouchedFlag
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TObjArray*fConsumersList of consumers of the data
TObject*fDataContained data
Bool_tfDataReadyFlag that data is ready
TFile*fFile! Opened file
TStringfFileNameFile storing the data
TStringfFolderNameFolder name in the output file
TStringTNamed::fNameobject identifier
Bool_tfOwnedDataFlag data ownership
AliAnalysisTask*fProducerAnalysis task to which the slot belongs
TStringTNamed::fTitleobject title
TClass*fType! Type of contained data

Class Charts

Inheritance Chart:
TNamed
AliAnalysisDataContainer

Function documentation

AliAnalysisDataContainer()
 Dummy ctor.
AliAnalysisDataContainer(const char* name, TClass* type)
 Default constructor.
AliAnalysisDataContainer(const AliAnalysisDataContainer& cont)
 Copy ctor.
~AliAnalysisDataContainer()
 Destructor. Deletes data ! (What happens if data is a container ???)
AliAnalysisDataContainer & operator=(const AliAnalysisDataContainer& cont)
 Assignment.
void AddConsumer(AliAnalysisTask* cons, Int_t islot)
 Add a consumer for contained data;
Bool_t ClientsExecuted() const
 Check if all client tasks have executed.
void DeleteData()
 Delete data if not needed anymore.
TClass * GetType() const
 Get class type for this slot.
void GetEntry(Long64_t ientry)
 If data is ready and derives from TTree or from TBranch, this will get the
 requested entry in memory if not already loaded.
Long64_t Merge(TCollection* list)
 Merge a list of containers with this one. Containers in the list must have
 data of the same type.
void PrintContainer(Option_t* option = "all", Int_t indent = 0) const
 Print info about this container.
Bool_t SetData(TObject* data, Option_t* option = "")
 Set the data as READY only if it was published by the producer.
 If there is no producer declared, this is a top level container.
void SetFileName(const char* filename)
 The filename field can be actually composed by the actual file name followed
 by :dirname (optional):
 filename = file_name[:dirname]
 No slashes (/) allowed
void SetProducer(AliAnalysisTask* prod, Int_t islot)
 Set the producer of data. The slot number is required for data type checking.
AliAnalysisDataWrapper * ExportData() const
 Wraps data for sending it through the net.
void ImportData(AliAnalysisDataWrapper* pack)
 Unwraps data from a data wrapper.
TObject * GetData() const
 Getters
{return fData;}
const char * GetFileName() const
{return fFileName.Data();}
const char * GetFolderName() const
{return fFolderName.Data();}
TFile * GetFile() const
{return fFile;}
AliAnalysisTask * GetProducer() const
{return fProducer;}
TObjArray * GetConsumers() const
{return fConsumers;}
void Reset()
 Setters
void ResetDataReady()
void SetDataOwned(Bool_t flag)
{fOwnedData = flag;}
void SetExchange(Bool_t flag)
void SetPostEventLoop(Bool_t flag = kTRUE)
void SetSpecialOutput(Bool_t flag = kTRUE)
void SetRegisterDataset(Bool_t flag = kTRUE)
void SetFile(TFile* f)
{fFile = f;}
void SetTouched(Bool_t flag = kTRUE)
Bool_t IsDataReady() const
 Container status checking
{return fDataReady;}
Bool_t IsExchange() const
Bool_t IsPostEventLoop() const
Bool_t IsSpecialOutput() const
Bool_t IsRegisterDataset() const
Bool_t IsTouched() const
Bool_t IsOwnedData() const
{return fOwnedData;}
Bool_t HasConsumers() const
{return (fConsumers != 0);}
Bool_t HasProducer() const
 Container merging
{return (fProducer != 0);}
void NotifyChange(AliAnalysisDataContainer::ENotifyMessage )
 Send a notify signal to the container
{;}
void SetType(TClass* type)
{fType = type;}