]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliAnalysisDataSlot.h
Removed class, using AliMpExMap instead
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisDataSlot.h
1 #ifndef ALIANALYSISDATASLOT_H
2 #define ALIANALYSISDATASLOT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Author: Andrei Gheata, 31/05/2006
8
9 //==============================================================================
10 //   AliAnalysysDataSlot - Class representing a data slot of an analysis task.
11 //      An analysis slot enforces a certain data type required by the Exec()
12 //      method of the analysis task. The slot must be connected to a data 
13 //      container with data of the same type.
14 //==============================================================================
15
16 #ifndef ROOT_TObject
17 #include "TObject.h"
18 #endif
19
20 class TClass;
21 class AliAnalysisDataContainer;
22 class AliAnalysisTask;
23
24 class AliAnalysisDataSlot : public TObject {
25
26 public:
27    AliAnalysisDataSlot() : fType(NULL), fParent(NULL), fContainer(NULL) {}
28    AliAnalysisDataSlot(TClass *type, AliAnalysisTask *task) : fType(type), fParent(task), fContainer(NULL) {}
29    AliAnalysisDataSlot(const AliAnalysisDataSlot &slot) : TObject(), fType(slot.fType), fParent(slot.fParent), fContainer(slot.fContainer) {}
30    virtual ~AliAnalysisDataSlot() {}
31
32    // Assignment
33    AliAnalysisDataSlot &operator=(const AliAnalysisDataSlot &slot);
34    // Connect some container to the slot
35    Bool_t                    ConnectContainer(AliAnalysisDataContainer *cont);
36    // Getters
37    TClass                   *GetType() const      {return fType;}
38    AliAnalysisTask          *GetParent() const    {return fParent;}
39    AliAnalysisDataContainer *GetContainer() const {return fContainer;}
40    TObject                  *GetData() const;
41    // Slot status checking
42    Bool_t                    IsConnected() const  {return ((fContainer)?kTRUE:kFALSE);}
43    Bool_t                    IsDataReady() const;
44    
45 protected:
46    TClass                   *fType;       // Data type required by the slot
47    AliAnalysisTask          *fParent;     // Analysis task to which the slot belongs
48    AliAnalysisDataContainer *fContainer;  // Container connected to the slot
49    
50    ClassDef(AliAnalysisDataSlot,1)  // Class describing an analysis data slot
51 };
52 #endif