LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
sim::AuxDetSimChannel Class Reference

Collection of particles crossing one auxiliary detector cell. More...

#include "AuxDetSimChannel.h"

Public Member Functions

 AuxDetSimChannel ()
 Default constructor (invalid, empty data) More...
 
 AuxDetSimChannel (uint32_t inputAuxDetID, uint32_t inputAuxDetSensitiveID)
 
 AuxDetSimChannel (uint32_t inputAuxDetID, const std::vector< sim::AuxDetIDE > &inputAuxDetIDEs, uint32_t inputAuxDetSensitiveID=0)
 Constructor: copies from the specified IDE vector. More...
 
 AuxDetSimChannel (uint32_t inputAuxDetID, std::vector< sim::AuxDetIDE > &&inputAuxDetIDEs, uint32_t inputAuxDetSensitiveID=0)
 Constructor: moves data from the specified IDE vector. More...
 
std::pair< int, int > MergeAuxDetSimChannel (const AuxDetSimChannel &, int)
 
Getters
uint32_t AuxDetID () const
 
uint32_t AuxDetSensitiveID () const
 
bool operator< (const AuxDetSimChannel &other) const
 
bool operator== (const AuxDetSimChannel &other) const
 
std::vector< sim::AuxDetIDE > const & AuxDetIDEs () const
 

Private Attributes

uint32_t fAuxDetID
 geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec More...
 
uint32_t fAuxDetSensitiveID
 integer used to retrieve AuxDetSensitiveGeo object More...
 
std::vector< sim::AuxDetIDEfAuxDetIDEs
 one sim::AuxDetIDE for each G4 track id More...
 

Detailed Description

Collection of particles crossing one auxiliary detector cell.

This structure collects information (as sim::AuxDetIDE) from all the MC particles crossing a single auxiliary detector cell (channel).

Definition at line 60 of file AuxDetSimChannel.h.

Constructor & Destructor Documentation

sim::AuxDetSimChannel::AuxDetSimChannel ( )

Default constructor (invalid, empty data)

Definition at line 58 of file AuxDetSimChannel.cxx.

59  : fAuxDetID(std::numeric_limits<uint32_t>::max())
60  , fAuxDetSensitiveID(std::numeric_limits<uint32_t>::max())
61  {}
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
sim::AuxDetSimChannel::AuxDetSimChannel ( uint32_t  inputAuxDetID,
uint32_t  inputAuxDetSensitiveID 
)

Definition at line 64 of file AuxDetSimChannel.cxx.

65  : fAuxDetID(inputAuxDetID), fAuxDetSensitiveID(inputAuxDetSensitiveID)
66  {}
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
sim::AuxDetSimChannel::AuxDetSimChannel ( uint32_t  inputAuxDetID,
const std::vector< sim::AuxDetIDE > &  inputAuxDetIDEs,
uint32_t  inputAuxDetSensitiveID = 0 
)

Constructor: copies from the specified IDE vector.

Definition at line 69 of file AuxDetSimChannel.cxx.

72  : fAuxDetID(inputAuxDetID)
73  , fAuxDetSensitiveID(inputAuxDetSensitiveID)
74  , fAuxDetIDEs(inputAuxDetIDEs)
75  {}
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
std::vector< sim::AuxDetIDE > fAuxDetIDEs
one sim::AuxDetIDE for each G4 track id
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
sim::AuxDetSimChannel::AuxDetSimChannel ( uint32_t  inputAuxDetID,
std::vector< sim::AuxDetIDE > &&  inputAuxDetIDEs,
uint32_t  inputAuxDetSensitiveID = 0 
)

Constructor: moves data from the specified IDE vector.

Definition at line 78 of file AuxDetSimChannel.cxx.

81  : fAuxDetID(inputAuxDetID)
82  , fAuxDetSensitiveID(inputAuxDetSensitiveID)
83  , fAuxDetIDEs(inputAuxDetIDEs)
84  {}
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
std::vector< sim::AuxDetIDE > fAuxDetIDEs
one sim::AuxDetIDE for each G4 track id
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec

