00001
00014 #ifndef DATA_BASE_HH
00015 #define DATA_BASE_HH
00016
00017 #include "Base-TypeDef.hh"
00018 #include <vector>
00019 #include <map>
00020 #include <TObject.h>
00021
00022 namespace larlight{
00027 class data_base : public TObject {
00028
00029 public:
00030
00032 data_base(DATA::DATA_TYPE type=DATA::DATA_TYPE_MAX) : TObject(){ clear_data(); _type=type; }
00033
00035 data_base(const data_base &original) : TObject(original),
00036 _type(original._type),
00037 _ass(original._ass)
00038 {}
00039
00040
00042 virtual ~data_base(){}
00043
00045 virtual void clear_data() {_ass.clear();}
00046
00048 DATA::DATA_TYPE data_type() const {return _type; }
00049
00051 void add_association(DATA::DATA_TYPE type, const std::vector<unsigned short> ass);
00052
00054 size_t size_association(DATA::DATA_TYPE type) const;
00055
00057 const std::vector<unsigned short> association(DATA::DATA_TYPE type, size_t index=0) const;
00058
00059 protected:
00060
00062 DATA::DATA_TYPE _type;
00063
00065 std::map<larlight::DATA::DATA_TYPE,std::vector<std::vector<unsigned short> > > _ass;
00066
00068 ClassDef(data_base,4)
00070
00071 };
00072
00077 class event_base : public data_base {
00078
00079 public:
00080
00082 event_base(DATA::DATA_TYPE type=DATA::DATA_TYPE_MAX) : data_base(type) { clear_data(); }
00083
00085 event_base(const event_base &original) : data_base(original),
00086 fRunNumber(original.fRunNumber),
00087 fSubRunNumber(original.fSubRunNumber),
00088 fEventID(original.fEventID)
00089 {}
00090
00091
00093 virtual ~event_base(){}
00094
00096 virtual void clear_data();
00097
00099 void set_run (UInt_t run) { fRunNumber = run; }
00101 void set_subrun (UInt_t run) { fSubRunNumber = run; }
00103 void set_event_id (UInt_t id ) { fEventID = id; }
00104
00106 UInt_t run () const { return fRunNumber; }
00108 UInt_t subrun () const { return fSubRunNumber; }
00110 UInt_t event_id () const { return fEventID; }
00112 DATA::DATA_TYPE data_type() const {return _type; }
00113
00114 protected:
00115
00117 UInt_t fRunNumber;
00118
00120 UInt_t fSubRunNumber;
00121
00123 UInt_t fEventID;
00124
00126 ClassDef(event_base,3)
00128
00129 };
00130 }
00131 #endif
00132