LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lcmcp.cc
Go to the documentation of this file.
1 #include "CPPFORT/lcmcp.h"
2 
3 #include "lcio.h"
4 #include "IMPL/MCParticleImpl.h"
5 
6 using namespace lcio ;
7 
8 #include <iostream>
9 
10 
12  MCParticleImpl* mcp = new MCParticleImpl ;
13 
14  // uncomment to demonstrate that the addresses are different depending on the
15  // type of the pointer....
16  // cout << "lcmcpcreate: " << C2F_POINTER( LCObject*, mcp ) << ", "
17  // << C2F_POINTER( MCParticleData*, mcp ) << ", "
18  // << C2F_POINTER( MCParticle*, mcp ) << ", "
19  // << C2F_POINTER( MCParticleImpl*, mcp ) << endl ;
20  return C2F_POINTER( LCObject*, mcp ) ;
21 }
22 int lcmcpdelete( PTRTYPE mcparticle ){
23  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
24  delete mcp ;
25  return LCIO::SUCCESS ;
26 }
27 int lcmcpgetnumberofparents( PTRTYPE mcparticle ) {
28  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
29  return mcp->getParents().size() ;
30 }
31 PTRTYPE lcmcpgetparent( PTRTYPE mcparticle, int i ) {
32  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
33  return C2F_POINTER(LCObject*, mcp->getParents()[i] ) ;
34 }
35 // PTRTYPE lcmcpgetsecondparent( PTRTYPE mcparticle ) {
36 // MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
37 // return C2F_POINTER(LCObject*, mcp->getSecondParent() ) ;
38 // }
39 PTRTYPE lcmcpgetdaughter( PTRTYPE mcparticle, int i ) {
40  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
41  return C2F_POINTER(LCObject*, mcp->getDaughters()[i-1] ) ;
42 }
43 int lcmcpgetendpoint( PTRTYPE mcparticle, double* ep) {
44  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
45  for( int i=0 ; i<3 ; *ep++ = mcp->getEndpoint()[i++] ) ;
46  return LCIO::SUCCESS ;
47 }
49  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
50  return mcp->getDaughters().size() ;
51 }
52 int lcmcpgetpdg( PTRTYPE mcparticle ) {
53  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
54  return mcp->getPDG() ;
55 }
56 int lcmcpgetgeneratorstatus( PTRTYPE mcparticle ) {
57  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
58  return mcp->getGeneratorStatus() ;
59 }
60 int lcmcpgetsimulatorstatus( PTRTYPE mcparticle ) {
61  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
62  return mcp->getSimulatorStatus() ;
63 }
64 int lcmcpgetvertex( PTRTYPE mcparticle, double* vtx ) {
65  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
66  for( int i=0 ; i<3 ; *vtx++ = mcp->getVertex()[i++] ) ;
67  return LCIO::SUCCESS ;
68 }
69 float lcmcpgettime( PTRTYPE mcparticle ) {
70  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
71  return mcp->getTime() ;
72 }
73 int lcmcpgetmomentum( PTRTYPE mcparticle, double* p) {
74  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
75  for( int i=0 ; i<3 ; *p++ = mcp->getMomentum()[i++] ) ;
76  return LCIO::SUCCESS ;
77 }
78 double lcmcpgetmass( PTRTYPE mcparticle ) {
79  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
80  return mcp->getMass() ;
81 }
82 float lcmcpgetcharge( PTRTYPE mcparticle ) {
83  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
84  return mcp->getCharge() ;
85 }
86 double lcmcpgetenergy( PTRTYPE mcparticle ) {
87  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
88  return mcp->getEnergy() ;
89 }
90 
91 int lcmcpgetspin( PTRTYPE mcparticle, float* spin ) {
92  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
93  for( int i=0 ; i<3 ; *spin++ = mcp->getSpin()[i++] ) ;
94  return LCIO::SUCCESS ;
95 }
96 int lcmcpgetcolorflow( PTRTYPE mcparticle, int* cflow ) {
97  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
98  for( int i=0 ; i<2 ; *cflow++ = mcp->getColorFlow()[i++] ) ;
99  return LCIO::SUCCESS ;
100 }
101 
102 
103 int lcmcpaddparent( PTRTYPE mcparticle, PTRTYPE parent ) {
104  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
105  MCParticle* mom = f2c_pointer<MCParticle,LCObject>( parent ) ;
106  mcp->addParent( mom ) ;
107  return LCIO::SUCCESS ;
108 }
109 // int lcmcpsetsecondparent( PTRTYPE mcparticle, PTRTYPE parent ) {
110 // MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
111 // MCParticle* mom = f2c_pointer<MCParticle,LCObject>( parent ) ;
112 // mcp->setSecondParent( mom ) ;
113 // return LCIO::SUCCESS ;
114 // }
115 // int lcmcpadddaughter( PTRTYPE mcparticle, PTRTYPE daughter ) {
116 // MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
117 // MCParticle* dgh = f2c_pointer<MCParticle,LCObject>( daughter ) ;
118 // mcp->addDaughter( dgh ) ;
119 // return LCIO::SUCCESS ;
120 // }
121 int lcmcpsetpdg( PTRTYPE mcparticle, int pdg ) {
122  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
123  mcp->setPDG( pdg ) ;
124  return LCIO::SUCCESS ;
125 }
126 int lcmcpsetgeneratorstatus( PTRTYPE mcparticle, int status ) {
127  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
128  mcp->setGeneratorStatus( status ) ;
129  return LCIO::SUCCESS ;
130 }
131 int lcmcpsetsimulatorstatus( PTRTYPE mcparticle, int status ) {
132  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
133  mcp->setSimulatorStatus( status ) ;
134  return LCIO::SUCCESS ;
135 }
136 int lcmcpsetvertex( PTRTYPE mcparticle, double vtx[3] ) {
137  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
138  mcp->setVertex( vtx ) ;
139  return LCIO::SUCCESS ;
140 }
141 int lcmcpsetendpoint( PTRTYPE mcparticle, double pnt[3] ) {
142  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
143  mcp->setEndpoint( pnt ) ;
144  return LCIO::SUCCESS ;
145 }
146 int lcmcpsetmomentum( PTRTYPE mcparticle, float p[3] ){
147  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
148  mcp->setMomentum( p ) ;
149  return LCIO::SUCCESS ;
150 }
151 int lcmcpsetmass( PTRTYPE mcparticle, float m) {
152  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
153  mcp->setMass( m ) ;
154  return LCIO::SUCCESS ;
155 }
156 int lcmcpsetcharge( PTRTYPE mcparticle, float c ) {
157  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
158  mcp->setCharge( c ) ;
159  return LCIO::SUCCESS ;
160 }
161 int lcmcpsetspin( PTRTYPE mcparticle, float spin[3] ) {
162  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
163  mcp->setSpin( spin ) ;
164  return LCIO::SUCCESS ;
165 }
166 int lcmcpsetcolorflow( PTRTYPE mcparticle, int cflow[2] ) {
167  MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
168  mcp->setColorFlow( cflow ) ;
169  return LCIO::SUCCESS ;
170 }
171 
LCIO_DEPRECATED_CAPI int lcmcpsetgeneratorstatus(PTRTYPE mcparticle, int status)
Definition: lcmcp.cc:126
LCIO_DEPRECATED_CAPI int lcmcpsetendpoint(PTRTYPE mcparticle, double pnt[3])
Definition: lcmcp.cc:141
LCIO_DEPRECATED_CAPI PTRTYPE lcmcpcreate()
Header file for the f77-wrapper functions of the LCMCParticleImpl class.
Definition: lcmcp.cc:11
LCIO_DEPRECATED_CAPI int lcmcpsetspin(PTRTYPE mcparticle, float spin[3])
Definition: lcmcp.cc:161
LCIO_DEPRECATED_CAPI int lcmcpsetcolorflow(PTRTYPE mcparticle, int cflow[2])
Definition: lcmcp.cc:166
LCIO_DEPRECATED_CAPI int lcmcpgetnumberofdaughters(PTRTYPE mcparticle)
Definition: lcmcp.cc:48
LCIO_DEPRECATED_CAPI int lcmcpsetvertex(PTRTYPE mcparticle, double vtx[3])
Definition: lcmcp.cc:136
LCIO_DEPRECATED_CAPI int lcmcpsetsimulatorstatus(PTRTYPE mcparticle, int status)
Definition: lcmcp.cc:131
LCIO_DEPRECATED_CAPI int lcmcpsetcharge(PTRTYPE mcparticle, float c)
Definition: lcmcp.cc:156
LCIO_DEPRECATED_CAPI int lcmcpgetgeneratorstatus(PTRTYPE mcparticle)
Definition: lcmcp.cc:56
LCIO_DEPRECATED_CAPI int lcmcpgetendpoint(PTRTYPE mcparticle, double *ep)
Definition: lcmcp.cc:43
LCIO_DEPRECATED_CAPI int lcmcpaddparent(PTRTYPE mcparticle, PTRTYPE parent)
Definition: lcmcp.cc:103
LCIO_DEPRECATED_CAPI int lcmcpgetcolorflow(PTRTYPE mcparticle, int *cflow)
Definition: lcmcp.cc:96
LCIO_DEPRECATED_CAPI float lcmcpgettime(PTRTYPE mcparticle)
Definition: lcmcp.cc:69
LCIO_DEPRECATED_CAPI int lcmcpgetspin(PTRTYPE mcparticle, float *spin)
Definition: lcmcp.cc:91
LCIO_DEPRECATED_CAPI double lcmcpgetenergy(PTRTYPE mcparticle)
Definition: lcmcp.cc:86
LCIO_DEPRECATED_CAPI int lcmcpsetmomentum(PTRTYPE mcparticle, float p[3])
Definition: lcmcp.cc:146
LCIO_DEPRECATED_CAPI float lcmcpgetcharge(PTRTYPE mcparticle)
Definition: lcmcp.cc:82
long PTRTYPE
Fortran interface - define the length of pointers this has to made machine independent ...
Definition: cpointer.h:12
LCIO_DEPRECATED_CAPI int lcmcpsetmass(PTRTYPE mcparticle, float m)
Definition: lcmcp.cc:151
LCIO_DEPRECATED_CAPI PTRTYPE lcmcpgetparent(PTRTYPE mcparticle, int i)
Definition: lcmcp.cc:31
LCIO_DEPRECATED_CAPI int lcmcpdelete(PTRTYPE mcparticle)
Definition: lcmcp.cc:22
LCIO_DEPRECATED_CAPI double lcmcpgetmass(PTRTYPE mcparticle)
Definition: lcmcp.cc:78
LCIO_DEPRECATED_CAPI int lcmcpgetnumberofparents(PTRTYPE mcparticle)
Definition: lcmcp.cc:27
LCIO_DEPRECATED_CAPI int lcmcpgetpdg(PTRTYPE mcparticle)
Definition: lcmcp.cc:52
LCIO_DEPRECATED_CAPI int lcmcpgetsimulatorstatus(PTRTYPE mcparticle)
Definition: lcmcp.cc:60
LCIO_DEPRECATED_CAPI PTRTYPE lcmcpgetdaughter(PTRTYPE mcparticle, int i)
Definition: lcmcp.cc:39
LCIO_DEPRECATED_CAPI int lcmcpsetpdg(PTRTYPE mcparticle, int pdg)
Definition: lcmcp.cc:121
LCIO_DEPRECATED_CAPI int lcmcpgetmomentum(PTRTYPE mcparticle, double *p)
Definition: lcmcp.cc:73
LCIO_DEPRECATED_CAPI int lcmcpgetvertex(PTRTYPE mcparticle, double *vtx)
Definition: lcmcp.cc:64
#define C2F_POINTER(T, ptr)
Definition: cpointer.h:33