17 #include <TTimeStamp.h>
19 #include <RAT/DS/MCNestedTube.hh>
20 #include <RAT/DS/MCPMT.hh>
21 #include <RAT/DS/MCParticle.hh>
22 #include <RAT/DS/MCSummary.hh>
23 #include <RAT/DS/MCTrack.hh>
30 class MC :
public TObject {
50 virtual int GetID()
const {
return id; }
51 virtual void SetID(
int _id) {
id = _id; }
54 virtual TTimeStamp
GetUTC()
const {
return utc; }
55 virtual void SetUTC(
const TTimeStamp &_utc) { utc = _utc; }
59 virtual int GetMCParticleCount()
const {
return particle.size(); }
61 particle.resize(particle.size() + 1);
62 return &particle.back();
64 virtual void PruneMCParticle() { particle.resize(0); }
68 virtual int GetMCParentCount()
const {
return parent.size(); }
70 parent.resize(parent.size() + 1);
71 return &parent.back();
73 virtual void PruneMCParent() { parent.resize(0); }
86 virtual int GetMCTrackCount()
const {
return track.size(); }
87 virtual MCTrack *AddNewMCTrack() {
88 track.resize(track.size() + 1);
91 virtual void PruneMCTrack() { track.resize(0); };
92 virtual void PruneMCTrack(
const std::string &particleName) {
93 ParticleNameEqualityFunctor pnef(particleName);
94 track.erase(std::remove_if(track.begin(), track.end(), pnef), track.end());
99 virtual int GetMCPMTCount()
const {
return pmt.size(); }
100 virtual MCPMT *AddNewMCPMT() {
101 pmt.resize(pmt.size() + 1);
104 virtual void PrunePMT() { pmt.resize(0); }
108 virtual int GetMCNestedTubeCount()
const {
return nt.size(); }
110 nt.resize(nt.size() + 1);
113 virtual void PruneNestedTube() { nt.resize(0); }
117 virtual void SetNumPE(
int _numPE) { numPE = _numPE; }
121 virtual void SetNumDark(
int _numDarkHits) { numDarkHits = _numDarkHits; }
125 if (summary.empty()) {
130 virtual bool ExistMCSummary()
const {
return !summary.empty(); }
131 virtual void PruneMCSummary() { summary.resize(0); }
140 std::vector<MCSummary> summary;
141 std::vector<MCParticle> particle;
142 std::vector<MCParticle> parent;
143 std::vector<MCTrack> track;
144 std::vector<MCPMT> pmt;
145 std::vector<MCNestedTube> nt;
Definition: MCNestedTube.hh:20
Definition: MCParticle.hh:22
Definition: MCSummary.hh:25
Definition: MCTrack.hh:22
virtual const std::string & GetParticleName() const
Definition: MCTrack.hh:54
virtual int GetNumDark() const
Definition: MC.hh:120
virtual MCTrack * GetMCTrack(int i)
Definition: MC.hh:85
virtual MCParticle * GetMCParent(Int_t i)
Definition: MC.hh:67
virtual int GetNumPE() const
Definition: MC.hh:116
virtual TTimeStamp GetUTC() const
Definition: MC.hh:54
virtual MCNestedTube * GetMCNestedTube(int i)
Definition: MC.hh:107
virtual MCParticle * GetMCParticle(Int_t i)
Definition: MC.hh:58
virtual MCSummary * GetMCSummary()
Definition: MC.hh:124
virtual int GetID() const
Definition: MC.hh:50
virtual MCPMT * GetMCPMT(int i)
Definition: MC.hh:98
Definition: CCCrossSecMessenger.hh:29