#ifndef PNDEVENTINFO_H #define PNDEVENTINFO_H ////////////////////////////////////////////////////////////////////////// // // // PndEventInfo // // // // Contains and provides access to summary information in the event // // useful for analysis // // // ////////////////////////////////////////////////////////////////////////// //---------------------- // Base Class Headers -- //---------------------- #include "TObject.h" #include "TVector3.h" #include "TLorentzVector.h" #include "RhoMath/TPointErr.h" #include "RhoTools/TEventShape.h" class TEventShape; // --------------------- // -- Class Interface -- // --------------------- class PndEventInfo : public TObject { //-------------------- // Instance Members -- //-------------------- public: // Constructors PndEventInfo(); // there should eventually be a constructor that takes all the // various data items // Destructor virtual ~PndEventInfo( ); // Operations virtual void PrintOn( std::ostream& o=std::cout ) const; // accessors to contained information const TLorentzVector& AntiProtonBeam() const {return fAntiProtonBeam;} const TLorentzVector& CmFrame() const {return fCmFrame;} const TPointErr& BeamSpot() const {return fBeamSpot;} const TPointErr& PrimaryVertex() const { return fPrimaryVertex;} const TVector3& IPTruth() const {return fIPTruth;} const TEventShape& EventShape() const {return fEventShape;} int GetCharged() {return fNCharged;} int GetNeutrals() {return fNNeutrals;} // Function to set information void SetPrimaryVertex( TPointErr& inVtx) { fPrimaryVertex=inVtx;} void SetIPTruth( TVector3& inVtx) {fIPTruth=inVtx;} void SetBeamSpot( TPointErr& inVtx) { fBeamSpot=inVtx;} void SetCmFrame( TLorentzVector& cmf); void SetAntiProtonBeam( TLorentzVector &beam); void SetEventShape(TEventShape &eventShape) {fEventShape=eventShape;} void SetCharged(int n) {fNCharged=n;} void SetNeutrals(int n) {fNNeutrals=n;} private: TLorentzVector fAntiProtonBeam; // The antiproton beam TLorentzVector fCmFrame; // The CMS frame TPointErr fBeamSpot; //! The beam spot w/ error matrix TPointErr fPrimaryVertex; //! The primary vertex TVector3 fIPTruth; // the MC truth IP Int_t fNCharged; Int_t fNNeutrals; TEventShape fEventShape; public: ClassDef(PndEventInfo,1) // Summary information in the event }; // standalone print std::ostream& operator << (std::ostream& o, const PndEventInfo&); #endif