#include "TClonesArray.h" /*********** BxLaben *************/ class BxLabenCluster: public TObject { public: BxLabenCluster () {}; BxLabenCluster (int i); virtual ~BxLabenCluster (); Int_t GetNHits () const { return nhits; } const std::vector& GetC () const { return c; } private: Int_t nhits; std::vector c; //-> 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 ************/ BxLabenCluster::BxLabenCluster(int n) { c.clear(); c.push_back(7.3); c.push_back(7.5); c.push_back(7.7); } 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); } BxLabenCluster::~BxLabenCluster() { } BxLaben::~BxLaben() { } BxEvent::~BxEvent() {}