13#ifndef BesSensitiveManager_hh
14#define BesSensitiveManager_hh
17#include "G4TrackingManager.hh"
19#include "HepMC/GenEvent.h"
44 savedByDefault(
false),
46 BesTStats(
const G4int index,
const CLHEP::HepLorentzVector theP4, G4double theTime )
52 savedByDefault(
false),
60 CLHEP::HepLorentzVector p4;
69 std::vector<int> vertices;
79 G4Exception(
"BesSensitiveManager constructed twice.");
103 G4int
CheckType(
const HepMC::GenEvent* hepmcevt);
111 G4bool
MatchVertex(G4int vIndex, std::vector<int>* vDau);
116 void EndOfTrack(
const G4Track *track , G4TrackingManager* );
130 std::vector<BesSensitiveDetector*>::iterator
iter;
131 std::vector<BesSensitiveDetector*>::iterator
iter_end;
HepMC::GenEvent * m_hepmcevt
void EndOfTruthEvent(const G4Event *)
BesTStats FollowTrack(const G4Track *track)
void UpdatePrimaryTrack(const G4Track *)
G4int GetNumberTracks() const
std::vector< BesTruthVertex * > * GetVertexList()
std::vector< BesTruthTrack * > * m_trackList
void SetVertex0(const G4Event *)
G4bool MatchDaughterTrack(const G4Track *)
std::vector< BesTruthVertex * > * m_vertexList
G4int GetCurrentTrackIndex() const
void SetLogLevel(G4int level)
void MakeNewTrack(BesTStats &stat, const G4Track *track)
void BeginOfTrack(const G4Track *track)
G4int GetNumberVertices() const
void AddSensitiveDetector(BesSensitiveDetector *detector)
void UpdateVertex(BesTStats, const G4Track *)
std::vector< BesSensitiveDetector * > clients
std::vector< BesTruthTrack * > * GetTrackList()
void EndOfTrack(const G4Track *track, G4TrackingManager *)
void BeginOfTruthEvent(const G4Event *)
static BesSensitiveManager * m_sensitiveManager
G4bool MatchVertex(G4int vIndex, std::vector< int > *vDau)
void GetDaughterVertexes(BesTruthTrack *pTrack, std::vector< int > *vDau)
std::vector< BesSensitiveDetector * >::iterator iter_end
static BesSensitiveManager * GetSensitiveManager()
G4bool CheckDecayTrack(const G4Track *)
void SaveParticlesFromGenerator()
std::vector< BesTStats > chain
G4int CheckType(const HepMC::GenEvent *hepmcevt)
std::vector< BesSensitiveDetector * >::iterator iter
bool operator==(const BesTStats &other) const
BesTStats(const G4int index, const CLHEP::HepLorentzVector theP4, G4double theTime)