![]() |
AliRoot Core
3dc7879 (3dc7879)
|
AliAnalysysDataContainer 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. More...
#include <AliAnalysisDataContainer.h>
Public Types | |
enum | ENotifyMessage { kDeleteData, kSaveData, kFileChange } |
enum | EAnalysisContainerFlags { kPostEventLoop = BIT(14), kSpecialOutput = BIT(15), kRegisterDataset = BIT(16), kExchangeData = BIT(17), kTouchedFlag = BIT(18) } |
Public Member Functions | |
AliAnalysisDataContainer () | |
AliAnalysisDataContainer (const AliAnalysisDataContainer &cont) | |
AliAnalysisDataContainer (const char *name, TClass *type) | |
virtual | ~AliAnalysisDataContainer () |
AliAnalysisDataContainer & | operator= (const AliAnalysisDataContainer &cont) |
Assignment. More... | |
TObject * | GetData () const |
Getters. More... | |
const char * | GetFileName () const |
const char * | GetFolderName () const |
TFile * | GetFile () const |
TClass * | GetType () const |
AliAnalysisTask * | GetProducer () const |
TObjArray * | GetConsumers () const |
virtual void | GetEntry (Long64_t ientry) |
void | Reset () |
Setters. More... | |
void | ResetDataReady () |
virtual Bool_t | SetData (TObject *data, Option_t *option="") |
void | SetDataOwned (Bool_t 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 | SetFileName (const char *filename) |
void | SetFile (TFile *f) |
void | SetProducer (AliAnalysisTask *prod, Int_t islot) |
void | SetTouched (Bool_t flag=kTRUE) |
void | AddConsumer (AliAnalysisTask *cons, Int_t islot) |
void | DeleteData () |
AliAnalysisDataWrapper * | ExportData () const |
Wrapping. More... | |
void | ImportData (AliAnalysisDataWrapper *pack) |
Bool_t | IsDataReady () const |
Container status checking. More... | |
Bool_t | IsExchange () const |
Bool_t | IsPostEventLoop () const |
Bool_t | IsSpecialOutput () const |
Bool_t | IsRegisterDataset () const |
Bool_t | IsTouched () const |
Bool_t | IsOwnedData () const |
Bool_t | ClientsExecuted () const |
Bool_t | HasConsumers () const |
Bool_t | HasProducer () const |
virtual Long64_t | Merge (TCollection *list) |
Container merging. More... | |
virtual void | NotifyChange (ENotifyMessage) |
Send a notify signal to the container. More... | |
void | PrintContainer (Option_t *option="all", Int_t indent=0) const |
Print connected tasks/status. More... | |
Protected Attributes | |
Bool_t | fDataReady |
Flag that data is ready. More... | |
Bool_t | fOwnedData |
Flag data ownership. More... | |
TString | fFileName |
File storing the data. More... | |
TString | fFolderName |
Folder name in the output file. More... | |
TFile * | fFile |
! Opened file More... | |
TObject * | fData |
Contained data. More... | |
TClass * | fType |
! Type of contained data More... | |
AliAnalysisTask * | fProducer |
Analysis task to which the slot belongs. More... | |
TObjArray * | fConsumers |
List of consumers of the data. More... | |
Private Member Functions | |
void | SetType (TClass *type) |
AliAnalysysDataContainer 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.
Definition at line 39 of file AliAnalysisDataContainer.h.
Enumerator | |
---|---|
kPostEventLoop | |
kSpecialOutput | |
kRegisterDataset | |
kExchangeData | |
kTouchedFlag |
Definition at line 47 of file AliAnalysisDataContainer.h.
Enumerator | |
---|---|
kDeleteData | |
kSaveData | |
kFileChange |
Definition at line 42 of file AliAnalysisDataContainer.h.
AliAnalysisDataContainer::AliAnalysisDataContainer | ( | ) |
Definition at line 68 of file AliAnalysisDataContainer.cxx.
AliAnalysisDataContainer::AliAnalysisDataContainer | ( | const AliAnalysisDataContainer & | cont | ) |
Copy ctor.
Definition at line 101 of file AliAnalysisDataContainer.cxx.
AliAnalysisDataContainer::AliAnalysisDataContainer | ( | const char * | name, |
TClass * | type | ||
) |
Default constructor.
Definition at line 83 of file AliAnalysisDataContainer.cxx.
|
virtual |
Destructor. Deletes data ! (What happens if data is a container ???)
Definition at line 124 of file AliAnalysisDataContainer.cxx.
void AliAnalysisDataContainer::AddConsumer | ( | AliAnalysisTask * | cons, |
Int_t | islot | ||
) |
Add a consumer for contained data;
Definition at line 170 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisTask::ConnectInput(), and SetTouched().
Bool_t AliAnalysisDataContainer::ClientsExecuted | ( | ) | const |
Check if all client tasks have executed.
Definition at line 194 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisManager::CleanContainers(), DeleteData(), and IsOwnedData().
void AliAnalysisDataContainer::DeleteData | ( | ) |
Delete data if not needed anymore.
Definition at line 207 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisManager::CleanContainers(), and SetTouched().
AliAnalysisDataWrapper * AliAnalysisDataContainer::ExportData | ( | ) | const |
Wrapping.
Wraps data for sending it through the net.
Definition at line 433 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisManager::PackOutput(), and SetTouched().
|
inline |
Definition at line 68 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::InitAnalysis(), and AliAnalysisManager::UnpackOutput().
|
inline |
Getters.
Definition at line 62 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::CheckNotify(), AliAnalysisTask::CheckPostData(), AliAnalysisDataSlot::GetData(), Merge(), AliAnalysisManager::PackOutput(), AliAnalysisManager::Terminate(), and AliAnalysisManager::UnpackOutput().
|
virtual |
If data is ready and derives from TTree or from TBranch, this will get the requested entry in memory if not already loaded.
Definition at line 238 of file AliAnalysisDataContainer.cxx.
Referenced by GetConsumers().
|
inline |
Definition at line 65 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::PackOutput(), and AliAnalysisManager::Terminate().
|
inline |
Definition at line 63 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisAlien::GetListOfFiles(), AliAnalysisManager::ImportWrappers(), AliAnalysisManager::InitAnalysis(), AliAnalysisManager::OpenFile(), AliAnalysisManager::OpenProofFile(), AliAnalysisManager::PackOutput(), AliAnalysisManager::Terminate(), and AliAnalysisManager::ValidateOutputFiles().
|
inline |
Definition at line 64 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::ImportWrappers(), AliAnalysisManager::OpenFile(), AliAnalysisManager::OpenProofFile(), and AliAnalysisManager::Terminate().
|
inline |
Definition at line 67 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::ImportWrappers(), and AliAnalysisManager::PackOutput().
TClass * AliAnalysisDataContainer::GetType | ( | ) | const |
Get class type for this slot.
Definition at line 227 of file AliAnalysisDataContainer.cxx.
Referenced by AddConsumer(), AliAnalysisDataContainer(), AliAnalysisDataSlot::ConnectContainer(), AliAnalysisTask::ConnectInput(), AliAnalysisTask::ConnectOutput(), GetEntry(), GetFile(), AliAnalysisManager::ImportWrappers(), operator=(), and SetProducer().
|
inline |
Definition at line 97 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::InitAnalysis(), and AliAnalysisManager::UnpackOutput().
|
inline |
Definition at line 98 of file AliAnalysisDataContainer.h.
void AliAnalysisDataContainer::ImportData | ( | AliAnalysisDataWrapper * | pack | ) |
Unwraps data from a data wrapper.
Definition at line 450 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisManager::ImportWrappers(), and SetTouched().
|
inline |
Container status checking.
Definition at line 89 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::CleanContainers(), AliAnalysisDataSlot::GetData(), and AliAnalysisDataSlot::IsDataReady().
|
inline |
Definition at line 90 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::CheckPostData(), PrintContainer(), and AliAnalysisTask::Reset().
|
inline |
Definition at line 95 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::CleanContainers().
|
inline |
Definition at line 91 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::CheckNotify(), AliAnalysisManager::InitAnalysis(), and PrintContainer().
|
inline |
Definition at line 93 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::ImportWrappers(), AliAnalysisManager::OpenProofFile(), AliAnalysisManager::Terminate(), and AliAnalysisManager::ValidateOutputFiles().
|
inline |
Definition at line 92 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::ImportWrappers(), AliAnalysisManager::InitAnalysis(), AliAnalysisManager::OpenFile(), AliAnalysisManager::PackOutput(), and AliAnalysisManager::Terminate().
|
inline |
Definition at line 94 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::ProducersTouched().
|
virtual |
Container merging.
Merge a list of containers with this one. Containers in the list must have data of the same type.
Definition at line 259 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisDataWrapper::Data(), and HasProducer().
|
inlinevirtual |
Send a notify signal to the container.
Definition at line 102 of file AliAnalysisDataContainer.h.
AliAnalysisDataContainer & AliAnalysisDataContainer::operator= | ( | const AliAnalysisDataContainer & | cont | ) |
Assignment.
Assignment.
Definition at line 133 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisDataWrapper::AliAnalysisDataWrapper().
void AliAnalysisDataContainer::PrintContainer | ( | Option_t * | option = "all" , |
Int_t | indent = 0 |
||
) | const |
Print connected tasks/status.
Print info about this container.
Definition at line 300 of file AliAnalysisDataContainer.cxx.
Referenced by NotifyChange(), AliAnalysisTask::PrintContainers(), and AliAnalysisManager::PrintStatus().
|
inline |
Setters.
Definition at line 71 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::Reset().
|
inline |
Definition at line 72 of file AliAnalysisDataContainer.h.
|
virtual |
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.
Definition at line 334 of file AliAnalysisDataContainer.cxx.
Referenced by AliPriorsTask(), AliAnalysisManager::ExecAnalysis(), AliAnalysisManager::Init(), AliAnalysisTask::PostData(), ResetDataReady(), and AliReconstruction::SlaveBegin().
|
inline |
Definition at line 74 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::CreateContainer(), operator=(), and AliAnalysisTask::~AliAnalysisTask().
|
inline |
Definition at line 75 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::CreateContainer().
|
inline |
Definition at line 80 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::OpenFile(), AliAnalysisManager::OpenProofFile(), AliAnalysisManager::PackOutput(), and AliAnalysisManager::Terminate().
void AliAnalysisDataContainer::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
Definition at line 376 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisManager::CreateContainer(), and SetRegisterDataset().
|
inline |
Definition at line 76 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisTask::ConnectOutput(), AliAnalysisTask::SetPostEventLoop(), and AliAnalysisManager::UnpackOutput().
void AliAnalysisDataContainer::SetProducer | ( | AliAnalysisTask * | prod, |
Int_t | islot | ||
) |
Set the producer of data. The slot number is required for data type checking.
Definition at line 398 of file AliAnalysisDataContainer.cxx.
Referenced by AliAnalysisTask::ConnectOutput(), and SetFile().
|
inline |
Definition at line 78 of file AliAnalysisDataContainer.h.
|
inline |
Definition at line 77 of file AliAnalysisDataContainer.h.
Referenced by runAODFilterMC(), and AliAnalysisManager::SetOutputEventHandler().
|
inline |
Definition at line 82 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisManager::PrintStatus(), and Reset().
|
inlineprivate |
Definition at line 107 of file AliAnalysisDataContainer.h.
Referenced by GetType().
|
protected |
List of consumers of the data.
Definition at line 118 of file AliAnalysisDataContainer.h.
Referenced by AddConsumer(), AliAnalysisDataContainer(), ClientsExecuted(), GetConsumers(), HasConsumers(), operator=(), PrintContainer(), SetData(), SetProducer(), and ~AliAnalysisDataContainer().
|
protected |
Contained data.
Definition at line 115 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisDataWrapper::Data(), DeleteData(), ExportData(), GetData(), GetEntry(), ImportData(), Merge(), AliAnalysisDataWrapper::Merge(), operator=(), AliAnalysisDataWrapper::operator=(), Reset(), SetData(), ~AliAnalysisDataContainer(), and AliAnalysisDataWrapper::~AliAnalysisDataWrapper().
|
protected |
Flag that data is ready.
Definition at line 110 of file AliAnalysisDataContainer.h.
Referenced by DeleteData(), GetEntry(), ImportData(), IsDataReady(), operator=(), Reset(), ResetDataReady(), SetData(), and SetProducer().
|
protected |
! Opened file
Definition at line 114 of file AliAnalysisDataContainer.h.
Referenced by GetFile(), operator=(), and SetFile().
|
protected |
File storing the data.
Definition at line 112 of file AliAnalysisDataContainer.h.
Referenced by GetFileName(), operator=(), PrintContainer(), and SetFileName().
|
protected |
Folder name in the output file.
Definition at line 113 of file AliAnalysisDataContainer.h.
Referenced by GetFolderName(), operator=(), PrintContainer(), and SetFileName().
|
protected |
Flag data ownership.
Definition at line 111 of file AliAnalysisDataContainer.h.
Referenced by DeleteData(), IsOwnedData(), operator=(), SetDataOwned(), and ~AliAnalysisDataContainer().
|
protected |
Analysis task to which the slot belongs.
Definition at line 117 of file AliAnalysisDataContainer.h.
Referenced by AddConsumer(), GetProducer(), HasProducer(), operator=(), PrintContainer(), SetData(), and SetProducer().
|
protected |
! Type of contained data
Definition at line 116 of file AliAnalysisDataContainer.h.
Referenced by AliAnalysisDataContainer(), GetEntry(), GetType(), and SetType().