LArSoft  v10_06_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  bool);
44 
45  void MergeAuxDetSimChannels(std::vector<sim::AuxDetSimChannel>&,
46  const std::vector<sim::AuxDetSimChannel>&,
47  size_t);
48 
49  void MergeSimPhotons(std::vector<sim::SimPhotons>&, const std::vector<sim::SimPhotons>&);
50 
51  void MergeSimPhotonsLite(std::vector<sim::SimPhotonsLite>&,
52  const std::vector<sim::SimPhotonsLite>&);
53 
54  void MergeSimEnergyDeposits(std::vector<sim::SimEnergyDeposit>&,
55  const std::vector<sim::SimEnergyDeposit>&,
56  size_t) const;
57 
58  void MergeAuxDetHits(std::vector<sim::AuxDetHit>&,
59  const std::vector<sim::AuxDetHit>&,
60  size_t) const;
61 
62  void MergeParticleAncestryMaps(std::vector<sim::ParticleAncestryMap>&,
64  size_t) const;
65 
66  const std::vector<std::vector<size_t>>& GetMCParticleListMap() { return fMCParticleListMap; }
67 
68  private:
69  std::vector<int> fG4TrackIDOffsets;
70  std::vector<std::pair<int, int>> fG4TrackIDRanges;
71 
72  std::vector<std::vector<size_t>> fMCParticleListMap;
73 
74  void UpdateG4TrackIDRange(std::pair<int, int>, size_t);
75 
77 
79 
82  int);
83 
84  }; //end MergeSimSourcesUtility class
85 
86 } //end namespace sim
87 
88 #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 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
void MergeSimChannels(std::vector< sim::SimChannel > &, const std::vector< sim::SimChannel > &, size_t, bool)
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