00001 #include "CPPFORT/lcsch.h"
00002
00003 #include "lcio.h"
00004 #include "IMPL/SimCalorimeterHitImpl.h"
00005 #include "IMPL/MCParticleImpl.h"
00006
00007
00008 using namespace lcio ;
00009
00010
00011 PTRTYPE lcschcreate(){
00012 SimCalorimeterHitImpl* hit = new SimCalorimeterHitImpl ;
00013 return C2F_POINTER( LCObject*, hit ) ;
00014 }
00015 int lcschdelete( PTRTYPE simcalhit ) {
00016 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00017 delete hit ;
00018 return LCIO::SUCCESS ;
00019 }
00020
00021
00022
00023 int lcschid( PTRTYPE simcalhit ) {
00024 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00025 return hit->id() ;
00026 }
00027
00028 int lcschgetcellid0( PTRTYPE simcalhit ) {
00029 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00030 return hit->getCellID0() ;
00031 }
00032 int lcschgetcellid1( PTRTYPE simcalhit ) {
00033 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00034 return hit->getCellID1() ;
00035 }
00036 float lcschgetenergy( PTRTYPE simcalhit ) {
00037 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00038 return hit->getEnergy() ;
00039 }
00040 int lcschgetposition( PTRTYPE simcalhit, float *pos) {
00041 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00042 for(int i=0;i<3; *pos++ = hit->getPosition()[i++] ) ;
00043 return LCIO::SUCCESS ;
00044 }
00045 int lcschgetnmcparticles( PTRTYPE simcalhit ) {
00046 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00047 return hit->getNMCContributions() ;
00048 }
00049
00050 int lcschgetnmccontributions( PTRTYPE simcalhit ) {
00051 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00052 return hit->getNMCContributions() ;
00053 }
00054
00055 PTRTYPE lcschgetparticlecont( PTRTYPE simcalhit, int i) {
00056 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00057 return C2F_POINTER( LCObject*, hit->getParticleCont( i-1 ) ) ;
00058 }
00059 float lcschgetenergycont( PTRTYPE simcalhit, int i) {
00060 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00061 return hit->getEnergyCont( i-1 ) ;
00062 }
00063 float lcschgettimecont( PTRTYPE simcalhit, int i) {
00064 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00065 return hit->getTimeCont( i-1 ) ;
00066 }
00067 int lcschgetpdgcont( PTRTYPE simcalhit, int i) {
00068 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00069 return hit->getPDGCont( i-1 ) ;
00070 }
00071
00072
00073
00074 int lcschsetcellid0( PTRTYPE simcalhit, int id0) {
00075 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00076 hit->setCellID0( id0 ) ;
00077 return LCIO::SUCCESS ;
00078 }
00079 int lcschsetcellid1( PTRTYPE simcalhit, int id1) {
00080 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00081 hit->setCellID1( id1 ) ;
00082 return LCIO::SUCCESS ;
00083 }
00084 int lcschsetenergy( PTRTYPE simcalhit, float en) {
00085 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00086 hit->setEnergy( en ) ;
00087 return LCIO::SUCCESS ;
00088 }
00089 int lcschsetposition( PTRTYPE simcalhit, float pos[3]) {
00090 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00091 hit->setPosition( pos ) ;
00092 return LCIO::SUCCESS ;
00093 }
00094 int lcschaddmcparticlecontribution( PTRTYPE simcalhit, PTRTYPE mcparticle, float en, float t, int pdg ) {
00095 SimCalorimeterHitImpl* hit = f2c_pointer<SimCalorimeterHitImpl,LCObject>( simcalhit ) ;
00096 MCParticleImpl* mcp = f2c_pointer<MCParticleImpl,LCObject>( mcparticle ) ;
00097 hit->addMCParticleContribution( mcp, en, t, pdg ) ;
00098 return LCIO::SUCCESS ;
00099 }