LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lcrcp.cc
Go to the documentation of this file.
1 #include "CPPFORT/lcrcp.h"
2 
3 #include "lcio.h"
5 #include "IMPL/VertexImpl.h"
6 
7 using namespace lcio ;
8 
9 #include <iostream>
10 
11 // create delete ReconstructedParticle
12 
14  ReconstructedParticleImpl* rcp = new ReconstructedParticleImpl ;
15  return C2F_POINTER( LCObject*, rcp ) ;
16 }
17 int lcrcpdelete( PTRTYPE recopart ){
18  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
19  delete rcp ;
20  return LCIO::SUCCESS ;
21 }
22 
23 
24 // get Methods
25 
26 int lcrcpid( PTRTYPE recopart ) {
27  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
28  return rcp->id() ;
29 }
30 
31 int lcrcpgettype( PTRTYPE recopart ) {
32  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
33  return rcp->getType() ;
34 }
35 
36 bool lcrcpiscompound ( PTRTYPE recopart ) {
37  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
38  return rcp->isCompound() ;
39 }
40 
41 int lcrcpgetmomentum( PTRTYPE recopart, float* p ) {
42  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
43  for( int i=0 ; i<3 ; *p++ = rcp->getMomentum()[i++] ) ;
44  return LCIO::SUCCESS ;
45 }
46 
47 float lcrcpgetenergy( PTRTYPE recopart ) {
48  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
49  return rcp->getEnergy() ;
50 }
51 
52 int lcrcpgetcovmatrix( PTRTYPE recopart, float cvmtx[NCOVARIANCE] ) {
53  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
54  for( int i=0 ; i<NCOVARIANCE ; i++ ) cvmtx[i] = rcp->getCovMatrix()[i] ;
55  return LCIO::SUCCESS ;
56 }
57 
58 float lcrcpgetmass( PTRTYPE recopart ) {
59  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
60  return rcp->getMass() ;
61 }
62 
63 float lcrcpgetcharge( PTRTYPE recopart ) {
64  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
65  return rcp->getCharge() ;
66 }
67 
68 int lcrcpgetreferencepoint( PTRTYPE recopart, float refpoint[3] ) {
69  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
70  for( int i=0 ; i<3 ; *refpoint++ = rcp->getReferencePoint()[i++] ) ;
71  return LCIO::SUCCESS ;
72 }
73 
75  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
76  const ParticleIDVec& idvect = rcp->getParticleIDs();
77  return reinterpret_cast<PTRTYPE>( &idvect );
78 }
79 
80 float lcrcpgetgoodnessofpid( PTRTYPE recopart ) {
81  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>(recopart ) ;
82  return rcp->getGoodnessOfPID() ;
83 }
84 
86  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
87  const ReconstructedParticleVec& idvect = rcp->getParticles();
88  return reinterpret_cast<PTRTYPE>( &idvect );
89 }
90 
91 
92 // int lcrcpgetparticleweights( PTRTYPE recopart, float* weights, int* nweights ) {
93 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
94 // int ntot = *nweights - 1 ;
95 // for(unsigned int l=0;l<rcp->getParticles().size();l++){
96 // if ( l > (unsigned)ntot ) {
97 // std::cout << "LCReconstructedParticle: in getParticleWeights more than "
98 // << ntot << "weights to store" << std::endl ;
99 // return LCIO::ERROR ;
100 // }
101 // *weights++ = rcp->getParticleWeights()[l] ;
102 // }
103 // *nweights = (int)(rcp->getParticles().size() + 1);
104 // return LCIO::SUCCESS ;
105 // }
106 
108  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
109  const ClusterVec& idvect = rcp->getClusters();
110  return reinterpret_cast<PTRTYPE>( &idvect );
111 }
112 
113 
114 // int lcrcpgetclusterweights( PTRTYPE recopart, float* weights, int* nweights ) {
115 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
116 // int ntot = *nweights - 1;
117 // for(unsigned int l=0;l<rcp->getClusters().size();l++){
118 // if ( l > (unsigned)ntot ) {
119 // std::cout << "LCReconstructedParticle: in getClusterWeights more than "
120 // << ntot << "weights to store" << std::endl ;
121 // return LCIO::ERROR ;
122 // }
123 // *weights++ = rcp->getClusterWeights()[l] ;
124 // }
125 // *nweights = (int)(rcp->getClusters().size() + 1) ;
126 // return LCIO::SUCCESS ;
127 // }
128 
130  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
131  const TrackVec& idvect = rcp->getTracks();
132  return reinterpret_cast<PTRTYPE>( &idvect );
133 }
134 
135 // int lcrcpgettrackweights( PTRTYPE recopart, float* weights, int* nweights ) {
136 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
137 // int ntot = *nweights - 1;
138 // for(unsigned int l=0;l<rcp->getTracks().size();l++){
139 // if ( l > (unsigned)ntot ) {
140 // std::cout << "LCReconstructedParticle: in getTrackWeights more than "
141 // << ntot << "weights to store" << std::endl ;
142 // return LCIO::ERROR ;
143 // }
144 // *weights++ = rcp->getTrackWeights()[l] ;
145 // }
146 // *nweights = (int)(rcp->getTracks().size() + 1) ;
147 // return LCIO::SUCCESS ;
148 // }
149 
150 // PTRTYPE lcrcpgetmcparticles( PTRTYPE recopart ) {
151 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
152 // const MCParticleVec& idvect = rcp->getMCParticles();
153 // return reinterpret_cast<PTRTYPE>( &idvect );
154 // }
155 
156 // int lcrcpgetmcparticleweights( PTRTYPE recopart, float* weights, int* nweights ) {
157 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
158 // int ntot = *nweights - 1 ;
159 // for(unsigned int l=0;l<rcp->getMCParticles().size();l++){
160 // if ( l > (unsigned)ntot ) {
161 // std::cout << "LCReconstructedParticle: in getMCParticleWeights more than "
162 // << ntot << "weights to store" << std::endl ;
163 // return LCIO::ERROR ;
164 // }
165 // *weights++ = rcp->getMCParticleWeights()[l] ;
166 // }
167 // *nweights = (int)(rcp->getMCParticles().size() + 1);
168 // return LCIO::SUCCESS ;
169 // }
171  ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( recopart ) ;
172  Vertex* vtx = rcp->getStartVertex();
173  return reinterpret_cast<PTRTYPE>( vtx );
174 }
175 
177  ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( recopart ) ;
178  Vertex* vtx = rcp->getEndVertex();
179  return reinterpret_cast<PTRTYPE>( vtx );
180 }
181 
182 
183 // set,add Methods
184 
185 int lcrcpsettype( PTRTYPE recopart, int type ) {
186  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
187  rcp->setType( type ) ;
188  return LCIO::SUCCESS ;
189 }
190 
191 // int lcrcpsetcompound( PTRTYPE recopart, bool lcompound ) {
192 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
193 // rcp->setCompound( lcompound ) ;
194 // return LCIO::SUCCESS ;
195 // }
196 
197 int lcrcpsetmomentum( PTRTYPE recopart, float p[3] ) {
198  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
199  rcp->setMomentum( p ) ;
200  return LCIO::SUCCESS ;
201 }
202 
203 int lcrcpsetenergy( PTRTYPE recopart, float energy ) {
204  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
205  rcp->setEnergy( energy ) ;
206  return LCIO::SUCCESS ;
207 }
208 
209 int lcrcpsetcovmatrix( PTRTYPE recopart, float cvmtx[NCOVARIANCE] ) {
210  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
211  rcp->setCovMatrix( cvmtx ) ;
212  return LCIO::SUCCESS ;
213 }
214 
215 int lcrcpsetmass( PTRTYPE recopart, float xmass) {
216  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
217  rcp->setMass( xmass ) ;
218  return LCIO::SUCCESS ;
219 }
220 
221 int lcrcpsetcharge( PTRTYPE recopart, float charge ) {
222  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
223  rcp->setCharge( charge ) ;
224  return LCIO::SUCCESS ;
225 }
226 
227 int lcrcpsetreferencepoint( PTRTYPE recopart, float refpoint[3] ) {
228  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
229  rcp->setReferencePoint( refpoint ) ;
230  return LCIO::SUCCESS ;
231 }
232 
233 int lcrcpaddparticleid( PTRTYPE recopart, PTRTYPE pid ) {
234  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
235  ParticleID* ppid = f2c_pointer<ParticleID,LCObject>( pid ) ;
236  rcp->addParticleID( ppid ) ;
237  return LCIO::SUCCESS ;
238 }
239 
240 int lcrcpsetgoodnessofpid( PTRTYPE recopart, float good) {
241  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
242  rcp->setGoodnessOfPID( good ) ;
243  return LCIO::SUCCESS ;
244 }
245 
246 int lcrcpaddparticle( PTRTYPE recopart, PTRTYPE particle ) {
247  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
248  ReconstructedParticle* rparticle = f2c_pointer<ReconstructedParticle,LCObject>( particle ) ;
249  rcp->addParticle( rparticle ) ;
250  return LCIO::SUCCESS ;
251 }
252 
253 int lcrcpaddcluster( PTRTYPE recopart, PTRTYPE clus ) {
254  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
255  Cluster* cclus = f2c_pointer<Cluster,LCObject>( clus ) ;
256  rcp->addCluster( cclus ) ;
257  return LCIO::SUCCESS ;
258 }
259 
260 int lcrcpaddtrack( PTRTYPE recopart, PTRTYPE track ) {
261  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
262  Track* ctrack = f2c_pointer<Track,LCObject>( track ) ;
263  rcp->addTrack( ctrack ) ;
264  return LCIO::SUCCESS ;
265 }
266 
267 // int lcrcpaddmcparticle( PTRTYPE recopart, PTRTYPE particle ) {
268 // ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
269 // MCParticle* mmcp = f2c_pointer<MCParticle,LCObject>( particle ) ;
270 // rcp->addMCParticle( mmcp ) ;
271 // return LCIO::SUCCESS ;
272 // }
273 
274 int lcrcpsetstartvertex( PTRTYPE recopart, PTRTYPE vertex ) {
275  ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
276  Vertex* vtx = f2c_pointer<Vertex,LCObject>( vertex ) ;
277  rcp->setStartVertex( vtx ) ;
278  return LCIO::SUCCESS ;
279 }
280 
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgettracks(PTRTYPE rcp)
Definition: lcrcp.cc:129
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgetclusters(PTRTYPE rcp)
Definition: lcrcp.cc:107
LCIO_DEPRECATED_CAPI int lcrcpaddtrack(PTRTYPE rcp, PTRTYPE track)
Definition: lcrcp.cc:260
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpcreate()
Header file for the f77-wrapper functions of the ReconstructedParticle Class.
Definition: lcrcp.cc:13
std::vector< Track * > TrackVec
Vector of (pointers to) Tracks.
Definition: Track.h:22
std::vector< ParticleID * > ParticleIDVec
Vector of (pointers to) ParticleIDs.
Definition: ParticleID.h:16
LCIO_DEPRECATED_CAPI int lcrcpgetreferencepoint(PTRTYPE rcp, float *refpoint)
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgetstartvertex(PTRTYPE rcp)
Definition: lcrcp.cc:170
std::vector< Cluster * > ClusterVec
Vector of (pointers to) Clusters.
Definition: Cluster.h:20
LCIO_DEPRECATED_CAPI int lcrcpaddparticle(PTRTYPE rcp, PTRTYPE particle)
Definition: lcrcp.cc:246
#define NCOVARIANCE
LCIO_DEPRECATED_CAPI int lcrcpid(PTRTYPE rcp)
Definition: lcrcp.cc:26
LCIO_DEPRECATED_CAPI int lcrcpgettype(PTRTYPE rcp)
Definition: lcrcp.cc:31
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgetparticleids(PTRTYPE rcp)
Definition: lcrcp.cc:74
LCIO_DEPRECATED_CAPI int lcrcpsetreferencepoint(PTRTYPE rcp, float *refpoint)
LCIO_DEPRECATED_CAPI int lcrcpsettype(PTRTYPE rcp, int type)
Definition: lcrcp.cc:185
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgetparticles(PTRTYPE rcp)
Definition: lcrcp.cc:85
LCIO_DEPRECATED_CAPI int lcrcpgetmomentum(PTRTYPE rcp, float *p)
Definition: lcrcp.cc:41
LCIO_DEPRECATED_CAPI int lcrcpsetstartvertex(PTRTYPE rcp, PTRTYPE vtx)
Definition: lcrcp.cc:274
LCIO_DEPRECATED_CAPI int lcrcpsetcovmatrix(PTRTYPE rcp, float *cvmtx)
long PTRTYPE
Fortran interface - define the length of pointers this has to made machine independent ...
Definition: cpointer.h:12
LCIO_DEPRECATED_CAPI int lcrcpaddcluster(PTRTYPE rcp, PTRTYPE clus)
Definition: lcrcp.cc:253
LCIO_DEPRECATED_CAPI int lcrcpsetmass(PTRTYPE rcp, float xmass)
Definition: lcrcp.cc:215
LCIO_DEPRECATED_CAPI int lcrcpsetcharge(PTRTYPE rcp, float charge)
Definition: lcrcp.cc:221
LCIO_DEPRECATED_CAPI int lcrcpsetgoodnessofpid(PTRTYPE pid, float good)
Definition: lcrcp.cc:240
LCIO_DEPRECATED_CAPI int lcrcpaddparticleid(PTRTYPE rcp, PTRTYPE id)
Definition: lcrcp.cc:233
LCIO_DEPRECATED_CAPI int lcrcpdelete(PTRTYPE rcp)
Definition: lcrcp.cc:17
LCIO_DEPRECATED_CAPI float lcrcpgetcharge(PTRTYPE rcp)
Definition: lcrcp.cc:63
LCIO_DEPRECATED_CAPI int lcrcpsetmomentum(PTRTYPE rcp, float *p)
std::vector< ReconstructedParticle * > ReconstructedParticleVec
Vector of (pointers to) ReconstructedParticles.
LCIO_DEPRECATED_CAPI float lcrcpgetgoodnessofpid(PTRTYPE pid)
Definition: lcrcp.cc:80
LCIO_DEPRECATED_CAPI bool lcrcpiscompound(PTRTYPE rcp)
Definition: lcrcp.cc:36
LCIO_DEPRECATED_CAPI float lcrcpgetmass(PTRTYPE rcp)
Definition: lcrcp.cc:58
LCIO_DEPRECATED_CAPI float lcrcpgetenergy(PTRTYPE rcp)
Definition: lcrcp.cc:47
LCIO_DEPRECATED_CAPI PTRTYPE lcrcpgetendvertex(PTRTYPE rcp)
Definition: lcrcp.cc:176
LCIO_DEPRECATED_CAPI int lcrcpsetenergy(PTRTYPE rcp, float energy)
Definition: lcrcp.cc:203
#define C2F_POINTER(T, ptr)
Definition: cpointer.h:33
LCIO_DEPRECATED_CAPI int lcrcpgetcovmatrix(PTRTYPE rcp, float *cvmtx)