QEventAuxDataR.hh
Go to the documentation of this file.00001 #ifndef _Q_EVENT_AUXDATA_HH_
00002 #define _Q_EVENT_AUXDATA_HH_
00003
00010 #include <TObject.h>
00011 #include <list>
00012 #include <string>
00013 #include <map>
00014
00015 class QTree;
00016 class TObjString;
00017 class QObjectR;
00018
00019 namespace Cuore {class QEventAuxData; class QObject;};
00020
00021 class QEventAuxDataR : public TObject {
00022
00023 public:
00024 QEventAuxDataR();
00025
00026 virtual ~QEventAuxDataR();
00027
00028 void Init(const Cuore::QEventAuxData& evAuxData, bool saveAll = false);
00029
00030 void Init(QTree& tree);
00031
00032 void Assign(const Cuore::QEventAuxData& evAuxData);
00033
00034 void AddBranchesToTree(QTree& tree);
00035
00036 void Fill(Cuore::QEventAuxData& evAuxData) ;
00037
00038 void Clear();
00039
00040
00041 template<class T> class Datum {
00042 public:
00043 Datum() { fObj = 0; fQObj = 0; fName = ""; }
00044
00045 Datum(const std::string& name) { fName = name; fObj = 0; fQObj = 0; }
00046
00047 virtual ~Datum() {};
00048
00049 const std::string& GetName() const { return fName; }
00050
00051 const T& Get() const { return fObj; }
00052
00053 private:
00054 const Datum<T>& operator=(const Datum<T>&) { return *this; }
00055
00056 std::string fName;
00057 T fObj;
00058 Cuore::QObject* fQObj;
00059
00060 friend class QEventAuxDataR;
00061 ClassDef(Datum,1)
00062 };
00063
00064 const std::list<QEventAuxDataR::Datum<QObjectR*> >& GetQObjectRList() const {return fQObjectList; }
00065 const std::list<QEventAuxDataR::Datum<TObjString*> >& GetTObjStringList() const {return fStringList; }
00066 const std::list<QEventAuxDataR::Datum<TObject*> >& GetTObjectList() const {return fTObjectList; }
00067 const std::list<QEventAuxDataR::Datum<int> >& GetIntList() const {return fIntList; }
00068 const std::list<QEventAuxDataR::Datum<double> >& GetDoubleList() const {return fDoubleList; }
00069 const std::list<QEventAuxDataR::Datum<float> >& GetFloatList() const {return fFloatList; }
00070 const std::list<QEventAuxDataR::Datum<bool> >& GetBoolList() const {return fBoolList; }
00071
00072 QObjectR* GetQObjectR(std::string name);
00073 TObject* GetTObject(std::string name);
00074 TObjString* GetTObjString(std::string name);
00075 int GetInt(std::string name);
00076 double GetDouble(std::string name);
00077 float GetFloat(std::string name);
00078 bool GetBool(std::string name);
00079
00080
00081
00082 private:
00083
00084 std::list<Datum<int> > fIntList;
00085 std::list<Datum<double> > fDoubleList;
00086 std::list<Datum<float> > fFloatList;
00087 std::list<Datum<bool> > fBoolList;
00088 std::list<Datum<TObjString*> > fStringList;
00089 std::list<Datum<QObjectR*> > fQObjectList;
00090 std::list<Datum<TObject*> > fTObjectList;
00091
00092 ClassDef(QEventAuxDataR,1)
00093 };
00094
00095 #endif