00001
00002
00003
00004 #ifndef HEP_MC_PARTICLE_TREE_H
00005 # define HEP_MC_PARTICLE_TREE_H
00006
00007
00008
00009 # include <vector>
00010
00011
00012
00013
00014
00015 class SimTrack;
00016 class SoSeparator;
00017
00018 namespace HepMC
00019 {
00020 class GenParticle;
00021 }
00022
00023
00024
00025
00026
00027 class HepMCParticleTree
00028 {
00029 public:
00030
00031 HepMCParticleTree (void) {};
00032 HepMCParticleTree (std::vector<HepMC::GenParticle *> particles);
00033 HepMCParticleTree (HepMC::GenParticle *particle);
00034 ~HepMCParticleTree (void);
00035
00036
00037
00038
00039 void makeSeparatorTree (SoSeparator *separator, const float mx, const float my, const float mz);
00040
00041 private:
00042 HepMC::GenParticle *m_particle;
00043 std::vector<HepMCParticleTree *> m_daughters;
00044
00045 float recursiveMakeSeparatorTree (SoSeparator *separator, float x, float *nextY, float z);
00046 };
00047
00048
00049
00050
00051 #endif // VIS_TRACKER_RECO_VIS_SIM_TRACKS_TREE_H