Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

QvrtBase.h

Go to the documentation of this file.
00001 
00002 //
00003 // CLASS QvrtBase : serves as base for vertices. 
00004 //                  
00005 //
00006 // Author : C. Delaere
00007 //
00009 
00010  
00011 #ifndef _QVRTBASE_H_
00012 #define _QVRTBASE_H_
00013 
00014 #include "AlObject.h"
00015 #include "AlephCollection.h"
00016 #include "CLHEP/Matrix/SymMatrix.h"
00017 #include "BankClasses.h" 
00018 
00019 class QvecBase;
00020 
00022 class QvrtBase : public AlObject {
00023 
00024 public:
00025 
00027   QvrtBase();
00028 
00030   QvrtBase(const QvrtBase&);
00031 
00033   ~QvrtBase();
00034 
00036   bool operator<(const QvrtBase& other) const;
00037 
00039   virtual void setA4V (float x, float y, float z, float e);
00041   virtual void setA4V (HepLorentzVector vec) { _A4V = vec;}
00042 
00044   virtual HepLorentzVector A4V() const;
00045   
00047   ALEPHTYPE TYPE() const {return OBJECT;}
00048 
00050   QvecBase* GetIncomingTrack() const { return inTrack; }
00052   AlephCollection<QvecBase*> GetOutgoingTracks() const { return outTracks; }
00054   void SetIncomingTrack(QvecBase* trk) { inTrack = trk; }
00056   void AddOutgoingTrack(QvecBase* trk) { outTracks.push_back(trk);}
00057   
00058   // copies of the ALPHA utility functions
00059   virtual float QX() const;
00060   virtual float QY() const;
00061   virtual float QZ() const;
00062   virtual float QP() const;
00063   virtual float QR() const;
00064   virtual float QE() const;
00065   virtual float QM() const;
00066   virtual float QCT() const;
00067   virtual float QCH() const;
00068   virtual float QPH() const;
00069   virtual int   KVN() const;         
00070   virtual int   KVTYPE() const;      
00071   virtual double QVCHIF() const;     
00072   virtual HepSymMatrix QVEM() const; 
00073   virtual float QVEM(int,int) const; 
00074   // functions for a kink vertex only
00075   virtual float PKINK() const;
00076   virtual float PTOUT() const;
00077   virtual float PLOUT() const;
00078   virtual int   IHYPK() const;
00079   // functions defined for MC vertices only
00080   virtual float TOF() const;
00081   virtual char* VertexVolumeName() const;
00082   virtual char* VertexMechanisme() const;
00083   
00084   // the locking
00085   virtual void Lock(bool recurse = false); 
00086   virtual void unLock(bool recurse = false); 
00087   virtual int isLocked() const; 
00088   
00089 protected:
00090 
00091   HepLorentzVector _A4V;
00092   int _locked;
00093   AlephCollection<QvecBase*> outTracks;
00094   QvecBase* inTrack;
00095   
00096 private:
00097   static int NERR;
00098 };
00099 
00100 #endif

Generated at Wed Jun 18 17:19:20 2003 for ALPHA++ by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001