2 added + 9 modified, total 11 files
lcio/src/cpp/include/CPPFORT
diff -N lcvtx.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lcvtx.h 29 Aug 2006 15:00:14 -0000 1.1.2.1
@@ -0,0 +1,58 @@
+/**Header file for the f77-wrapper functions of the Vertex Class.
+ *
+ * @author engels
+ * @version Aug 28, 2006
+ */
+#include "cfortran.h"
+#include "cpointer.h"
+
+// Warning: dont use "_" in function names as this causes two many
+// trailing underscores on Linux
+
+PTRTYPE lcvtxcreate() ;
+int lcvtxdelete( PTRTYPE vtx ) ;
+
+int lcvtxid( PTRTYPE vtx ) ;
+bool lcvtxisprimary( PTRTYPE vtx ) ;
+float lcvtxgetchi2( PTRTYPE vtx ) ;
+float lcvtxgetprobability( PTRTYPE vtx ) ;
+int lcvtxgetposition( PTRTYPE vtx, float* pos ) ;
+int lcvtxgetcovmatrix( PTRTYPE vtx, float* cvmtx ) ;
+int lcvtxgetparameters( PTRTYPE vtx, float* vec, int* nvec ) ;
+PTRTYPE lcvtxgetassociatedparticle( PTRTYPE vtx ) ;
+
+int lcvtxsetprimary( PTRTYPE vtx, bool pri ) ;
+int lcvtxsetchi2( PTRTYPE vtx, float chi2 ) ;
+int lcvtxsetprobability( PTRTYPE vtx, float prob ) ;
+int lcvtxsetposition( PTRTYPE vtx, float* pos ) ;
+int lcvtxsetcovmatrix( PTRTYPE vtx, float* cvmtx ) ;
+int lcvtxaddparameter( PTRTYPE vtx, float param ) ;
+int lcvtxsetassociatedparticle( PTRTYPE vtx, PTRTYPE rcp ) ;
+
+
+// now the fortran wrappers from cfortran.h
+extern "C"{
+
+FCALLSCFUN0(CFORTRANPNTR, lcvtxcreate, LCVTXCREATE, lcvtxcreate )
+FCALLSCFUN1(INT, lcvtxdelete, LCVTXDELETE, lcvtxdelete, CFORTRANPNTR )
+
+FCALLSCFUN1(INT, lcvtxid, LCVTXID, lcvtxid, CFORTRANPNTR)
+FCALLSCFUN1(LOGICAL, lcvtxisprimary, LCVTXISPRIMARY, lcvtxisprimary, CFORTRANPNTR)
+FCALLSCFUN1(FLOAT, lcvtxgetchi2, LCVTXGETCHI2, lcvtxgetchi2, CFORTRANPNTR)
+FCALLSCFUN1(FLOAT, lcvtxgetprobability, LCVTXGETPROBABILITY, lcvtxgetprobability, CFORTRANPNTR)
+FCALLSCFUN2(INT, lcvtxgetposition, LCVTXGETPOSITION, lcvtxgetposition, CFORTRANPNTR, FLOATV)
+FCALLSCFUN2(INT, lcvtxgetcovmatrix, LCVTXGETCOVMATRIX, lcvtxgetcovmatrix, CFORTRANPNTR, FLOATV)
+FCALLSCFUN3(INT, lcvtxgetparameters, LCVTXGETPARAMETERS, lcvtxgetparameters, CFORTRANPNTR, FLOATV, INTV)
+FCALLSCFUN1(CFORTRANPNTR, lcvtxgetassociatedparticle, LCVTXGETASSOCIATEDPARTICLE, lcvtxgetassociatedparticle, CFORTRANPNTR)
+
+// FCALLSCFUN2(INT, lcvtxsetprimary, LCVTXSETPRIMARY, lcvtxsetprimary, CFORTRANPNTR, LOGICAL)
+FCALLSCFUN2(INT, lcvtxsetchi2, LCVTXSETCHI2, lcvtxsetchi2, CFORTRANPNTR, FLOAT)
+FCALLSCFUN2(INT, lcvtxsetprobability, LCVTXSETPROBABILITY, lcvtxsetprobability, CFORTRANPNTR, FLOAT)
+FCALLSCFUN2(INT, lcvtxsetposition, LCVTXSETPOSITION, lcvtxsetposition, CFORTRANPNTR, FLOATV)
+FCALLSCFUN2(INT, lcvtxsetcovmatrix, LCVTXSETCOVMATRIX, lcvtxsetcovmatrix, CFORTRANPNTR, FLOATV)
+FCALLSCFUN2(INT, lcvtxaddparameter, LCVTXADDPARAMETER, lcvtxaddparameter, CFORTRANPNTR, FLOAT)
+FCALLSCFUN2(INT, lcvtxsetassociatedparticle, LCVTXSETASSOCIATEDPARTICLE, lcvtxsetassociatedparticle, CFORTRANPNTR, CFORTRANPNTR )
+
+}
+
+
lcio/src/cpp/include/CPPFORT
diff -u -r1.5 -r1.5.6.1
--- lcrcp.h 15 Apr 2005 08:37:34 -0000 1.5
+++ lcrcp.h 29 Aug 2006 15:00:13 -0000 1.5.6.1
@@ -31,6 +31,9 @@
// int lcrcpgettrackweights( PTRTYPE rcp, float* weights, int* nweights ) ;
// PTRTYPE lcrcpgetmcparticles( PTRTYPE rcp ) ;
// int lcrcpgetmcparticleweights( PTRTYPE rcp, float* weights, int* nweights ) ;
+PTRTYPE lcrcpgetstartvertex( PTRTYPE rcp ) ;
+PTRTYPE lcrcpgetendvertex( PTRTYPE rcp ) ;
+
int lcrcpsettype( PTRTYPE rcp, int type ) ;
int lcrcpsetcompound( PTRTYPE rcp, bool lcompound ) ;
@@ -46,6 +49,7 @@
int lcrcpaddcluster( PTRTYPE rcp, PTRTYPE clus ) ;
int lcrcpaddtrack( PTRTYPE rcp, PTRTYPE track) ;
// int lcrcpaddmcparticle( PTRTYPE rcp, PTRTYPE mcp, float weigth ) ;
+int lcrcpsetstartvertex( PTRTYPE rcp, PTRTYPE vtx ) ;
// now the fortran wrappers from cfortran.h
@@ -74,6 +78,9 @@
// FCALLSCFUN1(CFORTRANPNTR, lcrcpgetmcparticles, LCRCPGETMCPARTICLES, lcrcpgetmcparticles, CFORTRANPNTR)
// FCALLSCFUN3(INT, lcrcpgetmcparticleweights, LCRCPGETMCPARTICLEWEIGHTS, lcrcpgetmcparticleweights,
// CFORTRANPNTR, FLOATV, INTV)
+FCALLSCFUN1(CFORTRANPNTR, lcrcpgetstartvertex, LCRCPGETSTARTVERTEX, lcrcpgetstartvertex, CFORTRANPNTR)
+FCALLSCFUN1(CFORTRANPNTR, lcrcpgetendvertex, LCRCPGETENDVERTEX, lcrcpgetendvertex, CFORTRANPNTR)
+
FCALLSCFUN2(INT, lcrcpsettype, LCRCPSETTYPE, lcrcpsettype, CFORTRANPNTR, INT)
// FCALLSCFUN2(INT, lcrcpsetcompound, LCRCPSETCOMPOUND, lcrcpsetcompound, CFORTRANPNTR, LOGICAL)
@@ -90,7 +97,7 @@
FCALLSCFUN2(INT, lcrcpaddcluster, LCRCPADDCLUSTER, lcrcpaddcluster, CFORTRANPNTR, CFORTRANPNTR)
FCALLSCFUN2(INT, lcrcpaddtrack, LCRCPADDTRACK, lcrcpaddtrack, CFORTRANPNTR, CFORTRANPNTR)
// FCALLSCFUN3(INT, lcrcpaddmcparticle, LCRCPADDMCPARTICLE, lcrcpaddmcparticle, CFORTRANPNTR, CFORTRANPNTR, FLOAT)
-
+FCALLSCFUN2(INT, lcrcpsetstartvertex, LCRCPSETSTARTVERTEX, lcrcpsetstartvertex, CFORTRANPNTR, CFORTRANPNTR )
}
lcio/src/cpp/src/CPPFORT
diff -N lcvtx.cc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lcvtx.cc 29 Aug 2006 15:00:15 -0000 1.1.2.1
@@ -0,0 +1,124 @@
+#include "CPPFORT/lcvtx.h"
+
+#include "lcio.h"
+#include "IMPL/VertexImpl.h"
+#include "IMPL/ReconstructedParticleImpl.h"
+
+using namespace lcio ;
+
+#include <iostream>
+
+// create delete Vertex
+
+PTRTYPE lcvtxcreate(){
+ VertexImpl* vtx = new VertexImpl ;
+ return C2F_POINTER( LCObject*, vtx ) ;
+}
+int lcvtxdelete( PTRTYPE vertex ){
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ delete vtx ;
+ return LCIO::SUCCESS ;
+}
+
+
+// get Methods
+
+int lcvtxid( PTRTYPE vertex ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ return vtx->id() ;
+}
+
+bool lcvtxisprimary ( PTRTYPE vertex ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ return vtx->isPrimary() ;
+}
+
+float lcvtxgetchi2( PTRTYPE vertex ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ return vtx->getChi2() ;
+}
+
+float lcvtxgetprobability( PTRTYPE vertex ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ return vtx->getProbability() ;
+}
+
+int lcvtxgetposition( PTRTYPE vertex, float pos[3] ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ for( int i=0 ; i<3 ; *pos++ = vtx->getPosition()[i++] ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxgetcovmatrix( PTRTYPE vertex, float cvmtx[VTXCOVMATRIX] ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ for( int i=0 ; i<VTXCOVMATRIX ; cvmtx[i] = vtx->getCovMatrix()[i++] ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxgetparameters( PTRTYPE vertex, float* vec, int* nvec ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ int ntot = *nvec - 1 ;
+ const FloatVec* floatVec = &vtx->getParameters() ;
+ for(unsigned int l=0; l < floatVec->size(); l++){
+ if ( l > (unsigned)(ntot) ) {
+ std::cout << "LCVertex: in getParameters more than " << ntot << "parameters to store" << std::endl ;
+ return LCIO::ERROR ;
+ }
+ *vec++ = (*floatVec)[l] ;
+ }
+ *nvec = (int)(floatVec->size() + 1);
+ return LCIO::SUCCESS ;
+}
+
+PTRTYPE lcvtxgetassociatedparticle( PTRTYPE vertex ) {
+ Vertex* vtx = f2c_pointer<Vertex,LCObject>( vertex ) ;
+ ReconstructedParticle* recP = vtx->getAssociatedParticle();
+ return reinterpret_cast<PTRTYPE>( recP );
+}
+
+
+// set,add Methods
+
+// int lcvtxsetprimary( PTRTYPE vertex, bool pri ) {
+// VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+// vtx->setPrimary( pri ) ;
+// return LCIO::SUCCESS ;
+// }
+
+int lcvtxsetchi2( PTRTYPE vertex, float chi2 ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ vtx->setChi2( chi2 ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxsetprobability( PTRTYPE vertex, float probability ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ vtx->setProbability( probability ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxsetposition( PTRTYPE vertex, float pos[3] ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ vtx->setPosition( pos ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxsetcovmatrix( PTRTYPE vertex, float cvmtx[VTXCOVMATRIX] ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ vtx->setCovMatrix( cvmtx ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxaddparameter( PTRTYPE vertex, float param) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ vtx->addParameter( param ) ;
+ return LCIO::SUCCESS ;
+}
+
+int lcvtxsetassociatedparticle( PTRTYPE vertex, PTRTYPE particle ) {
+ VertexImpl* vtx = f2c_pointer<VertexImpl,LCObject>( vertex ) ;
+ ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( particle ) ;
+ vtx->setAssociatedParticle( rcp ) ;
+ return LCIO::SUCCESS ;
+}
+
lcio/src/cpp/src/CPPFORT
diff -u -r1.4 -r1.4.6.1
--- lcrcp.cc 22 Sep 2004 20:58:35 -0000 1.4
+++ lcrcp.cc 29 Aug 2006 15:00:15 -0000 1.4.6.1
@@ -2,6 +2,7 @@
#include "lcio.h"
#include "IMPL/ReconstructedParticleImpl.h"
+#include "IMPL/VertexImpl.h"
using namespace lcio ;
@@ -166,6 +167,17 @@
// *nweights = (int)(rcp->getMCParticles().size() + 1);
// return LCIO::SUCCESS ;
// }
+PTRTYPE lcrcpgetstartvertex( PTRTYPE recopart ) {
+ ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( recopart ) ;
+ Vertex* vtx = rcp->getStartVertex();
+ return reinterpret_cast<PTRTYPE>( vtx );
+}
+
+PTRTYPE lcrcpgetendvertex( PTRTYPE recopart ) {
+ ReconstructedParticle* rcp = f2c_pointer<ReconstructedParticle,LCObject>( recopart ) ;
+ Vertex* vtx = rcp->getEndVertex();
+ return reinterpret_cast<PTRTYPE>( vtx );
+}
// set,add Methods
@@ -259,5 +271,10 @@
// return LCIO::SUCCESS ;
// }
-
+int lcrcpsetstartvertex( PTRTYPE recopart, PTRTYPE vertex ) {
+ ReconstructedParticleImpl* rcp = f2c_pointer<ReconstructedParticleImpl,LCObject>( recopart ) ;
+ Vertex* vtx = f2c_pointer<Vertex,LCObject>( vertex ) ;
+ rcp->setStartVertex( vtx ) ;
+ return LCIO::SUCCESS ;
+}
lcio/src/cpp/src/EXAMPLE
diff -u -r1.49.2.2 -r1.49.2.3
--- recjob.cc 24 Aug 2006 16:15:49 -0000 1.49.2.2
+++ recjob.cc 29 Aug 2006 15:00:15 -0000 1.49.2.3
@@ -493,8 +493,11 @@
cov[4] = 5. ;
cov[5] = 6. ;
vtx->setCovMatrix( cov ) ;
+ for(int j=0;j<3;j++){
+ vtx->addParameter( j*.1 ) ;
+ }
+
vertexVec->addElement ( vtx ) ;
-
}
evt->addCollection( vertexVec, "SomeVertices" ) ;
lcio/src/cpp/src/EXAMPLE
diff -u -r1.1.2.7 -r1.1.2.8
--- testvtx.cc 25 Aug 2006 07:48:21 -0000 1.1.2.7
+++ testvtx.cc 29 Aug 2006 15:00:18 -0000 1.1.2.8
@@ -46,6 +46,11 @@
cov[5] = 6. ;
vtx->setCovMatrix( cov ) ;
+
+ vtx->addParameter(.01);
+ vtx->addParameter(.02);
+ vtx->addParameter(.03);
+
//Vertex* v=vtx;
//cout<<lcshort(v);
@@ -58,7 +63,9 @@
//cout<<tail(&VertexImpl());
//gives a warnig...
- cout<<&IMPL::VertexImpl()<<endl;
+ //cout<<&IMPL::VertexImpl()<<endl;
+
+ cout << dynamic_cast<Vertex*>(vertexVec->getElementAt(0)) << endl;
LCTOOLS::printVertices( vertexVec ) ;
lcio/src/cpp/src/UTIL
diff -u -r1.49.4.6 -r1.49.4.7
--- LCTOOLS.cc 28 Aug 2006 14:02:48 -0000 1.49.4.6
+++ LCTOOLS.cc 29 Aug 2006 15:00:18 -0000 1.49.4.7
@@ -1201,9 +1201,9 @@
int nPrint = nReconstructedParticles > MAX_HITS ? MAX_HITS : nReconstructedParticles ;
std::cout << endl
- << " [ id ] |com|type| momentum( px,py,pz) | energy | mass | charge | position ( x,y,z) | [pidUsed] | [startVtx] | [endVtx] "
+ << " [ id ] |com|type| momentum( px,py,pz) | energy | mass | charge | position ( x,y,z) | [pidUsed] "
<< endl
- << " ----------|---|----|---------------------------------|----------|----------|-----------|----------------------------------|-----------|------------|----------"
+ << " ----------|---|----|---------------------------------|----------|----------|-----------|----------------------------------|-----------"
<< endl ;
for( int i=0 ; i< nPrint ; i++ ){
@@ -1225,7 +1225,7 @@
if( recP->getParticleIDUsed() != 0 )
pidUsed = recP->getParticleIDUsed()->id() ;
- printf(" [%8.8x] | %1d | %2d | (%5.3e,%5.3e,%5.3e) | %4.2e | %4.2e | %4.2e | (%5.3e,%5.3e,%5.3e) | [%8.8x] | [%8.8x] | [%8.8x]\n"
+ printf(" [%8.8x] | %1d | %2d | (%5.3e,%5.3e,%5.3e) | %4.2e | %4.2e | %4.2e | (%5.3e,%5.3e,%5.3e) | [%8.8x]\n"
// , reinterpret_cast<int> ( recP )
, recP->id()
, compound
@@ -1240,8 +1240,8 @@
, recP->getReferencePoint()[1]
, recP->getReferencePoint()[2]
, pidUsed
- , (recP->getStartVertex()!=NULL?recP->getStartVertex()->id():0)
- , (recP->getEndVertex()!=NULL?recP->getEndVertex()->id():0)
+ //, (recP->getStartVertex()!=NULL?recP->getStartVertex()->id():0)
+ //, (recP->getEndVertex()!=NULL?recP->getEndVertex()->id():0)
) ;
cout << " covariance( px,py,pz,E) : (" ;
for(int l=0;l<10;l++){
@@ -1273,6 +1273,27 @@
printf("[%8.8x], %6.6d, (%6.6d) ", pid->id() , pid->getPDG() , pid->getType() ) ;
}
cout << endl ;
+
+ Vertex* sv = dynamic_cast<Vertex*>(recP->getStartVertex());
+ Vertex* ev = dynamic_cast<Vertex*>(recP->getEndVertex());
+ ReconstructedParticle* svr=0;
+ ReconstructedParticle* evr=0;
+
+ if(sv!=0){
+ svr = dynamic_cast<ReconstructedParticle*>(sv->getAssociatedParticle());
+ }
+ if(ev!=0){
+ evr = dynamic_cast<ReconstructedParticle*>(ev->getAssociatedParticle());
+ }
+
+ printf(" vertices: startVertex( id:[%8.8x], id_aRP:[%8.8x] ) endVertex( id:[%8.8x], id_aRP:[%8.8x] ) "
+ , ( sv != 0 ? sv->id() : 0 )
+ , ((sv != 0 && svr != 0) ? svr->id() : 0 )
+ , ( ev != 0 ? ev->id() : 0 )
+ , ((ev != 0 && evr != 0) ? evr->id() : 0 )
+ ) ;
+
+ cout << endl ;
// cout << " MCParticles ( [ id ] (weight) ): " ;
// for(unsigned int l=0;l<recP->getMCParticles().size();l++){
lcio/src/cpp/src/UTIL
diff -u -r1.1.2.2 -r1.1.2.3
--- Operators.cc 28 Aug 2006 13:32:33 -0000 1.1.2.2
+++ Operators.cc 29 Aug 2006 15:00:21 -0000 1.1.2.3
@@ -9,16 +9,19 @@
namespace UTIL{
std::ostream& operator<<( std::ostream& out, const UTIL::lcio_short<EVENT::Vertex>& sV){
- const EVENT::Vertex* v=sV.obj;
- out << " [" << setfill('0') << setw(8) << hex << v->id() << "] | " << v->isPrimary()<< " | ";
+ const EVENT::Vertex* v=sV.obj;
+
+ out << setfill('0');
+ out << " [" << setw(8) << hex << v->id() << "] | " << v->isPrimary()<< " | ";
out << scientific << setprecision(3) << v->getChi2() << " | " << v->getProbability() << " | " <<
- v->getPosition()[0] << ", " <<
- v->getPosition()[1] << ", " <<
+ v->getPosition()[0] << "," <<
+ v->getPosition()[1] << "," <<
v->getPosition()[2] << " | " ;
for(int i=0;i<VTXCOVMATRIX;i++)
- out << v->getCovMatrix()[i] << (i<(VTXCOVMATRIX-1)?", ":" | [");
- out << setfill('0') << setw(8) << hex << (v->getAssociatedParticle()!=NULL?v->getAssociatedParticle()->id():0) << "]\n";
+ out << v->getCovMatrix()[i] << (i<(VTXCOVMATRIX-1)?",":" | [");
+ out << setw(3) << v->getParameters().size() << "] | [";
+ out << setw(8) << hex << (v->getAssociatedParticle()!=NULL?v->getAssociatedParticle()->id():0) << "]\n";
return out;
@@ -26,7 +29,8 @@
std::ostream& operator<<( std::ostream& out, const EVENT::Vertex* v){
- out << "Vertex ID:\t\t[" << setfill('0') << setw(8) << hex << v->id() << "]" << endl;
+ out << setfill('0');
+ out << "Vertex ID:\t\t[" << setw(8) << hex << v->id() << "]" << endl;
out << "Is Primary Vertex:\t" << (v->isPrimary() ? "true":"false") << endl;
out << scientific << setprecision(5);
out << "Chi2:\t\t\t" << v->getChi2() << endl;
@@ -37,10 +41,22 @@
v->getPosition()[2] << endl;
out << "Covariance Matrix:\t";
- for(int i=0;i<VTXCOVMATRIX;i++)
+ for(int i=0; i<VTXCOVMATRIX; i++)
out << v->getCovMatrix()[i] << (i<(VTXCOVMATRIX-1)?", ":"\n");
+
+ out << "Parameters:";
+ if(v->getParameters().size()==0){
+ out << "\t\t[Empty]" << endl;
+ }
+ else { out << endl; }
+ for(unsigned int i=0; i < v->getParameters().size(); i++){
+ out << " Parameter [";
+ out << setw(3) << i << "]:\t";
+ out << scientific << setprecision(5) << v->getParameters()[i] << endl;
+ }
+
out << "Associated Reconstructed Particle ID:\t[";
- out << setfill('0') << setw(8) << hex << (v->getAssociatedParticle()!=NULL?v->getAssociatedParticle()->id():0) <<"]\n\n";
+ out << setw(8) << hex << (v->getAssociatedParticle()!=NULL?v->getAssociatedParticle()->id():0) <<"]\n\n";
return out;
}
@@ -74,8 +90,8 @@
const std::string& header(const EVENT::Vertex* v){
static std::string _vtxh(
- "\n [id] |pri| chi2 | prob. | position ( x, y, z) |"
- " covariance matrix (px, py, pz) | [idRecP] \n");
+ "\n [id] |pri| chi2 | prob. | position ( x, y, z) |"
+ " covariance matrix (px, py, pz) | [par] | [idRecP] \n");
_vtxh+=tail(new IMPL::VertexImpl());
return _vtxh;
}
@@ -83,8 +99,8 @@
const std::string& tail(const EVENT::Vertex* v){
static std::string _vtxt(
- "------------|---|-----------|-----------|---------------------------------|"
- "------------------------------------------------------------------|------------\n");
+ "------------|---|-----------|-----------|-------------------------------|"
+ "-------------------------------------------------------------|-------|------------\n");
return _vtxt;
}
lcio/src/f77
diff -u -r1.37 -r1.37.4.1
--- lciof77api.inc 24 Mar 2006 14:05:43 -0000 1.37
+++ lciof77api.inc 29 Aug 2006 15:00:22 -0000 1.37.4.1
@@ -12,7 +12,7 @@
* H. Vogt
* 05/06/2004 (reconstruction part added)
*
-* $Id: lciof77api.inc,v 1.37 2006/03/24 14:05:43 gaede Exp $
+* $Id: lciof77api.inc,v 1.37.4.1 2006/08/29 15:00:22 engels Exp $
***************************************************
#include "lciof77pointer.inc"
@@ -205,13 +205,28 @@
real lcrcpgetenergy, lcrcpgetmass, lcrcpgetcharge
PTRTYPE lcrcpgetparticleids, lcrcpgetparticles
PTRTYPE lcrcpgetclusters, lcrcpgettracks
+ PTRTYPE lcrcpgetstartvertex, lcrcpgetendvertex
integer lcrcpsettype, lcrcpsetmomentum, lcrcpsetenergy
integer lcrcpsetcovmatrix, lcrcpsetmass, lcrcpsetcharge
integer lcrcpsetreferencepoint, lcrcpsetgoodnessofpid
+ integer lcrcpsetstartvertex
integer lcrcpaddparticleid
integer lcrcpaddparticle, lcrcpaddcluster, lcrcpaddtrack
+c-----the Vertex interface
+ PTRTYPE lcvtxcreate
+ integer lcvtxdelete, lcvtxid
+
+ logical lcvtxisprimary
+ integer lcvtxgetposition, lcvtxgetcovmatrix, lcvtxgetparameters
+ real lcvtxgetchi2, lcvtxgetprobability
+ PTRTYPE lcvtxgetassociatedparticle
+
+ integer lcvtxsetprimary, lcvtxsetchi2, lcvtxsetprobability
+ integer lcvtxsetposition, lcvtxsetcovmatrix, lcvtxaddparameter
+ integer lcvtxsetassociatedparticle
+
c-----the TrackerHit interface
PTRTYPE lctrhcreate, lctrhgetrawhits
integer lctrhdelete, lctrhid, lctrhgetposition, lctrhgetcovmatrix
@@ -294,6 +309,7 @@
character*32 LCIO_TRACK
character*32 LCIO_CLUSTER
character*32 LCIO_RECONSTRUCTEDPARTICLE
+ character*32 LCIO_VERTEX
character*32 LCIO_LCRELATION
character*32 LCIO_LCGENERICOBJECT
@@ -313,6 +329,7 @@
data LCIO_TRACK /'Track'/
data LCIO_CLUSTER /'Cluster'/
data LCIO_RECONSTRUCTEDPARTICLE /'ReconstructedParticle'/
+ data LCIO_VERTEX /'Vertex'/
data LCIO_LCRELATION /'LCRelation'/
data LCIO_LCGENERICOBJECT /'LCGenericObject'/
lcio/src/f77
diff -u -r1.22 -r1.22.6.1
--- recjob.F 24 Sep 2004 10:54:58 -0000 1.22
+++ recjob.F 29 Aug 2006 15:00:23 -0000 1.22.6.1
@@ -161,7 +161,10 @@
*** create some clusters and add them to the event
call clusters
-*** add some reconstructed particles
+*** add some vertices
+ call vertices
+
+** add some reconstructed particles
call reco_particles
end
@@ -565,6 +568,53 @@
**********************************************************************
* *
+ subroutine vertices !*
+* *
+**********************************************************************
+
+ implicit none
+
+#include "recjob.inc"
+
+ PTRTYPE helpp, clusp
+ integer i, j, k
+ real cov(6), pos(3)
+ character*30 colname
+
+ integer nvtx
+ parameter (nvtx=11)
+
+*** add some vertices
+ vtxcol = lccolcreate ( LCIO_VERTEX )
+ do i = 1, nvtx
+ vtx = lcvtxcreate ()
+c status = lcvtxsetprimary ( vtxv, .true. )
+ status = lcvtxsetchi2 ( vtx, (i-1)*101.101 )
+ status = lcvtxsetprobability ( vtx, 0.511*(i-1) )
+ do j = 1, 6
+ cov(j) = j
+ end do
+ status = lcvtxsetcovmatrix ( vtx, cov )
+ pos(1) = 10.
+ pos(2) = 20.
+ pos(3) = 30.
+ status = lcvtxsetposition ( vtx, pos )
+ do j = 1, 3
+ status = lcvtxaddparameter ( vtx, (j-1)*.1 )
+ end do
+
+*** add this vertex to collection
+ status = lccoladdelement ( vtxcol, vtx )
+
+ end do
+ colname = 'Vertices'
+ status = lcevtaddcollection ( eventi, vtxcol, colname )
+*
+ end
+
+
+**********************************************************************
+* *
subroutine reco_particles !*
* *
**********************************************************************
@@ -579,7 +629,7 @@
integer i, j, k
integer ihit1, ihit2, ihit3, npid, itrk, iclu, imcp
real mom(3), cov(10), refp(3), prob
- character*30 colname1, colname2
+ character*30 colname
double precision dpos(3), dhelp
integer nreccp
@@ -607,6 +657,12 @@
refp(3) = 30.
status = lcrcpsetreferencepoint (recopp, refp )
+*** associate vertices
+ vtx = lccolgetelementat ( vtxcol , i )
+ status = lcrcpsetstartvertex ( recopp, vtx )
+ vtx = lccolgetelementat ( vtxcol , i + 1 )
+ status = lcvtxsetassociatedparticle ( vtx , recopp )
+
*** add some particle ids
npid = 5
do j = 1, npid
@@ -658,8 +714,8 @@
status = lccoladdelement ( recopcol, recopp )
end do
- colname2 = 'ReconstructedParticle'
- status = lcevtaddcollection ( eventi, recopcol, colname2 )
+ colname = 'ReconstructedParticle'
+ status = lcevtaddcollection ( eventi, recopcol, colname )
*
end
lcio/src/f77
diff -u -r1.3 -r1.3.6.1
--- recjob.inc 21 Sep 2004 15:44:50 -0000 1.3
+++ recjob.inc 29 Aug 2006 15:00:24 -0000 1.3.6.1
@@ -12,6 +12,7 @@
PTRTYPE tpchitcol, trackerhitcol, trhitp, tpchit, trackcol, trkp
PTRTYPE simcalcol, cluscol, calhitcol, simcalhitp, calhitp
PTRTYPE recopcol, recopp, pidp, recopp1, recopp2
+ PTRTYPE vtxcol, vtx
*** temporary pointers used in several routines
PTRTYPE screlp, screlcol
@@ -23,6 +24,7 @@
&, tpchitcol, trackerhitcol, trhitp, tpchit, trackcol, trkp
&, simcalcol, cluscol, calhitcol, simcalhitp, calhitp
&, recopcol, recopp, pidp, recopp1, recopp2
+ &, vtxcol, vtx
&, ievent
integer status, ievent
CVSspam 0.2.8