20 #include "EVENT/LCIO.h"
43 using namespace EVENT ;
44 using namespace IMPL ;
54 cout <<
"///////////////////////////////////" <<
endl;
58 <<
"COLLECTIONS: (see below)" <<
endl;
59 cout <<
"///////////////////////////////////" << endl <<
endl;
61 cout <<
"---------------------------------------------------------------------------" <<
endl;
63 cout.width(25);
cout << left <<
"COLLECTION TYPE";
64 cout.width(20);
cout << left <<
"NUMBER OF ELEMENTS" <<
endl;
65 cout <<
"===========================================================================" <<
endl;
72 cout.width(30);
cout << left << *name;
78 cout <<
"---------------------------------------------------------------------------" <<
endl;
83 void LCTOOLS::dumpEventDetailed(
const LCEvent* evt){
87 <<
"============================================================================" <<
endl ;
93 cout <<
"============================================================================" <<
endl ;
96 cout <<
" date: " << evtTime.getDateString() <<
endl ;
99 cout <<
" event parameters: " <<
endl ;
109 for( name = strVec->
begin() ; name != strVec->
end() ; name++){
114 <<
" collection name : " << *name
116 <<
" parameters: " <<
endl ;
125 printMCParticles( col ) ;
130 printSimTrackerHits( col ) ;
135 printTPCHits( col ) ;
140 printTrackerHits( col ) ;
145 printTrackerHitPlane( col ) ;
150 printTrackerHitZCylinder( col ) ;
155 printSimCalorimeterHits( col ) ;
160 printCalorimeterHits( col ) ;
165 printRawCalorimeterHits( col ) ;
170 printLCFloatVecs( col ) ;
175 printLCIntVecs( col ) ;
180 printLCStrVecs( col ) ;
190 printClusters( col ) ;
195 printReconstructedParticles( col ) ;
200 printVertices( col ) ;
205 printLCGenericObjects( col ) ;
210 printRelation( col ) ;
214 printTrackerRawData( col ) ;
218 printTrackerData( col ) ;
222 printTrackerPulse( col ) ;
232 cout <<
" collection not of type " << LCIO::TRACK <<
endl ;
236 <<
"--------------- " <<
"print out of " << LCIO::TRACK <<
" collection "
237 <<
"--------------- " <<
endl ;
245 cout <<
" LCIO::TRBIT_HITS : " << flag.test( LCIO::TRBIT_HITS ) <<
endl ;
255 for(
int i=0 ; i< nPrint ; i++ ){
265 cout <<
" collection not of type " << LCIO::SIMTRACKERHIT <<
endl ;
270 <<
"--------------- " <<
"print out of " << LCIO::SIMTRACKERHIT <<
" collection "
271 <<
"--------------- " <<
endl ;
279 cout <<
" LCIO::THBIT_BARREL : " << flag.test( LCIO::THBIT_BARREL ) <<
endl ;
280 cout <<
" LCIO::THBIT_MOMENTUM : " << flag.test( LCIO::THBIT_MOMENTUM ) <<
endl ;
281 cout << LCTOOLS::getQualityBits() <<
endl;
290 for(
int i=0 ; i< nPrint ; i++ ){
301 cout <<
" collection not of type " << LCIO::TRACKERHIT <<
endl ;
306 <<
"--------------- " <<
"print out of " << LCIO::TRACKERHIT <<
" collection "
307 <<
"--------------- " <<
endl ;
315 cout <<
" LCIO::THBIT_BARREL : " << flag.test( LCIO::THBIT_BARREL ) <<
endl ;
325 for(
int i=0 ; i< nPrint ; i++ ){
344 cout <<
" collection not of type " << LCIO::TRACKERHITPLANE <<
endl ;
349 <<
"--------------- " <<
"print out of " << LCIO::TRACKERHITPLANE <<
" collection "
350 <<
"--------------- " <<
endl ;
358 cout <<
" LCIO::THBIT_BARREL : " << flag.test( LCIO::THBIT_BARREL ) <<
endl ;
368 for(
int i=0 ; i< nPrint ; i++ ){
385 if( col->
getTypeName() != LCIO::TRACKERHITZCYLINDER ){
387 cout <<
" collection not of type " << LCIO::TRACKERHITZCYLINDER <<
endl ;
392 <<
"--------------- " <<
"print out of " << LCIO::TRACKERHITZCYLINDER <<
" collection "
393 <<
"--------------- " <<
endl ;
401 cout <<
" LCIO::THBIT_BARREL : " << flag.test( LCIO::THBIT_BARREL ) <<
endl ;
411 for(
int i=0 ; i< nPrint ; i++ ){
430 cout <<
" collection not of type " << LCIO::TRACKERRAWDATA <<
endl ;
435 <<
"--------------- " <<
"print out of " << LCIO::TRACKERRAWDATA <<
" collection "
436 <<
"--------------- " <<
endl ;
442 cout <<
" LCIO::TRAWBIT_ID1 : " << flag.test( LCIO::TRAWBIT_ID1 ) <<
endl ;
455 for(
int i=0 ; i< nPrint ; i++ ){
466 cout <<
" collection not of type " << LCIO::TRACKERDATA <<
endl ;
471 <<
"--------------- " <<
"print out of " << LCIO::TRACKERDATA <<
" collection "
472 <<
"--------------- " <<
endl ;
478 cout <<
" LCIO::TRAWBIT_ID1 : " << flag.test( LCIO::TRAWBIT_ID1 ) <<
endl ;
491 for(
int i=0 ; i< nPrint ; i++ ){
502 cout <<
" collection not of type " << LCIO::TRACKERPULSE <<
endl ;
507 <<
"--------------- " <<
"print out of " << LCIO::TRACKERPULSE <<
" collection "
508 <<
"--------------- " <<
endl ;
514 cout <<
" LCIO::TRAWBIT_ID1 : " << flag.test( LCIO::TRAWBIT_ID1 )
515 <<
" LCIO::TRAWBIT_CM : " << flag.test( LCIO::TRAWBIT_CM ) <<
endl ;
528 for(
int i=0 ; i< nPrint ; i++ ){
539 cout <<
" collection not of type " << LCIO::TPCHIT <<
endl ;
544 <<
"--------------- " <<
"print out of " << LCIO::TPCHIT <<
" collection "
545 <<
"--------------- " <<
endl ;
553 cout <<
" -> LCIO::TPCBIT_RAW : " << flag.test( LCIO::TPCBIT_RAW ) <<
endl ;
554 cout <<
" -> LCIO::TPCBIT_NO_PTR : " << flag.test( LCIO::TPCBIT_NO_PTR ) <<
endl ;
560 <<
" [ id ] | cellId0 | time | charge | quality "
561 << endl <<
" -> raw data (bytes) : "
565 for(
int i=0 ; i< nPrint ; i++ ){
574 << ((id0& 0x00ff0000)>>16) <<
"/"
575 << ((id0& 0x0000ff00)>> 8) <<
"/"
576 << ((id0& 0x000000ff)>> 0) <<
" | "
581 if( flag.test( LCIO::TPCBIT_RAW ) ){
586 for(
int j=0;j<nWords;j++){
589 << ((rawData& 0x00ff0000)>>16) <<
", "
590 << ((rawData& 0x0000ff00)>> 8) <<
", "
591 << ((rawData& 0x000000ff)>> 0) ;
600 <<
"-------------------------------------------------------------------------------- "
608 cout <<
" collection not of type " << LCIO::LCSTRVEC <<
endl ;
613 <<
"--------------- " <<
"print out of " << LCIO::LCSTRVEC <<
" collection (user extension) "
614 <<
"--------------- " <<
endl ;
627 <<
" element index: val0, val1, ..."
631 for(
int i=0 ; i< nPrint ; i++ ){
637 for(
unsigned int j=0;j< vec->
size();j++){
642 if( ! ( (j+1) % 10) )
std::cout << endl <<
" " ;
647 <<
"-------------------------------------------------------------------------------- "
656 cout <<
" collection not of type " << LCIO::LCFLOATVEC <<
endl ;
661 <<
"--------------- " <<
"print out of " << LCIO::LCFLOATVEC <<
" collection (user extension) "
662 <<
"--------------- " <<
endl ;
676 for(
int i=0 ; i< nPrint ; i++ ){
687 cout <<
" collection not of type " << LCIO::LCINTVEC <<
endl ;
692 <<
"--------------- " <<
"print out of " << LCIO::LCINTVEC <<
" collection (user extension) "
693 <<
"--------------- " <<
endl ;
706 for(
int i=0 ; i< nPrint ; i++ ){
715 if( col->
getTypeName() != LCIO::SIMCALORIMETERHIT ){
717 cout <<
" collection not of type " << LCIO::SIMCALORIMETERHIT <<
endl ;
722 <<
"--------------- " <<
"print out of " << LCIO::SIMCALORIMETERHIT <<
" collection "
723 <<
"--------------- " <<
endl ;
731 cout <<
" -> LCIO::CHBIT_LONG : " << flag.test( LCIO::CHBIT_LONG ) <<
endl ;
732 cout <<
" LCIO::CHBIT_BARREL : " << flag.test( LCIO::CHBIT_BARREL ) <<
endl ;
733 cout <<
" LCIO::CHBIT_ID1 : " << flag.test( LCIO::CHBIT_ID1 ) <<
endl ;
734 cout <<
" LCIO::CHBIT_STEP : " << flag.test( LCIO::CHBIT_STEP ) <<
endl ;
746 for(
int i=0 ; i< nPrint ; i++ ){
757 cout <<
" collection not of type " << LCIO::CALORIMETERHIT <<
endl ;
762 <<
"--------------- " <<
"print out of " << LCIO::CALORIMETERHIT <<
" collection "
763 <<
"--------------- " <<
endl ;
771 cout <<
" -> LCIO::RCHBIT_LONG : " << flag.test( LCIO::RCHBIT_LONG ) <<
endl ;
772 cout <<
" LCIO::RCHBIT_BARREL : " << flag.test( LCIO::RCHBIT_BARREL ) <<
endl ;
773 cout <<
" LCIO::RCHBIT_ID1 : " << flag.test( LCIO::RCHBIT_ID1 ) <<
endl ;
774 cout <<
" LCIO::RCHBIT_TIME : " << flag.test( LCIO::RCHBIT_TIME ) <<
endl ;
775 cout <<
" LCIO::RCHBIT_NO_PTR : " << flag.test( LCIO::RCHBIT_NO_PTR ) <<
endl ;
776 cout <<
" LCIO::RCHBIT_ENERGY_ERROR : " << flag.test( LCIO::RCHBIT_ENERGY_ERROR ) <<
endl ;
787 for(
int i=0 ; i< nPrint ; i++ ){
796 if( col->
getTypeName() != LCIO::RAWCALORIMETERHIT ){
798 cout <<
" collection not of type " << LCIO::RAWCALORIMETERHIT <<
endl ;
803 <<
"--------------- " <<
"print out of " << LCIO::RAWCALORIMETERHIT <<
" collection "
804 <<
"--------------- " <<
endl ;
813 cout <<
" LCIO::RCHBIT_ID1 : " << flag.test( LCIO::RCHBIT_ID1 ) <<
endl ;
814 cout <<
" LCIO::RCHBIT_TIME : " << flag.test( LCIO::RCHBIT_TIME ) <<
endl ;
815 cout <<
" LCIO::RCHBIT_NO_PTR : " << flag.test( LCIO::RCHBIT_NO_PTR ) <<
endl ;
827 for(
int i=0 ; i< nPrint ; i++ ){
837 cout <<
" collection not of type " << LCIO::CLUSTER <<
endl ;
841 <<
"--------------- " <<
"print out of " << LCIO::CLUSTER <<
" collection "
842 <<
"--------------- " <<
endl ;
850 cout <<
" LCIO::CLBIT_HITS : " << flag.test( LCIO::CLBIT_HITS ) <<
endl ;
859 for(
int i=0 ; i< nPrint ; i++ ){
868 <<
" ------------ detailed PID info: --- " << endl << endl
878 for(
unsigned i=0; i<ids.
size() ; ++i){
880 cout <<
" [id: " << ids[i] <<
"] "
886 for( StringVec::const_iterator it = pNames.
begin() ; it != pNames.
end() ; ++it ){
899 <<
" [cluster ] | PDG | likelihood | type | algoId | parameters : " << endl
904 for(
int i=0 ; i< nPrint ; i++ ){
919 printf(
"| %6d | %6.4e | %6.6d | %8d | [",
929 for(
unsigned j=0;j< pNames.size() ;++j){
931 cout <<
" " << pNames[j]
947 <<
"-------------------------------------------------------------------------------- "
954 cout <<
" collection not of type " << LCIO::VERTEX <<
endl ;
958 <<
"--------------- " <<
"print out of " << LCIO::VERTEX <<
" collection "
959 <<
"--------------- " <<
endl <<
endl;
966 for(
int i=0 ; i< nPrint ; i++ ){
978 if( col->
getTypeName() != LCIO::RECONSTRUCTEDPARTICLE ){
980 cout <<
" collection not of type " << LCIO::RECONSTRUCTEDPARTICLE <<
endl ;
984 <<
"--------------- " <<
"print out of " << LCIO::RECONSTRUCTEDPARTICLE <<
" collection "
985 <<
"--------------- " <<
endl ;
993 int nPrint = nReconstructedParticles >
MAX_HITS ?
MAX_HITS : nReconstructedParticles ;
1000 for(
int i=0 ; i< nPrint ; i++ ){
1009 <<
" ------------ detailed PID info: --- " << endl << endl
1019 for(
unsigned i=0; i<ids.
size() ; ++i){
1021 cout <<
" [id: " << ids[i] <<
"] "
1027 for( StringVec::const_iterator it = pNames.
begin() ; it != pNames.
end() ; ++it ){
1029 cout <<
" " << *it ;
1040 <<
" [particle] | PDG | likelihood | type | algoId | parameters : " << endl
1045 for(
int i=0 ; i< nPrint ; i++ ){
1050 printf(
" [%8.8x] " , recP1->
id() ) ;
1060 printf(
"| %6d | %6.4e | %6.6d | %8d | [",
1070 for(
unsigned j=0;j< pNames.size() ;++j){
1072 cout <<
" " << pNames[j]
1090 <<
"-------------------------------------------------------------------------------- "
1097 if( col->
getTypeName() != LCIO::LCGENERICOBJECT ){
1099 cout <<
" collection not of type " << LCIO::LCGENERICOBJECT
1106 <<
"--------------- " <<
"print out of " << LCIO::LCGENERICOBJECT <<
" collection "
1107 <<
"--------------- " <<
endl ;
1124 for(
int i=0 ; i< nPrint ; i++ ){
1137 cout <<
" collection not of type " << LCIO::MCPARTICLE <<
endl ;
1142 <<
"--------------- " <<
"print out of " << LCIO::MCPARTICLE <<
" collection "
1143 <<
"--------------- " <<
endl ;
1157 PointerToIndexMap p2i_map ;
1175 for(
int k=0; k<nParticles; k++){
1177 p2i_map[ part ] = k ;
1183 <<
"[ id ]index| PDG | px, py, pz | px_ep, py_ep , pz_ep | energy |gen|[simstat ]| vertex x, y , z | endpoint x, y , z | mass | charge | spin | colorflow | [parents] - [daughters]"
1188 for(
int index = 0 ; index < nParticles ; index++){
1195 printf(
"% 1.2e,% 1.2e,% 1.2e|" ,
1199 printf(
"% 1.2e,% 1.2e,% 1.2e|" ,
1206 printf(
"%s|" , getSimulatorStatusString( part ).c_str() );
1207 printf(
"% 1.2e,% 1.2e,% 1.2e|" ,
1211 printf(
"% 1.2e,% 1.2e,% 1.2e|" ,
1218 printf(
"% 1.2e,% 1.2e,% 1.2e|" ,
1230 if(k>0) cout <<
"," ;
1235 if(k>0) cout <<
"," ;
1238 cout <<
"] " <<
endl ;
1242 <<
"-------------------------------------------------------------------------------- "
1249 cout <<
" collection not of type " << LCIO::LCRELATION <<
endl ;
1254 <<
"--------------- " <<
"print out of " << LCIO::LCRELATION <<
" collection "
1255 <<
"--------------- " <<
endl ;
1272 for(
int i=0; i< nRel; i++ ){
1281 int LCTOOLS::printDaughterParticles(
const MCParticle* part,
int index){
1283 int motherIndex = index - 1 ;
1289 cout << index++ <<
" [" << motherIndex <<
"] "
1304 cout <<
" not set ) | " ;
1311 index = printDaughterParticles( part->
getDaughters()[i] , index ) ;
1321 for(
int i=0; i< nIntParameters ; i++ ){
1324 int nInt = intVec.
size() ;
1325 cout <<
" parameter " << intKeys[i] <<
" [int]: " ;
1330 for(
int j=0; j< nInt ; j++ ){
1331 cout << intVec[j] <<
", " ;
1337 for(
int i=0; i< nFloatParameters ; i++ ){
1340 int nFloat = floatVec.
size() ;
1341 cout <<
" parameter " << floatKeys[i] <<
" [float]: " ;
1345 for(
int j=0; j< nFloat ; j++ ){
1346 cout << floatVec[j] <<
", " ;
1352 for(
int i=0; i< nDoubleParameters ; i++ ){
1355 int nDouble = doubleVec.
size() ;
1356 cout <<
" parameter " << doubleKeys[i] <<
" [double]: " ;
1360 for(
int j=0; j< nDouble ; j++ ){
1361 cout << doubleVec[j] <<
", " ;
1367 for(
int i=0; i< nStringParameters ; i++ ){
1370 int nString = stringVec.
size() ;
1371 cout <<
" parameter " << stringKeys[i] <<
" [string]: " ;
1375 for(
int j=0; j< nString ; j++ ){
1376 cout << stringVec[j] <<
", " ;
1388 printParameters( const_cast<EVENT::LCRunHeader*>(run)->parameters() ) ;
1390 cout <<
" --------------------------------------------------------------- " <<
endl ;
1401 str <<
"simulator status bits: [sbvtcls] "
1402 <<
" s: created in simulation"
1403 <<
" b: backscatter"
1404 <<
" v: vertex is not endpoint of parent"
1405 <<
" t: decayed in tracker"
1406 <<
" c: decayed in calorimeter"
1407 <<
" l: has left detector"
1464 str <<
" quality bits: [os......] "
1465 <<
" o: hit from overlay"
1466 <<
" s: hit from secondary not from the MCParticle associated to it"
virtual DoubleVec & getDoubleVals(const std::string &key, DoubleVec &values) const =0
Adds all double values for the given key to values.
virtual const ParticleIDVec & getParticleIDs() const =0
The particle Id's sorted by their likelihood.
const std::string & header(const EVENT::Vertex *)
operator for detailed output of a vertex object (e.g.
A generic tracker hit to be used by pattern recognition.
virtual const MCParticleVec & getParents() const =0
Returns the parents of this particle.
virtual int getNRawDataWords() const =0
Return the number of raw data (32-bit) words stored for the hit.
The generic simulated calorimeter hit.
virtual const StringVec & getIntKeys(StringVec &keys) const =0
Returns a list of all keys of integer parameters.
virtual int getType() const =0
Type - userdefined.
The Vertex class for LCIO.
virtual const StringVec & getStringKeys(StringVec &keys) const =0
Returns a list of all keys of string parameters.
virtual const LCParameters & getParameters() const =0
Parameters defined for this event.
Exception for unknown algorithms.
virtual int id() const =0
Returns an object id for internal (debugging) use in LCIO.
virtual double getWeight() const =0
Returns the event weight.
virtual const double * getMomentumAtEndpoint() const =0
Returns the particle's 3-momentum at the endpoint in [GeV] Only float used in files.
virtual int getRawDataWord(int i) const =0
Return the raw data (32-bit) word at i.
virtual float getCharge() const =0
Returns the integrated charge of the hit.
lcio_short< T > lcshort(const T *t, const EVENT::LCCollection *b=NULL)
virtual bool isCreatedInSimulation() const =0
True if the particle has been created by the simulation program (rather than the generator).
virtual int getQuality() const =0
Returns a quality flag for the hit.
virtual bool isDecayedInCalorimeter() const =0
True if the particle decayed or interacted (non-continuous interaction, particle terminated) in non-t...
Convenient class for setting and retrieving particle id information attached to ReconstructedParticle...
A tracker hit on a planar surface - the hit is stored as: x,y,z, u(theta, phi), v(theta,phi), du, dv where (x,y,z) is the position in global cartesian coordinates, u,v are the the meassurement directions (unit vectors, spanning the plane) and du,dv are the measurement errors along these directions.
A generic simulated tracker hit.
virtual const float * getSpin() const =0
Returns the spin (helicity) vector of the particle.
virtual float getTime() const =0
Returns the time of the hit.
const EVENT::StringVec & getParameterNames(int algorithmID)
The names of parameters for the algorithm with algorithmID - throws UnknownAlgoritm.
virtual int getPDG() const =0
Returns the PDG code of the particle.
virtual const FloatVec & getParameters() const =0
Parameters associated with this hypothesis.
virtual int getRunNumber() const =0
Return the run number off this event.
virtual const std::vector< std::string > * getCollectionNames() const =0
Returns the names of the collections in the event.
virtual float getLikelihood() const =0
The likelihood of this hypothesis - in a user defined normalization.
Convenient helper class for setting single bits in a 32bit-field, such as collection flags or hit typ...
virtual bool isProducedBySecondary() const =0
True if the particle has been created by a secondary particle that is not stored in the MCParticle co...
TrackerData contains the corrected (calibrated) raw tracker data.
virtual bool isStopped() const =0
True if the particle lost all kinetic energy inside the world volume and did not decay.
virtual const int * getColorFlow() const =0
Returns the color flow as defined by the generator.
virtual double getMass() const =0
Returns the mass of the particle in [GeV] - only float used in files.
virtual const StringVec & getDoubleKeys(StringVec &keys) const =0
Returns a list of all keys of double parameters.
virtual bool hasLeftDetector() const =0
True if the particle left the world volume undecayed.
virtual bool isBackscatter() const =0
True if the particle was created by the simulator as a result of an interaction or decay in non-track...
std::vector< std::string > LCStrVec
Header file for the f77-wrapper functions for stl vectors.
const std::string & getAlgorithmName(int algoID)
Return the name of the algorithm with id - throws UnknownAlgorithm.
virtual long64 getTimeStamp() const =0
Returns the time stamp of the event.
virtual LCObject * getElementAt(int index) const =0
Returns pointer to element at index - no range check, use getNumberOfEntries().
Helper class that allows to convert time stamps as defined in LCEvent::getTimeStamp() ( ns since 1...
virtual int getFlag() const =0
Returns flag word for collection.
virtual double getEnergy() const =0
Returns the energy of the particle (at the vertex) in [GeV] computed from the particle's momentum and...
Tracker pulses as computed from TrackerData objects or as directly measured by a specific subdetector...
virtual bool isDecayedInTracker() const =0
True if the particle decayed or interacted in a tracking region.
const EVENT::IntVec & getAlgorithmIDs()
Return the IDs of all known Algorithms.
virtual int getGeneratorStatus() const =0
Returns the status for particles as defined by the generator, typically 0 empty line 1 undecayed ...
virtual LCCollection * getCollection(const std::string &name) const =0
Returns the collection for the given name.
virtual const double * getVertex() const =0
Returns the production vertex of the particle in [mm].
Simple interface to store generic named parameters of type int, float and string. ...
virtual int getSimulatorStatus() const =0
Returns the status for particles from the simulation, e.g.
static const int MAX_HITS
Convenient class for decoding cellIDs from collection parameter LCIO::CellIDEncoding.
virtual const ParticleIDVec & getParticleIDs() const =0
The particle Id's sorted by their likelihood.
Int vector used for user extensions.
Float vector used for user extensions.
virtual const std::string & getTypeName() const =0
Returns the type name of the collection - valid names are defined in LCIO.
Simple interface to store generic user data.
virtual const std::string & getDetectorName() const =0
Returns the name of the detector setup used in the simulation.
The LCIO reconstructedParticle.
The LCIO Monte Carlo particle.
virtual int getQuality() const =0
The quality bit flag of the hit.
virtual int getNumberOfElements() const =0
Returns the number of elements in the collection.
Persistent interface for LCIO ParticleIDs.
virtual const StringVec & getFloatKeys(StringVec &keys) const =0
Returns a list of all keys of float parameters.
A single weighted relationship between two LCObjects.
const std::string & tail(const EVENT::Vertex *)
virtual float getCharge() const =0
Returns the particle's charge.
virtual StringVec & getStringVals(const std::string &key, StringVec &values) const =0
Adds all string values for the given key to values.
The generic calorimeter hit for real data (or simulation thereof).
The main event interface.
Generic class for raw tracker data.
The generic collection used in LCIO.
A tracker hit on a cylindrical surface that runs parallel to the z-axis - the hit is stored as: x...
virtual int getAlgorithmType() const =0
Type of the algorithm/module that created this hypothesis - NOTE: must be unique within one collectio...
virtual int getEventNumber() const =0
Returns this event's number .
virtual IntVec & getIntVals(const std::string &key, IntVec &values) const =0
Adds all integer values for the given key to values.
virtual const double * getEndpoint() const =0
Returns the endpoint of the particle in [mm] if the endpoint has been set explicetly.
virtual const std::string & getStringVal(const std::string &key) const =0
Returns the first string value for the given key.
virtual const LCParameters & getParameters() const =0
Parameters defined for this collection.
void dumpEvent(EVENT::LCEvent *event)
virtual const double * getMomentum() const =0
Returns the particle's 3-momentum at the production vertex in [GeV].
virtual bool isOverlay() const =0
True if the particle has been overlayed by the simulation (or digitization) program.
virtual const MCParticleVec & getDaughters() const =0
Returns the daughters of this particle.
The generic calorimeter hit - created from SimCalorimeterHit or RawCalorimeterHit.
virtual bool vertexIsNotEndpointOfParent() const =0
True if the particle was created as a result of a continuous process where the parent particle contin...
virtual int getCellID() const =0
Returns the detector specific cell id.
virtual FloatVec & getFloatVals(const std::string &key, FloatVec &values) const =0
Adds all float values for the given key to values.
virtual bool isOverlay() const =0
True if the hit has been overlayed by the simulation (or digitization) program.
String vector used for user extensions.
virtual int getPDG() const =0
The PDG code of this id - UnknownPDG ( 999999 ) if unknown.