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

Generated on Tue Nov 16 10:49:59 2010 for CUORE Software by  doxygen 1.5.6