/data3/calcul/jacquem/working_dir/Micromegas/micromegasFrameWork/lcio/src/cpp/src/IMPL/ReconstructedParticleImpl.cc

Go to the documentation of this file.
00001 #include "IMPL/ReconstructedParticleImpl.h"
00002 #include <algorithm>
00003 #include "IMPL/ParticleIDImpl.h"
00004 
00005 
00006 using namespace EVENT ;
00007 
00008 namespace IMPL{
00009 
00010 
00011   ReconstructedParticleImpl::ReconstructedParticleImpl() :
00012     _type(0) ,
00013     _energy(0) ,
00014     _mass(0) ,
00015     _charge(0),
00016     _pidUsed(0),
00017     _goodnessOfPID(0),
00018     _sv(0)
00019     //_ev(0)
00020   {
00021     _cov.resize( NCOVARIANCE ) ;
00022     //     for(int i=0 ; i < NCOVARIANCE ; i++ ) { _cov.push_back( 0.0 ) ;  }
00023     _momentum[0] = 0. ;
00024     _momentum[1] = 0. ;
00025     _momentum[2] = 0. ;
00026     _reference[0] = 0. ;
00027     _reference[1] = 0. ;
00028     _reference[2] = 0. ;    
00029   }
00030 
00031   ReconstructedParticleImpl::~ReconstructedParticleImpl(){
00032     // delete the pids owned by this particle
00033     for(  ParticleIDVec::iterator iter = _pid.begin() ; iter != _pid.end() ; iter++){
00034       delete *iter ;
00035     }
00036   }
00037  
00038   int ReconstructedParticleImpl::getType() const { return _type ; }
00039 //   bool ReconstructedParticleImpl::isPrimary() const { return _primary ;}
00040 
00041   const double* ReconstructedParticleImpl::getMomentum() const { return  _momentum ; }
00042   double ReconstructedParticleImpl::getEnergy() const { return  _energy ; }
00043   const EVENT::FloatVec & ReconstructedParticleImpl::getCovMatrix() const { return _cov   ; }
00044   double ReconstructedParticleImpl::getMass() const { return  _mass ; }
00045   float ReconstructedParticleImpl::getCharge() const { return  _charge ; }
00046   const float* ReconstructedParticleImpl::getReferencePoint() const { return  _reference ; }
00047 
00048 
00049   EVENT::ParticleID * ReconstructedParticleImpl::getParticleIDUsed() const { return  _pidUsed ; }
00050   
00051   float ReconstructedParticleImpl::getGoodnessOfPID() const{
00052     return _goodnessOfPID ;
00053   }
00054   const EVENT::ParticleIDVec & ReconstructedParticleImpl::getParticleIDs() const { return  _pid ; }
00055 
00056   const EVENT::ReconstructedParticleVec& ReconstructedParticleImpl::getParticles() const { return _particles ; } 
00057 //   const EVENT::FloatVec & ReconstructedParticleImpl::getParticleWeights() const { return  _particleWeights ; }
00058 
00059   const EVENT::ClusterVec& ReconstructedParticleImpl::getClusters() const { return _clusters  ; } 
00060 //   const EVENT::FloatVec & ReconstructedParticleImpl::getClusterWeights() const { return _clusterWeights  ; }
00061 
00062   const EVENT::TrackVec& ReconstructedParticleImpl::getTracks() const { return _tracks  ; } 
00063 //   const EVENT::FloatVec & ReconstructedParticleImpl::getTrackWeights() const { return  _trackWeights ; }
00064 
00065 //   const EVENT::MCParticleVec& ReconstructedParticleImpl::getMCParticles() const { return _mcParticles  ; }
00066 //   const EVENT::FloatVec & ReconstructedParticleImpl::getMCParticleWeights() const { return  _mcParticleWeights ; }
00067   
00068   EVENT::Vertex * ReconstructedParticleImpl::getStartVertex() const { return _sv  ; }
00069                                                                                                                                                              
00070   //EVENT::Vertex * ReconstructedParticleImpl::getEndVertex() const { return _ev  ; }
00071 
00072   EVENT::Vertex * ReconstructedParticleImpl::getEndVertex() const {
00073     if(getParticles().size()!=0){
00074       return getParticles().at(0)->getStartVertex();
00075     }
00076     return NULL;
00077   }
00078                                                                                                                                                           
00079   void ReconstructedParticleImpl::setStartVertex( EVENT::Vertex *sv ){
00080     checkAccess("ReconstructedParticleImpl::setStartVertex" );
00081     _sv = sv;
00082   }
00083 
00084   /*  
00085   void ReconstructedParticleImpl::setEndVertex( EVENT::Vertex *ev ){
00086     checkAccess("ReconstructedParticleImpl::setEndVertex" );
00087     _ev = ev;
00088   }
00089 */
00090 
00091   void ReconstructedParticleImpl::setType(int type){
00092     checkAccess("ReconstructedParticleImpl::setType" );
00093     _type = type ;
00094   }
00095 
00096 //   void ReconstructedParticleImpl::setPrimary(bool primary){
00097 //     checkAccess("ReconstructedParticleImpl::setPrimary" );
00098 //     _primary = primary ;
00099 //   }
00100 
00101 //   void ReconstructedParticleImpl::setTypeFlag( int typeFlag){
00102 //     checkAccess("ReconstructedParticleImpl::setTypeFlag" );
00103 //     _typeFlag  = typeFlag ;
00104 //   }
00105 
00106   void ReconstructedParticleImpl::setMomentum( const float* momentum ){
00107     checkAccess("ReconstructedParticleImpl::setMomentum" );
00108     _momentum[0]  = momentum[0] ;
00109     _momentum[1]  = momentum[1] ;
00110     _momentum[2]  = momentum[2] ;
00111   }
00112 
00113   void ReconstructedParticleImpl::setMomentum( const double* momentum ){
00114     checkAccess("ReconstructedParticleImpl::setMomentum" );
00115     _momentum[0]  = momentum[0] ;
00116     _momentum[1]  = momentum[1] ;
00117     _momentum[2]  = momentum[2] ;
00118   }
00119 
00120   void ReconstructedParticleImpl::setEnergy( float energy){
00121     checkAccess("ReconstructedParticleImpl::setEnergy" );
00122     _energy  = energy ;
00123   }
00124 
00125   void ReconstructedParticleImpl::setCovMatrix( const float* cov ){
00126     checkAccess("ReconstructedParticleImpl::setCovMatrix" );
00127     for(int i=0;i<NCOVARIANCE;i++) _cov[i] = cov[i] ;
00128   }
00129 
00130   void ReconstructedParticleImpl::setCovMatrix( const EVENT::FloatVec& cov ){
00131     checkAccess("ReconstructedParticleImpl::" );
00132     for(int i=0;i<NCOVARIANCE;i++) _cov[i] = cov[i] ;
00133   }
00134 
00135   void ReconstructedParticleImpl::setMass( float mass ){
00136     checkAccess("ReconstructedParticleImpl::setMass" );
00137     _mass  = mass ;
00138   }
00139 
00140   void ReconstructedParticleImpl::setCharge( float charge ){
00141     checkAccess("ReconstructedParticleImpl::setCharge" );
00142     _charge  = charge ;
00143   }
00144 
00145   void ReconstructedParticleImpl::setReferencePoint( const float* reference ){
00146     checkAccess("ReconstructedParticleImpl::setReferencePoint" );
00147     _reference[0]  = reference[0] ;
00148     _reference[1]  = reference[1] ;
00149     _reference[2]  = reference[2] ;
00150   }
00151 
00152   void ReconstructedParticleImpl::setParticleIDUsed( ParticleID* pidUsed ){
00153     checkAccess("ReconstructedParticleImpl::setParticleIDUsed" );
00154     _pidUsed = pidUsed ;
00155   }
00156 
00157   void ReconstructedParticleImpl::setGoodnessOfPID( float goodness ){
00158     checkAccess("ReconstructedParticleImpl::setGoodnessOfPID") ;
00159     _goodnessOfPID = goodness ;
00160   }
00161 
00162   void ReconstructedParticleImpl::addParticleID( ParticleID* pid ){
00163     // adding a PID should also be possible w/ read only data
00164     //    checkAccess("ReconstructedParticleImpl::addParticleID" );
00165     _pid.push_back( pid ) ;
00166     // sort wrt. probability
00167     sort( _pid.begin() , _pid.end() , PIDSort()  ) ;
00168   }
00169 
00170   void ReconstructedParticleImpl::addParticle( ReconstructedParticle* particle ){
00171     checkAccess("ReconstructedParticleImpl::addParticle" );
00172     _particles.push_back( particle ) ;
00173 //     _particleWeights.push_back( weight ) ;
00174   }
00175 
00176   void ReconstructedParticleImpl::addCluster( Cluster* cluster ){
00177     checkAccess("ReconstructedParticleImpl::addCluster" );
00178     _clusters.push_back( cluster ) ;
00179 //     _clusterWeights.push_back( weight ) ;
00180   }
00181 
00182   void ReconstructedParticleImpl::addTrack( Track* track ){
00183     checkAccess("ReconstructedParticleImpl::addTrack" );
00184     _tracks.push_back( track ) ;
00185 //     _trackWeights.push_back( weight ) ;
00186   }
00187   
00188 //   void ReconstructedParticleImpl::addMCParticle(  MCParticle* mcParticle , float weight ){
00189 //     checkAccess("ReconstructedParticleImpl::addMCParticle" );
00190 //     _mcParticles.push_back( mcParticle ) ;
00191 //     _mcParticleWeights.push_back( weight ) ;
00192 //   }
00193 
00194 
00195 } // end namespace

Generated on Mon Jan 7 13:15:21 2013 for MicromegasFramework by  doxygen 1.4.7