LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lcclu.cc
Go to the documentation of this file.
1 #include "CPPFORT/lcclu.h"
2 
3 #include "lcio.h"
4 #include "IMPL/ClusterImpl.h"
5 
6 using namespace lcio ;
7 
8 #include <iostream>
9 
10 // create delete Cluster
11 
13  ClusterImpl* clu = new ClusterImpl ;
14  return C2F_POINTER( LCObject*, clu ) ;
15 }
16 int lccludelete( PTRTYPE cluster ){
17  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
18  delete clu ;
19  return LCIO::SUCCESS ;
20 }
21 
22 
23 // get Methods
24 
25 int lccluid( PTRTYPE cluster ) {
26  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
27  return clu->id() ;
28 }
29 
30 int lcclugettype( PTRTYPE cluster ) {
31  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
32  return clu->getType() ;
33 }
34 
35 // int lcclutesttype( PTRTYPE cluster , int bit ) {
36 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
37 // return clu->testType( bit ) ;
38 // }
39 
40 float lcclugetenergy( PTRTYPE cluster ) {
41  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
42  return clu->getEnergy() ;
43 }
44 float lcclugetenergyerr( PTRTYPE cluster ) {
45  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
46  return clu->getEnergyError() ;
47 }
48 int lcclugetposition( PTRTYPE cluster, float* pos ) {
49  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
50  for( int i=0 ; i<3 ; *pos++ = clu->getPosition()[i++] ) ;
51  return LCIO::SUCCESS ;
52 }
53 
54 int lcclugetpositionerror( PTRTYPE cluster, float poserr[6] ) {
55  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
56  for( int i=0 ; i<6 ; *poserr++ = clu->getPositionError()[i++] ) ;
57  return LCIO::SUCCESS ;
58 }
59 
60 float lcclugetitheta( PTRTYPE cluster ) {
61  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
62  return clu->getITheta() ;
63 }
64 
65 float lcclugetiphi( PTRTYPE cluster ) {
66  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
67  return clu->getIPhi() ;
68 }
69 
70 int lcclugetdirectionerror( PTRTYPE cluster, float direrr[3] ) {
71  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
72  for( int i=0 ; i<3 ; *direrr++ = clu->getDirectionError()[i++] ) ;
73  return LCIO::SUCCESS ;
74 }
75 
76 // int lcclugetparticletype( PTRTYPE cluster, float weights[3] ) {
77 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
78 // for( int i=0 ; i<3 ; *weights++ = clu->getParticleType()[i++] ) ;
79 // return LCIO::SUCCESS ;
80 // }
81 
82 // int lcclugetshape( PTRTYPE cluster, float shape[6] ) {
83 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
84 // for( int i=0 ; i<6 ; *shape++ = clu->getShape()[i++] ) ;
85 // return LCIO::SUCCESS ;
86 // }
87 
89  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
90  const FloatVec& shape = clu->getShape();
91  return reinterpret_cast<PTRTYPE>( &shape );
92 }
93 
95  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
96  const ParticleIDVec& idvect = clu->getParticleIDs();
97  return reinterpret_cast<PTRTYPE>( &idvect );
98 }
99 
101  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
102  const ClusterVec& idvect = clu->getClusters();
103  return reinterpret_cast<PTRTYPE>( &idvect );
104 }
105 
107  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
108  const CalorimeterHitVec& idvect = clu->getCalorimeterHits();
109  return reinterpret_cast<PTRTYPE>( &idvect );
110 }
111 
113  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
114  const FloatVec& idvect = clu->getSubdetectorEnergies();
115  return reinterpret_cast<PTRTYPE>( &idvect );
116 }
117 
118 int lcclugethitcontributions( PTRTYPE cluster, float* weights, int* nweights ) {
119  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
120  int ntot = *nweights -1 ;
121  for(unsigned int l=0;l<clu->getCalorimeterHits().size();l++){
122  if ( l > (unsigned)ntot ) {
123  std::cout << "LCCluster: in getHitContributions more than " << ntot << "weights to store" << std::endl ;
124  return LCIO::ERROR ;
125  }
126  *weights++ = clu->getHitContributions()[l] ;
127  }
128  *nweights = (int)(clu->getCalorimeterHits().size() + 1);
129  return LCIO::SUCCESS ;
130 }
131 
132 
133 // set,add Methods
134 
135 // int lcclusettype( PTRTYPE cluster, int type ) {
136 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
137 // clu->setType( type ) ;
138 // return LCIO::SUCCESS ;
139 // }
140 int lcclusettypebit( PTRTYPE cluster, int bit , int val) {
141  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
142  clu->setTypeBit( bit , val ) ;
143  return LCIO::SUCCESS ;
144 }
145 
146 int lcclusetenergy( PTRTYPE cluster, float energy ) {
147  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
148  clu->setEnergy( energy ) ;
149  return LCIO::SUCCESS ;
150 }
151 
152 int lcclusetenergyerr( PTRTYPE cluster, float enerr ) {
153  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
154  clu->setEnergyError( enerr ) ;
155  return LCIO::SUCCESS ;
156 }
157 
158 int lcclusetposition( PTRTYPE cluster, float pos[3] ) {
159  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
160  clu->setPosition( pos ) ;
161  return LCIO::SUCCESS ;
162 }
163 
164 
165 int lcclusetpositionerror( PTRTYPE cluster, float errpos[3] ) {
166  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
167  clu->setPositionError( errpos ) ;
168  return LCIO::SUCCESS ;
169 }
170 
171 int lcclusetitheta( PTRTYPE cluster, float theta) {
172  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
173  clu->setITheta( theta ) ;
174  return LCIO::SUCCESS ;
175 }
176 
177 int lcclusetiphi( PTRTYPE cluster, float phi ) {
178  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
179  clu->setIPhi( phi ) ;
180  return LCIO::SUCCESS ;
181 }
182 
183 int lcclusetdirectionerror( PTRTYPE cluster, float errdir[3] ) {
184  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
185  clu->setDirectionError( errdir ) ;
186  return LCIO::SUCCESS ;
187 }
188 
189 int lcclusetshape( PTRTYPE cluster, PTRTYPE vector ) {
190  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
191  FloatVec* shape = reinterpret_cast<FloatVec*>(vector) ;
192  clu->setShape( *shape ) ;
193  return LCIO::SUCCESS ;
194 }
195 
196 // int lcclusetemweight( PTRTYPE cluster, float weight) {
197 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
198 // clu->setEMWeight( weight ) ;
199 // return LCIO::SUCCESS ;
200 // }
201 
202 // int lcclusethadweight( PTRTYPE cluster, float weight) {
203 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
204 // clu->setHADWeight( weight ) ;
205 // return LCIO::SUCCESS ;
206 // }
207 
208 // int lcclusetmuonweight( PTRTYPE cluster, float weight) {
209 // ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
210 // clu->setMuonWeight( weight ) ;
211 // return LCIO::SUCCESS ;
212 // }
213 
214 
215 int lccluaddparticleid( PTRTYPE cluster, PTRTYPE pid) {
216  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
217  ParticleID* cpid = f2c_pointer<ParticleID,LCObject>( pid ) ;
218  clu->addParticleID( cpid ) ;
219  return LCIO::SUCCESS ;
220 }
221 
222 int lccluaddcluster( PTRTYPE cluster, PTRTYPE clus) {
223  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
224  Cluster* cclus = f2c_pointer<Cluster,LCObject>( clus ) ;
225  clu->addCluster( cclus ) ;
226  return LCIO::SUCCESS ;
227 }
228 
229 int lccluaddhit( PTRTYPE cluster, PTRTYPE calohit, float weight ) {
230  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
231  CalorimeterHit* ccalh = f2c_pointer<CalorimeterHit,LCObject>( calohit ) ;
232  clu->addHit( ccalh, weight ) ;
233  return LCIO::SUCCESS ;
234 }
235 
236 int lcclusetsubdetectorenergies( PTRTYPE cluster, float* floatv, const int nfloatv ) {
237  ClusterImpl* clu = f2c_pointer<ClusterImpl,LCObject>( cluster ) ;
238  FloatVec& floatvec = clu->subdetectorEnergies() ;
239  floatvec.resize( nfloatv ) ;
240  for(int j=0;j<nfloatv;j++) {
241  floatvec[j] = floatv[j] ;
242  }
243  return LCIO::SUCCESS ;
244 
245 }
246 
247 
std::vector< CalorimeterHit * > CalorimeterHitVec
Vector of (pointers to) CalorimeterHits.
LCIO_DEPRECATED_CAPI int lccluaddcluster(PTRTYPE clu, PTRTYPE clus)
Definition: lcclu.cc:222
LCIO_DEPRECATED_CAPI int lcclugethitcontributions(PTRTYPE clu, float *ener, int *nener)
Definition: lcclu.cc:118
LCIO_DEPRECATED_CAPI PTRTYPE lcclugetsubdetectorenergies(PTRTYPE clu)
Definition: lcclu.cc:112
LCIO_DEPRECATED_CAPI PTRTYPE lcclugetshape(PTRTYPE clu)
Definition: lcclu.cc:88
std::vector< ParticleID * > ParticleIDVec
Vector of (pointers to) ParticleIDs.
Definition: ParticleID.h:16
std::vector< float > FloatVec
Vector of floats.
Definition: LCIOSTLTypes.h:18
T endl(T...args)
LCIO_DEPRECATED_CAPI PTRTYPE lcclugetparticleids(PTRTYPE clu)
Definition: lcclu.cc:94
LCIO_DEPRECATED_CAPI PTRTYPE lcclugetclusters(PTRTYPE clu)
Definition: lcclu.cc:100
LCIO_DEPRECATED_CAPI int lcclusetsubdetectorenergies(PTRTYPE cluster, float *floatv, const int nfloatv)
Definition: lcclu.cc:236
std::vector< Cluster * > ClusterVec
Vector of (pointers to) Clusters.
Definition: Cluster.h:20
LCIO_DEPRECATED_CAPI int lcclusetitheta(PTRTYPE clu, float theta)
Definition: lcclu.cc:171
LCIO_DEPRECATED_CAPI int lcclusetdirectionerror(PTRTYPE clu, float *direrr)
T resize(T...args)
LCIO_DEPRECATED_CAPI int lcclusetiphi(PTRTYPE clu, float phi)
Definition: lcclu.cc:177
LCIO_DEPRECATED_CAPI int lccluid(PTRTYPE clu)
Definition: lcclu.cc:25
LCIO_DEPRECATED_CAPI float lcclugetenergy(PTRTYPE clu)
Definition: lcclu.cc:40
LCIO_DEPRECATED_CAPI PTRTYPE lcclucreate()
Header file for the f77-wrapper functions of the Cluster Class.
Definition: lcclu.cc:12
LCIO_DEPRECATED_CAPI int lcclugetpositionerror(PTRTYPE clu, float *poserr)
LCIO_DEPRECATED_CAPI float lcclugetitheta(PTRTYPE clu)
Definition: lcclu.cc:60
LCIO_DEPRECATED_CAPI int lcclusetenergy(PTRTYPE clu, float energy)
Definition: lcclu.cc:146
LCIO_DEPRECATED_CAPI int lccluaddparticleid(PTRTYPE clu, PTRTYPE pid)
Definition: lcclu.cc:215
LCIO_DEPRECATED_CAPI int lcclusetpositionerror(PTRTYPE clu, float *poserr)
long PTRTYPE
Fortran interface - define the length of pointers this has to made machine independent ...
Definition: cpointer.h:12
LCIO_DEPRECATED_CAPI int lcclusetposition(PTRTYPE clu, float *refpoint)
LCIO_DEPRECATED_CAPI int lcclusetshape(PTRTYPE clu, PTRTYPE pshapevec)
Definition: lcclu.cc:189
LCIO_DEPRECATED_CAPI int lcclugettype(PTRTYPE clu)
Definition: lcclu.cc:30
LCIO_DEPRECATED_CAPI PTRTYPE lcclugetcalorimeterhits(PTRTYPE clu)
Definition: lcclu.cc:106
LCIO_DEPRECATED_CAPI int lccluaddhit(PTRTYPE clu, PTRTYPE calohit, float weigth)
Definition: lcclu.cc:229
LCIO_DEPRECATED_CAPI int lcclusetenergyerr(PTRTYPE clu, float enerr)
Definition: lcclu.cc:152
LCIO_DEPRECATED_CAPI float lcclugetiphi(PTRTYPE clu)
Definition: lcclu.cc:65
LCIO_DEPRECATED_CAPI int lcclugetposition(PTRTYPE clu, float *pos)
Definition: lcclu.cc:48
LCIO_DEPRECATED_CAPI float lcclugetenergyerr(PTRTYPE clu)
Definition: lcclu.cc:44
LCIO_DEPRECATED_CAPI int lcclusettypebit(PTRTYPE clu, int index, int val)
Definition: lcclu.cc:140
#define C2F_POINTER(T, ptr)
Definition: cpointer.h:33
LCIO_DEPRECATED_CAPI int lccludelete(PTRTYPE clu)
Definition: lcclu.cc:16
LCIO_DEPRECATED_CAPI int lcclugetdirectionerror(PTRTYPE clu, float *direrr)