LCIO  "2.7.4"
 All Classes Namespaces Functions Variables Typedefs Friends Pages
lciof77apiext.h
1 
14 #include "cfortran.h"
15 #include "cpointer.h"
16 
17 
18 //--------------- convenient method to open a list of files for reading (read-only)
19 
22 int lcrdropenchain( PTRTYPE reader, void* filenamesv, const int nfiles, const int nchfilename );
23 
24 //--------------- convenient methods to read/write the run header
25 
28 int lcwriterunheader( PTRTYPE writer, const int irun, const char* detname, const char* descr,
29  void* sdnamevec, const int nsubd, const int nchsubd) ;
30 
33 PTRTYPE lcreadnextrunheader( PTRTYPE reader, int* irun, void* detname, void* descr,
34  void* sdnamevec, int* nsubd, const int nchsubd) ;
35 
36 //--------------- convenient methods for the event interface
37 
40 int lcseteventheader( PTRTYPE event, const int irun, const int ievent,
41  const int timestamp, const char* detname );
42 
45 int lcgeteventheader( PTRTYPE event, int* irun, int* ievent, int* timestamp, void* detname );
46 
49 int lcdumprunheader( PTRTYPE runheader ) ;
50 
53 int lcdumpevent( PTRTYPE event ) ;
54 
57 int lcdumpeventdetailed( PTRTYPE event ) ;
58 
59 //--------------- convenient methods for the mcparticle interface
60 
61 
64 int lcgetmcparticledata( PTRTYPE mcparticle, int* pdg, int* genstatus, int* simstatus
65  , double* prodvtx, float* momentum, float* mass, float* charge,
66  int* ndaughters ) ;
67 
68 
71 int lcio2hepevt( PTRTYPE event ) ;
72 
75 int hepevt2lcio( PTRTYPE event ) ;
76 
77 
78 
79 //--------------- convenient methods for SimTrackerHits
80 
83 int lcaddsimtrackerhit( PTRTYPE col, int cellID, double* pos, float dEdx,
84  float time, PTRTYPE mcp ) ;
85 
88 int lcgetsimtrackerhit( PTRTYPE col, int i, int* cellID, double* pos, float* dEdx,
89  float* time, PTRTYPE* mcp ) ;
90 
91 
92 //--------------- convenient methods for SimCalorimeterHits
93 
97 PTRTYPE lcaddsimcalohit( PTRTYPE col, int cellID0, int cellID1, float energy, float* pos ) ;
98 
101 PTRTYPE lcgetsimcalohit( PTRTYPE col, int i, int* cellID0, int* cellID1, float* energy,
102  float* pos ) ;
103 
106 int lcgetsimcalohitmccont( PTRTYPE hit, int i, PTRTYPE* mcp, float* energy, float* time,
107  int* pdg ) ;
108 
109 
112 PTRTYPE lcobjectvectorcreate( PTRTYPE* ocjectv, const int nobjv ) ;
113 
116 PTRTYPE lcintvectorcreate( int* intv, const int nintv ) ;
117 
120 PTRTYPE lcfloatvectorcreate( float* floatv, const int nfloatv ) ;
121 
124 PTRTYPE lcstringvectorcreate( void* stringv, const int nstringv, const int nchstringv) ;
125 
128 int lcgetintvector( PTRTYPE vector, int* intv, int* nintv ) ;
129 
132 int lcgetfloatvector( PTRTYPE vector, float* floatv, int* nfloatv ) ;
133 
136 int lcgetstringvector( PTRTYPE vector, void* stringv, int* nstringv, const int nchstringv) ;
137 
138 
141 PTRTYPE intvectorcreate( int* intv, const int nintv ) ;
142 int intvectordelete( PTRTYPE vector ) ;
143 
146 PTRTYPE floatvectorcreate( float* floatv, const int nfloatv ) ;
147 int floatvectordelete( PTRTYPE vector ) ;
148 
151 PTRTYPE stringvectorcreate( void* stringv, const int nstringv, const int nchstringv) ;
152 int stringvectordelete( PTRTYPE vector ) ;
153 
156 PTRTYPE pointervectorcreate( PTRTYPE* pointerv, const int npointerv ) ;
157 int pointervectordelete( PTRTYPE vector ) ;
158 
159 
162 int getintvector( PTRTYPE vector, int* intv, int* nintv ) ;
163 
166 int getfloatvector( PTRTYPE vector, float* floatv, int* nfloatv ) ;
167 
170 int getstringvector( PTRTYPE vector, void* stringv, int* nstringv, const int nchstringv) ;
171 
174 int getpointervector( PTRTYPE vector, PTRTYPE* pointerv, int* npointerv ) ;
175 
176 
177 
178 //--------------- convenient methods for the interface nterface to store generic named parameters
179 //--------------- of type int, float and string.
180 
183 int lcsetparameters( const char* classname, PTRTYPE classp, const char* method,
184  const char* key, PTRTYPE vecp) ;
185 
186 
189 int lcgetparameters( const char* classname, PTRTYPE classp, const char* method,
190  const char* key, PTRTYPE vecp) ;
191 
192 
193 // now the fortran wrappers from cfortran.h
194 extern "C"{
195 
196 #define lcrdropenchain_STRV_A2 NUM_ELEM_ARG(3)
197 FCALLSCFUN4(INT, lcrdropenchain, LCRDRDOPENCHAIN, lcrdropenchain,
198  CFORTRANPNTR, STRINGV, INT, INT)
199 
200 
201 #define lcwriterunheader_STRV_A5 NUM_ELEM_ARG(6)
202 FCALLSCFUN7(INT, lcwriterunheader, LCWRITERUNHEADER, lcwriterunheader, CFORTRANPNTR, INT,
203  STRING, STRING, STRINGV, INT, INT)
204 #define lcreadnextrunheader_STRV_A3 NUM_ELEMS(1)
205 #define lcreadnextrunheader_STRV_A4 NUM_ELEMS(1)
206 #define lcreadnextrunheader_STRV_A5 NUM_ELEM_ARG(6)
207 FCALLSCFUN7(CFORTRANPNTR, lcreadnextrunheader, LCREADNEXTRUNHEADER, lcreadnextrunheader,
208  CFORTRANPNTR, INTV, PSTRINGV, PSTRINGV, PSTRINGV, INTV, INT)
209 
210 
211 FCALLSCFUN5(INT, lcseteventheader, LCSETEVENTHEADER, lcseteventheader, CFORTRANPNTR,
212  INT, INT, INT, STRING )
213 #define lcgeteventheader_STRV_A5 NUM_ELEMS(1)
214 FCALLSCFUN5(INT, lcgeteventheader, LCGETEVENTHEADER, lcgeteventheader, CFORTRANPNTR, INTV,
215  INTV, INTV, PSTRINGV )
216 FCALLSCFUN1(INT, lcdumprunheader, LCDUMPRUNHEADER, lcdumprunheader, CFORTRANPNTR )
217 FCALLSCFUN1(INT, lcdumpevent, LCDUMPEVENT, lcdumpevent, CFORTRANPNTR )
218 FCALLSCFUN1(INT, lcdumpeventdetailed, LCDUMPEVENTDETAILED, lcdumpeventdetailed,CFORTRANPNTR)
219 
220 
221 FCALLSCFUN9(INT, lcgetmcparticledata, LCGETMCPARTICLEDATA, lcgetmcparticledata,
222  CFORTRANPNTR , INTV , INTV , INTV, DOUBLEV , FLOATV , FLOATV , FLOATV , INTV )
223 FCALLSCFUN1(INT, lcio2hepevt, LCIO2HEPEVT, lcio2hepevt , CFORTRANPNTR )
224 FCALLSCFUN1(INT, hepevt2lcio, HEPEVT2LCIO, hepevt2lcio, CFORTRANPNTR )
225 
226 
227 FCALLSCFUN6(INT, lcaddsimtrackerhit , LCADDSIMTRACKERHIT , lcaddsimtrackerhit,
228  CFORTRANPNTR , INT , DOUBLEV , FLOAT , FLOAT , CFORTRANPNTR )
229 
230 FCALLSCFUN7(INT, lcgetsimtrackerhit, LCGETSIMTRACKERHIT, lcgetsimtrackerhit,
231  CFORTRANPNTR , INT , INTV , DOUBLEV , FLOATV , FLOATV , CFORTRANPNTRV )
232 
233 
234 FCALLSCFUN5(CFORTRANPNTR, lcaddsimcalohit, LCADDSIMCALOHIT, lcaddsimcalohit,
235  CFORTRANPNTR, INT , INT, FLOAT, FLOATV )
236 FCALLSCFUN6(CFORTRANPNTR , lcgetsimcalohit, LCGETSIMCALOHIT, lcgetsimcalohit,
237  CFORTRANPNTR , INT , INTV , INTV , FLOATV , FLOATV )
238 FCALLSCFUN6(INT, lcgetsimcalohitmccont, LCGETSIMCALOHITMCCONT, lcgetsimcalohitmccont,
239  CFORTRANPNTR , INT , CFORTRANPNTRV, FLOATV , FLOATV , INTV )
240 
241 FCALLSCFUN2(CFORTRANPNTR, lcobjectvectorcreate, LCOBJECTVECTORCREATE , lcobjectvectorcreate,
242  CFORTRANPNTRV, INT )
243 FCALLSCFUN2(CFORTRANPNTR, lcintvectorcreate, LCINTVECTORCREATE , lcintvectorcreate,
244  INTV, INT )
245 FCALLSCFUN2(CFORTRANPNTR, lcfloatvectorcreate, LCFLOATVECTORCREATE , lcfloatvectorcreate,
246  FLOATV, INT )
247 #define lcstringvectorcreate_STRV_A1 NUM_ELEM_ARG(2)
248 FCALLSCFUN3(CFORTRANPNTR, lcstringvectorcreate, LCSTRINGVECTORCREATE , lcstringvectorcreate,
249  PSTRINGV, INT, INT )
250 
251 FCALLSCFUN3(INT, lcgetintvector, LCGETINTVECTOR , lcgetintvector,
252  CFORTRANPNTR , INTV, INTV )
253 FCALLSCFUN3(INT, lcgetfloatvector, LCGETFLOATVECTOR , lcgetfloatvector,
254  CFORTRANPNTR , FLOATV, INTV )
255 #define lcgetstringvector_STRV_A2 NUM_ELEM_ARG(3)
256 FCALLSCFUN4(INT, lcgetstringvector, LCGETSTRINGVECTOR , lcgetstringvector,
257  CFORTRANPNTR , PSTRINGV, INTV, INT )
258 
259 
260 FCALLSCFUN2(CFORTRANPNTR, intvectorcreate, INTVECTORCREATE , intvectorcreate,
261  INTV, INT )
262 FCALLSCFUN1(INT, intvectordelete, INTVECTORDELETE, intvectordelete,
263  CFORTRANPNTR)
264 FCALLSCFUN2(CFORTRANPNTR, floatvectorcreate, FLOATVECTORCREATE , floatvectorcreate,
265  FLOATV, INT )
266 FCALLSCFUN1(INT, floatvectordelete, FLOATVECTORDELETE, floatvectordelete,
267  CFORTRANPNTR)
268 #define stringvectorcreate_STRV_A1 NUM_ELEM_ARG(2)
269 FCALLSCFUN3(CFORTRANPNTR, stringvectorcreate, STRINGVECTORCREATE , stringvectorcreate,
270  PSTRINGV, INT, INT )
271 FCALLSCFUN1(INT, stringvectordelete, STRINGVECTORDELETE, stringvectordelete,
272  CFORTRANPNTR)
273 FCALLSCFUN2(CFORTRANPNTR, pointervectorcreate, POINTERVECTORCREATE , pointervectorcreate,
274  CFORTRANPNTRV, INT )
275 FCALLSCFUN1(INT, pointervectordelete, POINTERVECTORDELETE, pointervectordelete,
276  CFORTRANPNTR)
277 
278 FCALLSCFUN3(INT, getintvector, GETINTVECTOR , getintvector,
279  CFORTRANPNTR , INTV, INTV )
280 FCALLSCFUN3(INT, getfloatvector, GETFLOATVECTOR , getfloatvector,
281  CFORTRANPNTR , FLOATV, INTV )
282 #define getstringvector_STRV_A2 NUM_ELEM_ARG(3)
283 FCALLSCFUN4(INT, getstringvector, GETSTRINGVECTOR , getstringvector,
284  CFORTRANPNTR , PSTRINGV, INTV, INT )
285 FCALLSCFUN3(INT, getpointervector, GETPOINTERVECTOR , getpointervector,
286  CFORTRANPNTR , CFORTRANPNTRV, INTV )
287 
288 
289 FCALLSCFUN5(INT, lcsetparameters, LCSETPARAMETERS, lcsetparameters,
290  STRING, CFORTRANPNTR, STRING, STRING, CFORTRANPNTR )
291 
292 FCALLSCFUN5(INT, lcgetparameters, LCGETPARAMETERS, lcgetparameters,
293  STRING, CFORTRANPNTR, STRING, STRING, CFORTRANPNTR )
294 
295 }
296