LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
MergeSimSources.h
Go to the documentation of this file.
1 #ifndef MERGESIMSOURCES_H
2 #define MERGESIMSOURCES_H
3 
16 
23 
24 #include <utility> // std::pair<>
25 #include <vector>
26 
27 namespace sim {
28 
30 
31  public:
32  MergeSimSourcesUtility(std::vector<int> const&);
33 
34  void Reset();
35 
36  void MergeMCParticles(std::vector<simb::MCParticle>&,
37  const std::vector<simb::MCParticle>&,
38  size_t);
39 
40  void MergeSimChannels(std::vector<sim::SimChannel>&,
41  const std::vector<sim::SimChannel>&,
42  size_t);
43 
44  void MergeAuxDetSimChannels(std::vector<sim::AuxDetSimChannel>&,
45  const std::vector<sim::AuxDetSimChannel>&,
46  size_t);
47 
48  void MergeSimPhotons(std::vector<sim::SimPhotons>&, const std::vector<sim::SimPhotons>&);
49 
50  void MergeSimPhotonsLite(std::vector<sim::SimPhotonsLite>&,
51  const std::vector<sim::SimPhotonsLite>&);
52 
53  void MergeSimEnergyDeposits(std::vector<sim::SimEnergyDeposit>&,
54  const std::vector<sim::SimEnergyDeposit>&,
55  size_t) const;
56 
57  void MergeAuxDetHits(std::vector<sim::AuxDetHit>&,
58  const std::vector<sim::AuxDetHit>&,
59  size_t) const;
60 
61  void MergeParticleAncestryMaps(std::vector<sim::ParticleAncestryMap>&,
63  size_t) const;
64 
65  const std::vector<std::vector<size_t>>& GetMCParticleListMap() { return fMCParticleListMap; }
66 
67  private:
68  std::vector<int> fG4TrackIDOffsets;
69  std::vector<std::pair<int, int>> fG4TrackIDRanges;
70 
71  std::vector<std::vector<size_t>> fMCParticleListMap;
72 
73  void UpdateG4TrackIDRange(std::pair<int, int>, size_t);
74 
76 
78 
81  int);
82 
83  }; //end MergeSimSourcesUtility class
84 
85 } //end namespace sim
86 
87 #endif
const std::vector< std::vector< size_t > > & GetMCParticleListMap()
void MergeSimPhotonsLite(std::vector< sim::SimPhotonsLite > &, const std::vector< sim::SimPhotonsLite > &)
std::vector< std::pair< int, int > > fG4TrackIDRanges
void MergeSimChannels(std::vector< sim::SimChannel > &, const std::vector< sim::SimChannel > &, size_t)
void UpdateG4TrackIDRange(std::pair< int, int >, size_t)
static sim::ParticleAncestryMap offsetParticleAncestryMapTrackID(sim::ParticleAncestryMap const &, int)
MergeSimSourcesUtility(std::vector< int > const &)
void MergeSimPhotons(std::vector< sim::SimPhotons > &, const std::vector< sim::SimPhotons > &)
static sim::SimEnergyDeposit offsetSimEnergyDepositTrackID(sim::SimEnergyDeposit const &, int)
Particle class.
void MergeAuxDetSimChannels(std::vector< sim::AuxDetSimChannel > &, const std::vector< sim::AuxDetSimChannel > &, size_t)
void MergeAuxDetHits(std::vector< sim::AuxDetHit > &, const std::vector< sim::AuxDetHit > &, size_t) const
Simulation objects for optical detectors.
object containing MC truth information necessary for making RawDigits and doing back tracking ...
std::vector< int > fG4TrackIDOffsets
Monte Carlo Simulation.
void MergeParticleAncestryMaps(std::vector< sim::ParticleAncestryMap > &, const sim::ParticleAncestryMap &, size_t) const
void MergeMCParticles(std::vector< simb::MCParticle > &, const std::vector< simb::MCParticle > &, size_t)
contains information for a single step in the detector simulation
static sim::AuxDetHit offsetAuxDetHitTrackID(sim::AuxDetHit const &, int)
Energy deposition in the active material.
object containing MC truth information necessary for making RawDigits and doing back tracking ...
void MergeSimEnergyDeposits(std::vector< sim::SimEnergyDeposit > &, const std::vector< sim::SimEnergyDeposit > &, size_t) const
std::vector< std::vector< size_t > > fMCParticleListMap