/data3/calcul/jacquem/working_dir/Micromegas/micromegasFrameWork/lcio/src/cpp/src/CPPFORT/lcvtx.cc

Go to the documentation of this file.
00001 #include "CPPFORT/lcvtx.h"
00002 
00003 #include "lcio.h" 
00004 #include "IMPL/VertexImpl.h"
00005 #include "IMPL/ReconstructedParticleImpl.h"
00006 
00007 using namespace lcio ;
00008 
00009 #include <iostream>
00010 
00011 // create delete Vertex
00012 
00013 PTRTYPE lcvtxcreate(){
00014   VertexImpl* vtx = new VertexImpl ;
00015   return C2F_POINTER( LCObject*, vtx ) ;
00016 }
00017 int lcvtxdelete( PTRTYPE vertex ){
00018   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00019   delete vtx ;
00020   return LCIO::SUCCESS ;
00021 }
00022 
00023 
00024 // get Methods
00025 
00026 int lcvtxid( PTRTYPE vertex ) {
00027   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00028   return vtx->id() ;
00029 }
00030 
00031 bool lcvtxisprimary ( PTRTYPE vertex ) {
00032   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00033   return vtx->isPrimary() ;
00034 }
00035 
00036 char* lcvtxgetalgorithmtype ( PTRTYPE vertex ) {
00037   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00038   return const_cast<char*>( vtx->getAlgorithmType().c_str() );
00039 }
00040 
00041 float lcvtxgetchi2( PTRTYPE vertex ) {
00042   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00043   return vtx->getChi2() ;
00044 }
00045 
00046 float lcvtxgetprobability( PTRTYPE vertex ) {
00047   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00048   return vtx->getProbability() ;
00049 }
00050 
00051 int lcvtxgetposition( PTRTYPE vertex, float pos[3] ) {
00052   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00053   for( int i=0 ; i<3 ;  *pos++ = vtx->getPosition()[i++]  ) ;
00054   return LCIO::SUCCESS ;
00055 }
00056 
00057 int lcvtxgetcovmatrix( PTRTYPE vertex, float cvmtx[VTXCOVMATRIX] )  {
00058   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00059   for( int i=0 ; i<VTXCOVMATRIX ;  cvmtx[i] = vtx->getCovMatrix()[i++]  ) ;
00060   return LCIO::SUCCESS ;
00061 }
00062 
00063 int lcvtxgetparameters( PTRTYPE vertex, float* vec, int* nvec ) {
00064   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00065   int ntot = *nvec - 1 ;
00066   const FloatVec* floatVec = &vtx->getParameters() ;
00067   for(unsigned int l=0; l < floatVec->size(); l++){
00068     if ( l > (unsigned)(ntot) ) {
00069       std::cout << "LCVertex: in getParameters more than " << ntot << "parameters to store" << std::endl ;
00070       return LCIO::ERROR ;
00071     }
00072     *vec++ = (*floatVec)[l] ;
00073   }
00074   *nvec = (int)(floatVec->size() + 1);
00075   return LCIO::SUCCESS ;
00076 }
00077 
00078 PTRTYPE lcvtxgetassociatedparticle( PTRTYPE vertex ) {
00079   Vertex* vtx = f2c_pointer<Vertex,LCObject>( vertex ) ;
00080   ReconstructedParticle* recP = vtx->getAssociatedParticle();
00081   return reinterpret_cast<PTRTYPE>( recP );
00082 }
00083 
00084 
00085 // set,add Methods
00086 
00087 int lcvtxsetprimary( PTRTYPE vertex, bool pri ) {
00088   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00089   vtx->setPrimary( pri ) ;
00090   return LCIO::SUCCESS ;
00091 }
00092 
00093 int lcvtxsetalgorithmtype( PTRTYPE vertex, char* type ) {
00094   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00095   vtx->setAlgorithmType( type ) ;
00096   return LCIO::SUCCESS ;
00097 }
00098 
00099 int lcvtxsetchi2( PTRTYPE vertex, float chi2 ) {
00100   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00101   vtx->setChi2( chi2 ) ;
00102   return LCIO::SUCCESS ;
00103 }
00104 
00105 int lcvtxsetprobability( PTRTYPE vertex, float probability ) {
00106   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00107   vtx->setProbability( probability ) ;
00108   return LCIO::SUCCESS ;
00109 }
00110 
00111 int lcvtxsetposition( PTRTYPE vertex, float pos[3] ) {
00112   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00113   vtx->setPosition( pos ) ;
00114   return LCIO::SUCCESS ;
00115 }
00116 
00117 int lcvtxsetcovmatrix( PTRTYPE vertex, float cvmtx[VTXCOVMATRIX] ) {
00118   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00119   vtx->setCovMatrix( cvmtx ) ;
00120   return LCIO::SUCCESS ;
00121 }
00122 
00123 int lcvtxaddparameter( PTRTYPE vertex, float param) {
00124   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00125   vtx->addParameter( param ) ;
00126   return LCIO::SUCCESS ;
00127 }
00128 
00129 int lcvtxsetassociatedparticle( PTRTYPE vertex, PTRTYPE particle ) {
00130   VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
00131   ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( particle ) ;
00132   vtx->setAssociatedParticle( rcp ) ;
00133   return LCIO::SUCCESS ;
00134 }
00135 

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