Member Function Documentation

uint32_t sim::AuxDetSimChannel::AuxDetID ( ) const
inline

Definition at line 111 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel(), operator<(), and operator==().

112 {
113  return fAuxDetID;
114 }
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
std::vector< sim::AuxDetIDE > const & sim::AuxDetSimChannel::AuxDetIDEs ( ) const
inline

Definition at line 119 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel().

120 {
121  return fAuxDetIDEs;
122 }
std::vector< sim::AuxDetIDE > fAuxDetIDEs
one sim::AuxDetIDE for each G4 track id
uint32_t sim::AuxDetSimChannel::AuxDetSensitiveID ( ) const
inline

Definition at line 115 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel(), operator<(), and operator==().

116 {
117  return fAuxDetSensitiveID;
118 }
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
std::pair< int, int > sim::AuxDetSimChannel::MergeAuxDetSimChannel ( const AuxDetSimChannel chan,
int  offset 
)

Definition at line 87 of file AuxDetSimChannel.cxx.

References util::abs(), AuxDetID(), AuxDetIDEs(), AuxDetSensitiveID(), fAuxDetID, fAuxDetIDEs, and fAuxDetSensitiveID.

89  {
90  if (this->fAuxDetID != chan.AuxDetID() && this->fAuxDetSensitiveID != chan.AuxDetSensitiveID())
91  throw std::runtime_error("ERROR AuxDetSimChannel Merge: Trying to merge different channels!");
92 
93  std::pair<int, int> range_trackID(std::numeric_limits<int>::max(),
94  std::numeric_limits<int>::min());
95 
96  for (auto const& ide : AuxDetIDEs()) {
97  this->fAuxDetIDEs.emplace_back(ide, offset);
98 
99  auto tid = std::abs(ide.trackID) + offset;
100 
101  if (tid < range_trackID.first) range_trackID.first = tid;
102  if (tid > range_trackID.second) range_trackID.second = tid;
103  }
104 
105  return range_trackID;
106  }
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
std::vector< sim::AuxDetIDE > fAuxDetIDEs
one sim::AuxDetIDE for each G4 track id
constexpr auto abs(T v)
Returns the absolute value of the argument.
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
std::vector< sim::AuxDetIDE > const & AuxDetIDEs() const
bool sim::AuxDetSimChannel::operator< ( const AuxDetSimChannel other) const

Definition at line 109 of file AuxDetSimChannel.cxx.

References AuxDetID(), AuxDetSensitiveID(), fAuxDetID, and fAuxDetSensitiveID.

110  {
111  if (fAuxDetID < other.AuxDetID()) return true;
112 
113  return fAuxDetSensitiveID < other.AuxDetSensitiveID();
114  }
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec
bool sim::AuxDetSimChannel::operator== ( const AuxDetSimChannel other) const

Definition at line 117 of file AuxDetSimChannel.cxx.

References AuxDetID(), AuxDetSensitiveID(), fAuxDetID, and fAuxDetSensitiveID.

118  {
119  return (fAuxDetID == other.AuxDetID() && fAuxDetSensitiveID == other.AuxDetSensitiveID());
120  }
uint32_t fAuxDetSensitiveID
integer used to retrieve AuxDetSensitiveGeo object
uint32_t fAuxDetID
geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec

Member Data Documentation

uint32_t sim::AuxDetSimChannel::fAuxDetID
private

geo->AuxDet(auxDetID), integer used to retrieve AuxDetGeo objec

Definition at line 67 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel(), operator<(), and operator==().

std::vector<sim::AuxDetIDE> sim::AuxDetSimChannel::fAuxDetIDEs
private

one sim::AuxDetIDE for each G4 track id

Definition at line 69 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel().

uint32_t sim::AuxDetSimChannel::fAuxDetSensitiveID
private

integer used to retrieve AuxDetSensitiveGeo object

Definition at line 68 of file AuxDetSimChannel.h.

Referenced by MergeAuxDetSimChannel(), operator<(), and operator==().


The documentation for this class was generated from the following files: