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 */
1.3.9.1