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 ; 00028 typedef std::vector<ReconstructedParticle*> ReconstructedParticleVec ; 00035 class ReconstructedParticle : public LCObject { 00036 00037 public: 00039 virtual ~ReconstructedParticle() { /* nop */; } 00040 00041 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 // 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 ; 00067 virtual bool isCompound() const = 0; 00068 00071 virtual const double* getMomentum() const = 0; 00072 00075 virtual double getEnergy() const = 0; 00076 00081 virtual const FloatVec & getCovMatrix() const = 0; 00082 00086 virtual double getMass() const = 0; 00087 00090 virtual float getCharge() const = 0; 00091 00094 virtual const float* getReferencePoint() const = 0; 00095 00099 virtual const ParticleIDVec & getParticleIDs() const = 0; 00100 00104 virtual ParticleID * getParticleIDUsed() const = 0; 00105 00108 virtual float getGoodnessOfPID() const = 0; 00109 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 ; 00119 virtual const ClusterVec & getClusters() const = 0; 00120 00121 // /** The weights of cluster contributions to this particle 00122 // */ 00123 // public const FloatVec& getClusterWeights() const ; 00126 virtual const TrackVec & getTracks() const = 0; 00127 00130 virtual Vertex * getStartVertex() const = 0; 00131 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 ) ; 00174 virtual void addParticleID(ParticleID * pid) = 0; 00175 00178 virtual void addParticle(ReconstructedParticle * particle) = 0; 00179 00182 virtual void addCluster(Cluster * cluster) = 0; 00183 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 */