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

Go to the documentation of this file.
00001 #include "CPPFORT/lcmcp.h"
00002 
00003 #include "lcio.h" 
00004 #include "IMPL/MCParticleImpl.h"
00005 
00006 using namespace lcio ;
00007 
00008 #include <iostream>
00009 
00010 
00011 PTRTYPE lcmcpcreate(){
00012   MCParticleImpl* mcp = new MCParticleImpl ;
00013   
00014   // uncomment to demonstrate that the addresses are different depending on the
00015   // type of the pointer....
00016   //   cout << "lcmcpcreate: " <<  C2F_POINTER( LCObject*, mcp ) << ", "  
00017   //        << C2F_POINTER( MCParticleData*, mcp ) << ", " 
00018   //        << C2F_POINTER( MCParticle*, mcp ) << ", " 
00019   //        << C2F_POINTER( MCParticleImpl*, mcp ) << endl ;
00020   return C2F_POINTER( LCObject*, mcp ) ;
00021 }
00022 int lcmcpdelete( PTRTYPE mcparticle ){
00023   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00024   delete mcp ;
00025   return LCIO::SUCCESS ;
00026 }
00027 int lcmcpgetnumberofparents( PTRTYPE mcparticle )  {
00028   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00029   return mcp->getParents().size() ;
00030 }
00031 PTRTYPE lcmcpgetparent( PTRTYPE mcparticle, int i ) {
00032   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00033   return C2F_POINTER(LCObject*,  mcp->getParents()[i] ) ;
00034 }
00035 // PTRTYPE lcmcpgetsecondparent( PTRTYPE mcparticle ) {
00036 //   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00037 //   return C2F_POINTER(LCObject*,  mcp->getSecondParent()  ) ;  
00038 // }
00039 PTRTYPE lcmcpgetdaughter( PTRTYPE mcparticle, int i ) {
00040   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00041   return C2F_POINTER(LCObject*,  mcp->getDaughters()[i-1] ) ;
00042 }
00043 int lcmcpgetendpoint(  PTRTYPE mcparticle, double* ep) {
00044   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00045   for( int i=0 ; i<3 ;  *ep++ =  mcp->getEndpoint()[i++]  ) ;
00046   return LCIO::SUCCESS ;
00047 }
00048 int lcmcpgetnumberofdaughters( PTRTYPE mcparticle )  {
00049   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00050   return mcp->getDaughters().size() ;
00051 }
00052 int lcmcpgetpdg( PTRTYPE mcparticle )  {
00053   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00054   return mcp->getPDG() ;  
00055 }
00056 int lcmcpgetgeneratorstatus( PTRTYPE mcparticle )  {
00057   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00058   return mcp->getGeneratorStatus() ;  
00059 }
00060 int lcmcpgetsimulatorstatus( PTRTYPE mcparticle )  {
00061   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00062   return mcp->getSimulatorStatus() ;  
00063 }
00064 int lcmcpgetvertex( PTRTYPE mcparticle, double* vtx )  {
00065   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00066   for( int i=0 ; i<3 ;  *vtx++ =  mcp->getVertex()[i++]  ) ;
00067   return LCIO::SUCCESS ;
00068 }
00069 float lcmcpgettime( PTRTYPE mcparticle )  {
00070   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00071   return mcp->getTime() ;  
00072 }
00073 int lcmcpgetmomentum( PTRTYPE mcparticle, double* p)  {
00074   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00075   for( int i=0 ; i<3 ;  *p++ =  mcp->getMomentum()[i++]  ) ;
00076   return LCIO::SUCCESS ;
00077 }
00078 double lcmcpgetmass( PTRTYPE mcparticle )  {
00079   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00080   return mcp->getMass() ;  
00081 }
00082 float lcmcpgetcharge( PTRTYPE mcparticle )  {
00083   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00084   return mcp->getCharge() ;  
00085 }
00086 double lcmcpgetenergy( PTRTYPE mcparticle )  {
00087   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00088   return mcp->getEnergy() ;  
00089 }
00090 
00091 int lcmcpaddparent(  PTRTYPE mcparticle, PTRTYPE parent ) {
00092   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00093   MCParticle* mom = f2c_pointer<MCParticle,LCObject>( parent ) ;
00094   mcp->addParent( mom ) ;
00095   return LCIO::SUCCESS ;
00096 }
00097 // int lcmcpsetsecondparent(  PTRTYPE mcparticle, PTRTYPE parent ) {
00098 //   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00099 //   MCParticle* mom = f2c_pointer<MCParticle,LCObject>( parent ) ;
00100 //   mcp->setSecondParent( mom ) ;
00101 //   return LCIO::SUCCESS ;
00102 // }
00103 // int lcmcpadddaughter(  PTRTYPE mcparticle, PTRTYPE daughter ) {
00104 //   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00105 //   MCParticle* dgh = f2c_pointer<MCParticle,LCObject>( daughter ) ;
00106 //   mcp->addDaughter( dgh ) ;
00107 //   return LCIO::SUCCESS ;
00108 // }
00109 int lcmcpsetpdg( PTRTYPE mcparticle, int pdg ) {
00110   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00111   mcp->setPDG( pdg ) ;
00112   return LCIO::SUCCESS ;
00113 }
00114 int lcmcpsetgeneratorstatus( PTRTYPE mcparticle, int status ) {
00115   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00116   mcp->setGeneratorStatus( status ) ;
00117   return LCIO::SUCCESS ;
00118 }
00119 int lcmcpsetsimulatorstatus( PTRTYPE mcparticle, int status ) {
00120   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00121   mcp->setSimulatorStatus( status ) ;
00122   return LCIO::SUCCESS ;
00123 }
00124 int lcmcpsetvertex( PTRTYPE mcparticle, double vtx[3] ) {
00125   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00126   mcp->setVertex( vtx ) ;
00127   return LCIO::SUCCESS ;
00128 }
00129 int lcmcpsetendpoint( PTRTYPE mcparticle, double pnt[3] ) {
00130   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00131   mcp->setEndpoint( pnt ) ;
00132   return LCIO::SUCCESS ;
00133 }
00134 int lcmcpsetmomentum( PTRTYPE mcparticle,  float p[3] ){
00135   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00136   mcp->setMomentum( p ) ;
00137   return LCIO::SUCCESS ;
00138 }
00139 int lcmcpsetmass( PTRTYPE mcparticle, float m) {
00140   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00141   mcp->setMass( m ) ;
00142   return LCIO::SUCCESS ;
00143 }
00144 int lcmcpsetcharge( PTRTYPE mcparticle, float c ) {
00145   MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00146   mcp->setCharge( c ) ;
00147   return LCIO::SUCCESS ;
00148 }

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