#include "TClonesArray.h" /*********** BxLaben *************/ class BxLabenRawHit: public TObject { public: BxLabenRawHit (); virtual ~BxLabenRawHit (); UShort_t GetLg () const { return lg; } private: UShort_t lg; ClassDef(BxLabenRawHit, 1) }; class BxLabenCluster: public TObject { public: BxLabenCluster () {}; BxLabenCluster (int i); virtual ~BxLabenCluster (); Int_t GetNHits () const { return nhits; } const std::vector& GetRawHits () const { return hits; } const std::vector& GetC () const { return c; } private: Int_t nhits; std::vector c; //-> std::vector hits; //-> ClassDef(BxLabenCluster, 1) }; class BxLaben: public TObject { public: BxLaben(); virtual ~BxLaben (); void Assign(); const std::vector& GetClusters () const { return clusters; } const std::vector& GetL () const { return l; } Double_t GetTriggerTime () const { return trigger_time; } private: Double_t trigger_time; std::vector clusters; //-> std::vector l; //-> ClassDef(BxLaben, 1) }; /*********** BxEvent *************/ class BxEvent : public TObject { public: BxEvent(); virtual ~BxEvent (); void Assign(); // event header getters Int_t GetEvNum () const { return evnum; } const std::vector& GetV () const { return v; } // subclass getters const BxLaben& GetLaben () const { return laben; } private: Int_t evnum; BxLaben laben; std::vector v; //-> ClassDef(BxEvent, 1) }; /********** implementation ************/ BxLabenRawHit::BxLabenRawHit() : lg(666) { } BxLabenCluster::BxLabenCluster(int n) { c.clear(); c.push_back(7.3); c.push_back(7.5); c.push_back(7.7); hits.clear(); for (int i = 0 ; i < n; i++) hits.push_back(BxLabenRawHit()); } BxLaben::BxLaben() { } void BxLaben::Assign() { trigger_time = 3.1; l.clear(); l.push_back(3.3); l.push_back(3.5); l.push_back(3.7); clusters.clear(); for (int i = 0 ; i < 3; i++) clusters.push_back(30); } BxEvent::BxEvent() : laben() { } void BxEvent::Assign() { evnum = 15; laben.Assign(); v.clear(); v.push_back(2.3); v.push_back(2.5); v.push_back(2.7); } BxLabenRawHit::~BxLabenRawHit() {} BxLabenCluster::~BxLabenCluster() { } BxLaben::~BxLaben() { } BxEvent::~BxEvent() {}