Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

ReconstructedParticle.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // AID-GENERATED
00003 // =========================================================================
00004 // This class was generated by AID - Abstract Interface Definition          
00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
00006 // =========================================================================
00007 #ifndef EVENT_RECONSTRUCTEDPARTICLE_H
00008 #define EVENT_RECONSTRUCTEDPARTICLE_H 1
00009 
00010 #include "EVENT/Cluster.h"
00011 #include "EVENT/LCObject.h"
00012 #include "EVENT/ParticleID.h"
00013 #include "EVENT/ReconstructedParticle.h"
00014 #include "EVENT/Track.h"
00015 #include "LCIOSTLTypes.h"
00016 #include "empty_ignore.h"
00017 
00018 namespace EVENT {
00019 
00020 class Cluster;
00021 class ParticleID;
00022 class Track;
00023 class Vertex;
00024 
00025 
00026 class ReconstructedParticle ;
00027 /**Vector of (pointers to) ReconstructedParticles.*/
00028 typedef std::vector<ReconstructedParticle*> ReconstructedParticleVec ;
00029 /** The LCIO reconstructedParticle.
00030  * 
00031  * @author gaede
00032  * @version $Id: ReconstructedParticle.aid,v 1.18 2006/09/21 06:10:35 gaede Exp $
00033  */
00034 
00035 class ReconstructedParticle : public LCObject {
00036 
00037 public: 
00038     /// Destructor.
00039     virtual ~ReconstructedParticle() { /* nop */; }
00040 
00041 
00042     /** Useful typedef for template programming with LCIO */
00043     typedef ReconstructedParticle lcobject_type ;
00044 
00045 //           
00046 // @cpp{
00047 //   public:
00048 //     static const int UNKNOWN  =  0 ; 
00049 //     static const int SINGLE   =  1 ; 
00050 //     static const int V0       =  2 ; 
00051 //     static const int COMPOUND =  3 ; 
00052 //     static const int JET      =  4 ; 
00053 // }
00054 //      
00055     /** Type of reconstructed particle.
00056      *  Check/set collection parameters ReconstructedParticleTypeNames and 
00057      *  ReconstructedParticleTypeValues.
00058      */
00059     virtual int getType() const = 0;
00060 
00061 //     /** Return particles primary flag. All particles in the ReconstructedParticle
00062 //      *  collection should by definition return true. Compound partciles will return false.
00063 //      */
00064 //     public boolean isPrimary() const ;
00065     /** Convenient method - same as (getParticles().size() > 0 ).
00066      */
00067     virtual bool isCompound() const = 0;
00068 
00069     /** The reconstructed particle's 3-momentum - only float used in files,
00070      */
00071     virtual const double* getMomentum() const = 0;
00072 
00073     /** Energy of the  reconstructed particle - only float used in files.
00074      */
00075     virtual double getEnergy() const = 0;
00076 
00077     /** Covariance matrix of the reconstructed particle's 4vector (10 parameters).
00078      *  Stored as lower triangle matrix of the four momentum (px,py,pz,E), i.e.
00079      *  cov(px,px), cov(py,px), cov( py,py ) , ....
00080      */
00081     virtual const FloatVec & getCovMatrix() const = 0;
00082 
00083     /** Mass of the  reconstructed particle, set independently from four vector quantities 
00084      *  - only float used in files.
00085      */
00086     virtual double getMass() const = 0;
00087 
00088     /** Charge of the reconstructed particle.
00089      */
00090     virtual float getCharge() const = 0;
00091 
00092     /** Reference point of the reconstructedParticle parameters.
00093      */
00094     virtual const float* getReferencePoint() const = 0;
00095 
00096     /** The particle Id's sorted by their likelihood.
00097      * @see ParticleID
00098      */
00099     virtual const ParticleIDVec & getParticleIDs() const = 0;
00100 
00101     /** The particle Id used for the kinematics of this particle.
00102      * @see ParticleID
00103      */
00104     virtual ParticleID * getParticleIDUsed() const = 0;
00105 
00106     /** The overall goodness of the PID on a scale of [0;1].
00107      */
00108     virtual float getGoodnessOfPID() const = 0;
00109 
00110     /** The reconstructed particles that have been combined to this particle.
00111      */
00112     virtual const ReconstructedParticleVec & getParticles() const = 0;
00113 
00114 //     /** The weights of the reconstructed particles combined to this particle
00115 //      */
00116 //     public const FloatVec& getParticleWeights() const ; 
00117     /** The clusters that have been used for this particle.
00118      */
00119     virtual const ClusterVec & getClusters() const = 0;
00120 
00121 //     /** The weights of cluster contributions to this particle
00122 //      */
00123 //     public const FloatVec& getClusterWeights() const ; 
00124     /** The tracks that have been used for this particle.
00125      */
00126     virtual const TrackVec & getTracks() const = 0;
00127 
00128     /** The start vertex associated to this particle
00129      */
00130     virtual Vertex * getStartVertex() const = 0;
00131 
00132     /** The vertex where the particle decays
00133      *  This method actually returns the start vertex from the first daughter particle found
00134      */
00135     virtual Vertex * getEndVertex() const = 0;
00136 
00137     // set methods
00138 //     /** Set the type of reconstructed particle, one of:<br>
00139 //      *  ReconstructedParticle::SINGLE,<br>  
00140 //      *  ReconstructedParticle::V0,<br>
00141 //      *  ReconstructedParticle::COMPOUND,<br>
00142 //      *  ReconstructedParticle::JET<br>
00143 //      */
00144 //     public void setType( int type)  ;
00145 //     /**Set primary flag.
00146 //      */
00147 //     public void setPrimary( boolean primary ) ;
00148 //     /** Set particle momentum (px,py,pz).
00149 //      */
00150 //     public void setMomentum( const float3V momentum ) ;
00151 //     /**Set energy.
00152 //      */
00153 //     public void setEnergy( float energy) ;
00154 //     /** Set the values of the covariance matrix of the particles four vector (px,py,pz,E).
00155 //      */
00156 //     public void setCovMatrix( const float3V cov ) ; 
00157 //              
00158 //    /** Set the values of the covariance matrix of the particles four vector (px,py,pz,E).
00159 //      */
00160 //     public void setCovMatrix( const FloatVec& cov ) ;
00161 //       
00162 //     /**Set mass - independently from four vector. 
00163 //      */
00164 //     public void setMass( float mass ) ;
00165 //     /** Set the charge. 
00166 //      */
00167 //     public void setCharge( float charge ) ;
00168 //     /**Set the reference point, i.e. the point where the four vector is defined.
00169 //      */
00170 //     public void setReferencePoint( const float3V reference ) ;
00171     /**Add a ParticleID object.
00172      * @see ParticleID
00173      */
00174     virtual void addParticleID(ParticleID * pid) = 0;
00175 
00176     /**Add a particle that has been used to create this particle.
00177      */
00178     virtual void addParticle(ReconstructedParticle * particle) = 0;
00179 
00180     /**Add a cluster that has been used to create this particle.
00181      */
00182     virtual void addCluster(Cluster * cluster) = 0;
00183 
00184     /**Add a track that has been used to create this particle.
00185      */
00186     virtual void addTrack(Track * track) = 0;
00187 
00188 //     /**Add a hypothesis for the MCParticle that this reconstructed particle corresponds to.
00189 //      */
00190 //     public void addMCParticle( MCParticle* mcParticle , float weight = 1.0 ) ;
00191 }; // class
00192 } // namespace EVENT
00193 #endif /* ifndef EVENT_RECONSTRUCTEDPARTICLE_H */

Generated on Sun Jun 3 06:31:59 2007 for A TPC Tracking Environment by  doxygen 1.3.9.1