LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lctrk.cc
Go to the documentation of this file.
1 #include "CPPFORT/lctrk.h"
2 
3 #include "lcio.h"
4 #include "IMPL/TrackImpl.h"
5 #include "LCIOSTLTypes.h"
6 
7 using namespace lcio ;
8 
9 #include <iostream>
10 
11 #define NCOVARIANCE 15
12 
13 // create delete ReconstructedParticle
14 
16  TrackImpl* trk = new TrackImpl ;
17  return C2F_POINTER( LCObject*, trk ) ;
18 }
19 int lctrkdelete( PTRTYPE track ){
20  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
21  delete trk ;
22  return LCIO::SUCCESS ;
23 }
24 
25 
26 // get Methods
27 
28 int lctrkid( PTRTYPE track ) {
29  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
30  return trk->id() ;
31 }
32 
33 int lctrkgettype( PTRTYPE track ) {
34  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
35  return trk->getType() ;
36 }
37 
38 // int lctrktesttype( PTRTYPE track , int bit ) {
39 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
40 // return trk->testType( bit ) ;
41 // }
42 
43 // float lctrkgetmomentum( PTRTYPE track ) {
44 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
45 // return trk->getMomentum() ;
46 // }
47 
48 float lctrkgetomega( PTRTYPE track ) {
49  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
50  return trk->getOmega() ;
51 }
52 
53 // float lctrkgettheta( PTRTYPE track ) {
54 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
55 // return trk->getTheta() ;
56 // }
57 
58 float lctrkgettanlambda( PTRTYPE track ) {
59  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
60  return trk->getTanLambda() ;
61 }
62 
63 float lctrkgetphi( PTRTYPE track ) {
64  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
65  return trk->getPhi() ;
66 }
67 
68 float lctrkgetd0( PTRTYPE track ) {
69  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
70  return trk->getD0() ;
71 }
72 
73 float lctrkgetz0( PTRTYPE track ) {
74  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
75  return trk->getZ0() ;
76 }
77 
78 int lctrkgetcovmatrix( PTRTYPE track, float cvmtx[NCOVARIANCE] ) {
79  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
80  for( int i=0 ; i<NCOVARIANCE ; *cvmtx++ = trk->getCovMatrix()[i++] ) ;
81  return LCIO::SUCCESS ;
82 }
83 
84 int lctrkgetreferencepoint( PTRTYPE track, float* refpoint ) {
85  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
86  for( int i=0 ; i<3 ; *refpoint++ = trk->getReferencePoint()[i++] ) ;
87  return LCIO::SUCCESS ;
88 }
89 
90 //int lctrkisreferencepointpca( PTRTYPE track ) {
91 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
92 // return trk->isReferencePointPCA() ;
93 //}
94 
95 float lctrkgetchi2( PTRTYPE track ) {
96  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
97  return trk->getChi2() ;
98 }
99 
100 int lctrkgetndf( PTRTYPE track ) {
101  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
102  return trk->getNdf() ;
103 }
104 
105 float lctrkgetdedx( PTRTYPE track ) {
106  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
107  return trk->getdEdx() ;
108 }
109 
110 float lctrkgetdedxerror( PTRTYPE track ) {
111  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
112  return trk->getdEdxError() ;
113 }
114 
116  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
117  return trk->getRadiusOfInnermostHit() ;
118 }
119 
120 int lctrkgetsubdetectorhitnumbers( PTRTYPE track, int* intv, int* nintv ) {
121  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
122  IntVec& intVec = trk->subdetectorHitNumbers() ;
123  int n = intVec.size() ;
124  if (n > *nintv) {
125  std::cerr << "Warning in lctrkgetsubdetectorhitnumbers: vector size " << n
126  << " larger then target array size " << *nintv << std::endl ;
127  n = *nintv ;
128  }
129  for(int j=0;j<n;j++) {
130  intv[j] = intVec[j] ;
131  }
132  *nintv = n ;
133  return LCIO::SUCCESS ;
134 }
135 
137  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
138  const TrackVec& idvect = trk->getTracks();
139  return reinterpret_cast<PTRTYPE>( &idvect );
140 }
141 
143  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
144  const TrackerHitVec& idvect = trk->getTrackerHits();
145  return reinterpret_cast<PTRTYPE>( &idvect );
146 }
147 
148 
149 // set,add Methods
150 
151 // int lctrksettype( PTRTYPE track, int type ) {
152 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
153 // trk->setType( type ) ;
154 // return LCIO::SUCCESS ;
155 // }
156 
157 int lctrksettypebit( PTRTYPE track, int index , int val) {
158  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
159  trk->setTypeBit( index , val ) ;
160  return LCIO::SUCCESS ;
161 }
162 
163 int lctrksetomega( PTRTYPE track, float omega ) {
164  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
165  trk->setOmega( omega ) ;
166  return LCIO::SUCCESS ;
167 }
168 
169 int lctrksettanlambda( PTRTYPE track, float tanLambda ) {
170  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
171  trk->setTanLambda( tanLambda ) ;
172  return LCIO::SUCCESS ;
173 }
174 
175 int lctrksetphi( PTRTYPE track, float phi ) {
176  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
177  trk->setPhi( phi ) ;
178  return LCIO::SUCCESS ;
179 }
180 
181 int lctrksetd0( PTRTYPE track, float d0 ) {
182  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
183  trk->setD0( d0 ) ;
184  return LCIO::SUCCESS ;
185 }
186 
187 int lctrksetz0( PTRTYPE track, float z0 ) {
188  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
189  trk->setZ0( z0 ) ;
190  return LCIO::SUCCESS ;
191 }
192 
193 int lctrksetcovmatrix( PTRTYPE track, float cvmtx[NCOVARIANCE] ) {
194  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
195  trk->setCovMatrix( cvmtx ) ;
196  return LCIO::SUCCESS ;
197 }
198 
199 int lctrksetreferencepoint( PTRTYPE track, float refpoint[3] ) {
200  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
201  trk->setReferencePoint( refpoint ) ;
202  return LCIO::SUCCESS ;
203 }
204 
205 //int lctrksetisreferencepointpca( PTRTYPE track , int val) {
206 // TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
207 // trk->setIsReferencePointPCA( val ) ;
208 // return LCIO::SUCCESS ;
209 //}
210 
211 int lctrksetchi2( PTRTYPE track, float chi2) {
212  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
213  trk->setChi2( chi2 ) ;
214  return LCIO::SUCCESS ;
215 }
216 
217 int lctrksetndf( PTRTYPE track, int ndf) {
218  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
219  trk->setNdf( ndf ) ;
220  return LCIO::SUCCESS ;
221 }
222 
223 int lctrksetdedx( PTRTYPE track, float dedx) {
224  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
225  trk->setdEdx( dedx ) ;
226  return LCIO::SUCCESS ;
227 }
228 
229 int lctrksetdedxerror( PTRTYPE track, float dedxerr) {
230  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
231  trk->setdEdxError( dedxerr ) ;
232  return LCIO::SUCCESS ;
233 }
234 
235 int lctrksetradiusofinnermosthit( PTRTYPE track, float r) {
236  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
237  trk->setRadiusOfInnermostHit( r ) ;
238  return LCIO::SUCCESS ;
239 }
240 
241 int lctrkaddtrack( PTRTYPE track, PTRTYPE addtrack ) {
242  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
243  Track* addtrk = f2c_pointer<Track,LCObject>( addtrack ) ;
244  trk->addTrack( addtrk ) ;
245  return LCIO::SUCCESS ;
246 }
247 
248 int lctrkaddhit( PTRTYPE track, PTRTYPE hit ) {
249  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
250  TrackerHit* addhit = f2c_pointer<TrackerHit,LCObject>( hit ) ;
251  trk->addHit( addhit ) ;
252  return LCIO::SUCCESS ;
253 }
254 
255 
256 int lctrksetsubdetectorhitnumbers( PTRTYPE track, int* intv, const int nintv ) {
257  TrackImpl* trk = f2c_pointer<TrackImpl,LCObject>( track ) ;
258  IntVec& intVec = trk->subdetectorHitNumbers() ;
259  intVec.resize( nintv ) ;
260  for(int j=0;j<nintv;j++) {
261  intVec[j] = intv[j] ;
262  }
263  return LCIO::SUCCESS ;
264 }
265 
LCIO_DEPRECATED_CAPI int lctrkgetcovmatrix(PTRTYPE trk, float *cvmtx)
std::vector< TrackerHit * > TrackerHitVec
Vector of (pointers to) TrackerHits.
Definition: TrackerHit.h:17
LCIO_DEPRECATED_CAPI int lctrkaddhit(PTRTYPE trk, PTRTYPE hit)
Definition: lctrk.cc:248
LCIO_DEPRECATED_CAPI int lctrkid(PTRTYPE trk)
Definition: lctrk.cc:28
std::vector< Track * > TrackVec
Vector of (pointers to) Tracks.
Definition: Track.h:22
LCIO_DEPRECATED_CAPI float lctrkgetz0(PTRTYPE trk)
Definition: lctrk.cc:73
T endl(T...args)
LCIO_DEPRECATED_CAPI PTRTYPE lctrkgettrackerhits(PTRTYPE trk)
Definition: lctrk.cc:142
LCIO_DEPRECATED_CAPI float lctrkgetomega(PTRTYPE trk)
Definition: lctrk.cc:48
LCIO_DEPRECATED_CAPI int lctrksetd0(PTRTYPE trk, float d0)
Definition: lctrk.cc:181
LCIO_DEPRECATED_CAPI PTRTYPE lctrkcreate()
Header file for the f77-wrapper functions of the Track Class.
Definition: lctrk.cc:15
T resize(T...args)
LCIO_DEPRECATED_CAPI int lctrkgetndf(PTRTYPE trk)
Definition: lctrk.cc:100
LCIO_DEPRECATED_CAPI int lctrkgettype(PTRTYPE trk)
Definition: lctrk.cc:33
LCIO_DEPRECATED_CAPI int lctrksetdedx(PTRTYPE trk, float dedx)
Definition: lctrk.cc:223
LCIO_DEPRECATED_CAPI int lctrksetsubdetectorhitnumbers(PTRTYPE trk, int *intv, const int nintv)
Definition: lctrk.cc:256
LCIO_DEPRECATED_CAPI int lctrkaddtrack(PTRTYPE trk, PTRTYPE track)
Definition: lctrk.cc:241
LCIO_DEPRECATED_CAPI int lctrksetndf(PTRTYPE trk, int ndf)
Definition: lctrk.cc:217
LCIO_DEPRECATED_CAPI float lctrkgettanlambda(PTRTYPE trk)
Definition: lctrk.cc:58
LCIO_DEPRECATED_CAPI float lctrkgetradiusofinnermosthit(PTRTYPE trk)
Definition: lctrk.cc:115
LCIO_DEPRECATED_CAPI int lctrksettanlambda(PTRTYPE trk, float tanlambda)
Definition: lctrk.cc:169
#define NCOVARIANCE
Definition: lctrk.cc:11
long PTRTYPE
Fortran interface - define the length of pointers this has to made machine independent ...
Definition: cpointer.h:12
LCIO_DEPRECATED_CAPI int lctrkgetreferencepoint(PTRTYPE trk, float *refpoint)
Definition: lctrk.cc:84
LCIO_DEPRECATED_CAPI float lctrkgetd0(PTRTYPE trk)
Definition: lctrk.cc:68
LCIO_DEPRECATED_CAPI int lctrksetphi(PTRTYPE trk, float phi)
Definition: lctrk.cc:175
T size(T...args)
LCIO_DEPRECATED_CAPI int lctrksettypebit(PTRTYPE trk, int index, int val)
Definition: lctrk.cc:157
LCIO_DEPRECATED_CAPI int lctrkgetsubdetectorhitnumbers(PTRTYPE trk, int *intv, int *nintv)
Definition: lctrk.cc:120
std::vector< int > IntVec
Vector of ints.
Definition: LCIOSTLTypes.h:22
LCIO_DEPRECATED_CAPI int lctrksetradiusofinnermosthit(PTRTYPE trk, float r)
Definition: lctrk.cc:235
LCIO_DEPRECATED_CAPI int lctrkdelete(PTRTYPE trk)
Definition: lctrk.cc:19
LCIO_DEPRECATED_CAPI int lctrksetchi2(PTRTYPE trk, float chi2)
Definition: lctrk.cc:211
LCIO_DEPRECATED_CAPI int lctrksetdedxerror(PTRTYPE trk, float dedxerr)
Definition: lctrk.cc:229
LCIO_DEPRECATED_CAPI PTRTYPE lctrkgettracks(PTRTYPE trk)
Definition: lctrk.cc:136
LCIO_DEPRECATED_CAPI int lctrksetreferencepoint(PTRTYPE trk, float *refpoint)
LCIO_DEPRECATED_CAPI float lctrkgetphi(PTRTYPE trk)
Definition: lctrk.cc:63
LCIO_DEPRECATED_CAPI int lctrksetcovmatrix(PTRTYPE trk, float *cvmtx)
LCIO_DEPRECATED_CAPI float lctrkgetchi2(PTRTYPE trk)
Definition: lctrk.cc:95
LCIO_DEPRECATED_CAPI int lctrksetomega(PTRTYPE trk, float omega)
Definition: lctrk.cc:163
LCIO_DEPRECATED_CAPI float lctrkgetdedx(PTRTYPE trk)
Definition: lctrk.cc:105
LCIO_DEPRECATED_CAPI float lctrkgetdedxerror(PTRTYPE trk)
Definition: lctrk.cc:110
#define C2F_POINTER(T, ptr)
Definition: cpointer.h:33
LCIO_DEPRECATED_CAPI int lctrksetz0(PTRTYPE trk, float z0)
Definition: lctrk.cc:187