#ifndef ALITOFMONITOROBJECT_H #define ALITOFMONITOROBJECT_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* author: Roberto Preghenella (R+), preghenella@bo.infn.it */ /////////////////////////////////////////////////////////////// // // // This class provides the TOF monitor object base class. // // // /////////////////////////////////////////////////////////////// #include "TObject.h" class AliTOFMonitorObjectData; #define ALTOF_MO_MAXNAME 128 template class AliTOFMonitorObject : public TObject { public: AliTOFMonitorObject(); //default constructor AliTOFMonitorObject(const AliTOFMonitorObject &source); //copy contructor AliTOFMonitorObject &operator =(const AliTOFMonitorObject &source); //operator = virtual ~AliTOFMonitorObject(); //default contructor /* getters */ Char_t *GetName() {return fName;}; //get name Int_t GetId() {return fId;}; //get id UInt_t GetNumberOfChildren() {return fNumberOfChildren;}; //get number of children AliTOFMonitorObject *GetParent() {return fParent;}; //get parent // ChildType &GetChild(UInt_t iChild) {return iChild < fNumberOfChildren ? fChild[iChild] : NULL;}; //get child ChildType &GetChild(UInt_t iChild) {return fChild[iChild];}; //get child Bool_t GetActive() {return fActive;}; //get active Bool_t GetMonitor() {return fMonitor;}; //get monitor DataType &GetData() {return fData;} //get data DataType &GetLocalData() {return fLocalData;} //get local data /* setters */ void SetName(const Char_t *Name) {strcpy(fName, Name);}; //set name void SetId(Int_t Id) {fId = Id;}; //set id void SetNumberOfChildren(UInt_t NumberOfChildren) {fNumberOfChildren = NumberOfChildren < ChildNumber ? NumberOfChildren : ChildNumber;}; //set number of children void SetParent(AliTOFMonitorObject *Parent) {fParent = Parent;}; //set parent void SetChild(UInt_t iChild, ChildType &Child) {fChild[iChild < fNumberOfChildren ? iChild : fNumberOfChildren - 1] = Child;}; //set child void SetActive(Bool_t Active) {fActive = Active;}; //set active void SetMonitor(Bool_t Monitor) {fMonitor = Monitor;}; //set monitor void SetData(const DataType &Data) {fData = Data;}; //set data void SetLocalData(const DataType &LocalData) {fLocalData = LocalData;}; //set local data /* methods */ Bool_t IsActive() {return GetActive();}; //is active Bool_t IsMonitor() {return GetMonitor();}; //is monitor void ResetData() {fData.Reset();}; //reset data void ResetLocalData() {fLocalData.Reset();}; //reset local data protected: Char_t fName[ALTOF_MO_MAXNAME]; //monitor object name Int_t fId; //id UInt_t fNumberOfChildren; //number of children AliTOFMonitorObject *fParent; //parent ChildType fChild[ChildNumber]; //children array Bool_t fActive; //active flag Bool_t fMonitor; //monitor flag private: DataType fData; //data DataType fLocalData; //local data ClassDefT(AliTOFMonitorObject, 1); }; ClassDef3T2(AliTOFMonitorObject, DataType, ChildType, ChildNumber); #endif /* ALITOFMONITOROBJECT_H */