LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
AuxDetSimChannel.h
Go to the documentation of this file.
1 
10 #ifndef SIM_AUXDETSIMCHANNEL_H
11 #define SIM_AUXDETSIMCHANNEL_H
12 
13 // C/C++ standard libraries
14 #include <stdint.h> // C header (need to be compatible with Reflex)
15 #include <vector>
16 
17 // LArSoft libraries
19 
20 
21 namespace sim {
22 
30  class AuxDetIDE {
31 
32  public:
33  AuxDetIDE();
34 
35  //constructor for IDEs applying G4 offset...
36  AuxDetIDE(AuxDetIDE const&, int);
37 
38  int trackID;
40  float entryX;
41  float entryY;
42  float entryZ;
43  float entryT;
44  float exitX;
45  float exitY;
46  float exitZ;
47  float exitT;
48  float exitMomentumX;
49  float exitMomentumY;
50  float exitMomentumZ;
51 
52  bool operator< (const AuxDetIDE& other) const;
53  bool operator== (const AuxDetIDE& other) const;
54 
55 }; // class AuxDetIDE
56 
64 
65  public:
68 
69  private:
70  uint32_t fAuxDetID;
71  uint32_t fAuxDetSensitiveID;
72  std::vector<sim::AuxDetIDE> fAuxDetIDEs;
73 
74  public:
75 
76  AuxDetSimChannel(uint32_t inputAuxDetID,
77  uint32_t inputAuxDetSensitiveID);
78 
80  AuxDetSimChannel(uint32_t inputAuxDetID,
81  const std::vector<sim::AuxDetIDE>& inputAuxDetIDEs,
82  uint32_t inputAuxDetSensitiveID=0);
83 
85  AuxDetSimChannel(uint32_t inputAuxDetID,
86  std::vector<sim::AuxDetIDE>&& inputAuxDetIDEs,
87  uint32_t inputAuxDetSensitiveID=0);
88 
89  std::pair<int,int> MergeAuxDetSimChannel(const AuxDetSimChannel&,
90  int);
91 
94  uint32_t AuxDetID() const;
95  uint32_t AuxDetSensitiveID() const;
96 
97  bool operator< (const AuxDetSimChannel& other) const;
98  bool operator== (const AuxDetSimChannel& other) const;
99 
100  std::vector<sim::AuxDetIDE> const& AuxDetIDEs() const;
102 
103  //typedef std::vector<AuxDetSimChannel> AuxDetSimChannelCollection;
104 
105 
106  }; // class AuxDetSimChannel
107  typedef std::vector<AuxDetSimChannel> AuxDetSimChannelCollection;
108 } // namespace sim
109 
110 
111 inline bool sim::AuxDetIDE::operator< (const AuxDetIDE& other) const { return trackID < other.trackID; }
112 inline bool sim::AuxDetIDE::operator== (const AuxDetIDE& other) const { return other.trackID == trackID; }
113 inline uint32_t sim::AuxDetSimChannel::AuxDetID() const { return fAuxDetID; }
114 inline uint32_t sim::AuxDetSimChannel::AuxDetSensitiveID() const { return fAuxDetSensitiveID; }
115 inline std::vector<sim::AuxDetIDE> const& sim::AuxDetSimChannel::AuxDetIDEs() const { return fAuxDetIDEs; }
116 
117 #endif // SIM_AUXDETSIMCHANNEL_H
118 
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
std::vector< sim::AuxDetIDE > fAuxDetIDEs
one sim::AuxDetIDE for each G4 track id
int trackID
Geant4 supplied track ID.
float exitMomentumZ
Exit Z-Momentum of particle.
bool operator<(const AuxDetIDE &other) const
float exitY
Exit position Y of particle.
Collection of particles crossing one auxiliary detector cell.
uint32_t AuxDetID() const
float entryT
Entry time of particle.
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
float exitMomentumX
Exit X-Momentum of particle.
float exitT
Exit time of particle.
std::vector< sim::AuxDetIDE > const & AuxDetIDEs() const
float exitZ
Exit position Z of particle.
Monte Carlo Simulation.
Definition of data types for geometry description.
float entryZ
Entry position Z of particle.
float exitX
Exit position X of particle.
float energyDeposited
total energy deposited for this track ID and time
float entryX
Entry position X of particle.
float entryY
Entry position Y of particle.
uint32_t AuxDetSensitiveID() const
MC truth information to make RawDigits and do back tracking.
std::vector< AuxDetSimChannel > AuxDetSimChannelCollection
float exitMomentumY
Exit Y-Momentum of particle.
bool operator==(const AuxDetIDE &other) const