#ifndef TPAISecondary_hxx_seen #define TPAISecondary_hxx_seen #include #include #include #include #include #include #include "IDatum.hxx" #include "IHandle.hxx" #include "IChannelId.hxx" #include #include "IPAIDeltaRay.hxx" namespace COMET { class IPAISecondary; class IPAISecondaryContainer; } /// A class to save a Delta Ray from PAI physics list class COMET::IPAISecondary: public TObject { public: IPAISecondary(void); IPAISecondary(COMET::IChannelId channelID, COMET::IPAIDeltaRay* contrib, TVector3 globalxyz, TVector3 localxyz, double time); ~IPAISecondary(); TVector3 GetGlobalPosition() const {return fGlobalPos;} TVector3 GetLocalPosition() const {return fLocalPos;} double GetTime() const {return fTime;} COMET::IPAIDeltaRay* GetContributor() const { return fDeltaRayContributor; }; COMET::IChannelId GetChannelID() const { return fChannelID; } /// Print the delta ray information. void ls(Option_t* opt) const; /// Less-than operator bool operator< (const IPAISecondary& rhs) const { return GetTime() < rhs.GetTime(); } private: /// position & direction TVector3 fGlobalPos; TVector3 fLocalPos; // local against the wire double fTime; COMET::IPAIDeltaRay* fDeltaRayContributor; COMET::IChannelId fChannelID; ClassDef(IPAISecondary,1); }; class COMET::IPAISecondaryContainer : public IDatum, public std::vector { public: IPAISecondaryContainer(const char* name="PAISecondaries", const char* title="PAI Secondary") : IDatum(name,title) {}; ~IPAISecondaryContainer() {} private: ClassDef(IPAISecondaryContainer,1); }; #endif