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

Go to the documentation of this file.
00001 #include "CPPFORT/lctrk.h"
00002 
00003 #include "lcio.h" 
00004 #include "IMPL/TrackImpl.h"
00005 #include "LCIOSTLTypes.h"
00006 
00007 using namespace lcio ;
00008 
00009 #include <iostream>
00010 
00011 #define NCOVARIANCE 15
00012 
00013 // create delete ReconstructedParticle
00014 
00015 PTRTYPE lctrkcreate(){
00016   TrackImpl* trk = new TrackImpl ;
00017   return C2F_POINTER( LCObject*, trk ) ;
00018 }
00019 int lctrkdelete( PTRTYPE track ){
00020   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00021   delete trk ;
00022   return LCIO::SUCCESS ;
00023 }
00024 
00025 
00026 // get Methods
00027 
00028 int lctrkid( PTRTYPE track )  {
00029   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00030   return trk->id() ;
00031 }
00032 
00033 int lctrkgettype( PTRTYPE track )  {
00034   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00035   return trk->getType() ;
00036 }
00037 
00038 // int lctrktesttype( PTRTYPE track , int bit )  {
00039 //   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00040 //   return trk->testType( bit ) ;
00041 // }
00042 
00043 // float lctrkgetmomentum( PTRTYPE track )  {
00044 //   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00045 //   return trk->getMomentum() ;
00046 // }
00047 
00048 float lctrkgetomega( PTRTYPE track )  {
00049   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00050   return trk->getOmega() ;
00051 }
00052 
00053 // float lctrkgettheta( PTRTYPE track ) {
00054 //   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00055 //   return trk->getTheta() ;
00056 // }
00057 
00058 float lctrkgettanlambda( PTRTYPE track ) {
00059   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00060   return trk->getTanLambda() ;
00061 }
00062 
00063 float lctrkgetphi( PTRTYPE track ) {
00064   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00065   return trk->getPhi() ;
00066 }
00067 
00068 float lctrkgetd0( PTRTYPE track ) {
00069   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00070   return trk->getD0() ;
00071 }
00072 
00073 float lctrkgetz0( PTRTYPE track ) {
00074   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00075   return trk->getZ0() ;
00076 }
00077 
00078 int lctrkgetcovmatrix( PTRTYPE track, float cvmtx[NCOVARIANCE] ) {
00079   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00080   for( int i=0 ; i<NCOVARIANCE ;  *cvmtx++ = trk->getCovMatrix()[i++]  ) ;
00081   return LCIO::SUCCESS ;
00082 }
00083 
00084 int lctrkgetreferencepoint( PTRTYPE track, float* refpoint ) {
00085   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00086   for( int i=0 ; i<3 ;  *refpoint++ = trk->getReferencePoint()[i++]  ) ;
00087   return LCIO::SUCCESS ;
00088 }
00089 
00090 int lctrkisreferencepointpca( PTRTYPE track ) {
00091   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00092   return trk->isReferencePointPCA() ;
00093 }
00094 
00095 float lctrkgetchi2( PTRTYPE track ) {
00096   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00097   return trk->getChi2() ;
00098 }
00099 
00100 int lctrkgetndf( PTRTYPE track ) {
00101   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00102   return trk->getNdf() ;
00103 }
00104 
00105 float lctrkgetdedx( PTRTYPE track ) {
00106   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00107   return trk->getdEdx() ;
00108 }
00109 
00110 float lctrkgetdedxerror( PTRTYPE track ) {
00111   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00112   return trk->getdEdxError() ;
00113 }
00114 
00115 float lctrkgetradiusofinnermosthit( PTRTYPE track ) {
00116   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00117   return trk->getRadiusOfInnermostHit() ;
00118 }
00119 
00120 int     lctrkgetsubdetectorhitnumbers( PTRTYPE track, int* intv, int* nintv ) {
00121   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00122   IntVec& intVec =  trk->subdetectorHitNumbers() ;
00123   int n = intVec.size() ;
00124   if (n > *nintv) {
00125     std::cerr << "Warning in lctrkgetsubdetectorhitnumbers: vector size " <<  n
00126               << " larger then target array size " << *nintv << std::endl ;
00127       n = *nintv ;
00128   }
00129   for(int j=0;j<n;j++) {
00130     intv[j] = intVec[j] ;
00131   }
00132   *nintv = n ;
00133   return LCIO::SUCCESS ;
00134 }
00135 
00136 PTRTYPE lctrkgettracks( PTRTYPE track ) {
00137   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00138   const TrackVec& idvect = trk->getTracks();
00139   return reinterpret_cast<PTRTYPE>( &idvect );
00140 }
00141 
00142 PTRTYPE lctrkgettrackerhits( PTRTYPE track ) {
00143   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00144   const TrackerHitVec& idvect = trk->getTrackerHits();
00145   return reinterpret_cast<PTRTYPE>( &idvect );
00146 }
00147 
00148 
00149 // set,add Methods
00150 
00151 // int lctrksettype( PTRTYPE track, int type ) {
00152 //   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00153 //   trk->setType( type ) ;
00154 //   return LCIO::SUCCESS ;
00155 // }
00156 
00157 int lctrksettypebit( PTRTYPE track, int index , int val) {
00158   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00159   trk->setTypeBit( index , val ) ;
00160   return LCIO::SUCCESS ;
00161 }
00162 
00163 int lctrksetomega( PTRTYPE track, float omega ) {
00164   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00165    trk->setOmega( omega ) ;
00166    return LCIO::SUCCESS ;
00167 }
00168 
00169 int lctrksettanlambda( PTRTYPE track, float tanLambda ) {
00170   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00171   trk->setTanLambda( tanLambda ) ;
00172   return LCIO::SUCCESS ;
00173 }
00174 
00175 int lctrksetphi( PTRTYPE track, float phi ) {
00176   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00177   trk->setPhi( phi ) ;
00178   return LCIO::SUCCESS ;
00179 }
00180 
00181 int lctrksetd0( PTRTYPE track, float d0 ) {
00182   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00183   trk->setD0( d0 ) ;
00184   return LCIO::SUCCESS ;
00185 }
00186 
00187 int lctrksetz0( PTRTYPE track, float z0 ) {
00188   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00189   trk->setZ0( z0 ) ;
00190   return LCIO::SUCCESS ;
00191 }
00192 
00193 int lctrksetcovmatrix( PTRTYPE track, float cvmtx[NCOVARIANCE] ) {
00194   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00195   trk->setCovMatrix( cvmtx ) ;
00196   return LCIO::SUCCESS ;
00197 }
00198 
00199 int lctrksetreferencepoint( PTRTYPE track, float refpoint[3] ) {
00200   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00201   trk->setReferencePoint( refpoint ) ;
00202   return LCIO::SUCCESS ;
00203 }
00204 
00205 int lctrksetisreferencepointpca( PTRTYPE track , int val) { 
00206   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00207   trk->setIsReferencePointPCA( val ) ;
00208   return LCIO::SUCCESS ;
00209 }
00210 
00211 int lctrksetchi2( PTRTYPE track, float chi2) {
00212   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00213   trk->setChi2( chi2 ) ;
00214   return LCIO::SUCCESS ;
00215 }
00216 
00217 int lctrksetndf( PTRTYPE track, int ndf) {
00218   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00219   trk->setNdf( ndf ) ;
00220   return LCIO::SUCCESS ;
00221 }
00222 
00223 int lctrksetdedx( PTRTYPE track, float dedx) {
00224   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00225   trk->setdEdx( dedx ) ;
00226   return LCIO::SUCCESS ;
00227 }
00228 
00229 int lctrksetdedxerror( PTRTYPE track, float dedxerr) {
00230   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00231   trk->setdEdxError( dedxerr ) ;
00232   return LCIO::SUCCESS ;
00233 }
00234 
00235 int lctrksetradiusofinnermosthit( PTRTYPE track, float r) {
00236   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00237   trk->setRadiusOfInnermostHit( r ) ;
00238   return LCIO::SUCCESS ;
00239 }
00240 
00241 int lctrkaddtrack( PTRTYPE track, PTRTYPE addtrack ) {
00242   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00243   Track* addtrk = f2c_pointer<Track,LCObject>( addtrack ) ;
00244   trk->addTrack( addtrk ) ;
00245   return LCIO::SUCCESS ;
00246 }
00247 
00248 int lctrkaddhit( PTRTYPE track, PTRTYPE hit ) {
00249   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00250   TrackerHit* addhit = f2c_pointer<TrackerHit,LCObject>( hit ) ;
00251   trk->addHit( addhit ) ;
00252   return LCIO::SUCCESS ;
00253 }
00254 
00255 
00256 int     lctrksetsubdetectorhitnumbers( PTRTYPE track, int* intv, const int nintv ) {
00257   TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
00258   IntVec& intVec =  trk->subdetectorHitNumbers() ;
00259   intVec.resize( nintv ) ;
00260   for(int j=0;j<nintv;j++) {
00261     intVec[j] =  intv[j]  ;
00262   }
00263   return LCIO::SUCCESS ;
00264 }
00265 

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