Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
sim::SimChannel Class Reference

Energy deposited on a readout channel by simulated tracks. More...

#include <SimChannel.h>

Classes

struct  CompareByTDC
 

Public Types

typedef TDCIDE::first_type StoredTDC_t
 Type for TDC tick used in the internal representation. More...
 
typedef std::vector< TDCIDETDCIDEs_t
 Type of list of energy deposits for each TDC with signal. More...
 
typedef unsigned int TDC_t
 
typedef IDE::TrackID_t TrackID_t
 Type of track ID (the value comes from Geant4) More...
 

Public Member Functions

 SimChannel ()
 
 SimChannel (raw::ChannelID_t channel)
 Constructor: immediately sets the channel number. More...
 
void AddIonizationElectrons (TrackID_t trackID, TDC_t tdc, double numberElectrons, double const *xyz, double energy)
 Add ionization electrons and energy to this channel. More...
 
raw::ChannelID_t Channel () const
 Returns the readout channel this object describes. More...
 
std::vector< sim::IDETrackIDsAndEnergies (TDC_t startTDC, TDC_t endTDC) const
 Return all the recorded energy deposition within a time interval. More...
 
TDCIDEs_t const & TDCIDEMap () const
 Returns all the deposited energy information as stored. More...
 
double Charge (TDC_t tdc) const
 Returns the total number of ionization electrons on this channel in the specified TDC. More...
 
double Energy (TDC_t tdc) const
 Returns the total energy on this channel in the specified TDC [MeV]. More...
 
std::vector< sim::TrackIDETrackIDEs (TDC_t startTDC, TDC_t endTDC) const
 Returns energies collected for each track within a time interval. More...
 
bool operator< (const SimChannel &other) const
 Comparison: sorts by channel ID. More...
 
bool operator== (const SimChannel &other) const
 Comparison: true if SimChannels have the same channel ID. More...
 
std::pair< TrackID_t, TrackID_tMergeSimChannel (const SimChannel &channel, int offset)
 Merges the deposits from another channel into this one. More...
 
template<typename Stream >
void Dump (Stream &&out, std::string indent, std::string first_indent) const
 Dumps the full content of the SimChannel into a stream. More...
 
template<typename Stream >
void Dump (Stream &&out, std::string indent="") const
 Documentation at Dump(Stream&&, std::string, std::string) const. More...
 

Private Member Functions

TDCIDEs_t::iterator findClosestTDCIDE (StoredTDC_t tdc)
 Return the iterator to the first TDCIDE not earlier than tdc. More...
 
TDCIDEs_t::const_iterator findClosestTDCIDE (StoredTDC_t tdc) const
 Return the (constant) iterator to the first TDCIDE not earlier than tdc. More...
 

Private Attributes

raw::ChannelID_t fChannel
 readout channel where electrons are collected More...
 
TDCIDEs_t fTDCIDEs
 list of energy deposits for each TDC with signal More...
 

Detailed Description

Energy deposited on a readout channel by simulated tracks.

This class stores the list of all energies deposited on a readout channel. The number of electrons is stored as well.

The information is organized by time: it is divided by TDC ticks, and each TDC tick where some energy was deposited appears in a separate entry, while the quiet TDC ticks are omitted. For each TDC, the information is stored as a list of energy deposits; each deposit comes from a single Geant4 track and stores the location where the ionization happened according to the simulation (see sim::IDE class).

Note that there can be multiple energy deposit records (that is sim::IDE) for a single track in a single TDC tick.

Definition at line 140 of file SimChannel.h.

Member Typedef Documentation

typedef TDCIDE::first_type sim::SimChannel::StoredTDC_t

Type for TDC tick used in the internal representation.

Definition at line 144 of file SimChannel.h.

typedef unsigned int sim::SimChannel::TDC_t

Type for TDC tick used in the interface (different type than raw::TDCtick_t! and from internal representation! but same meaning!)

Definition at line 162 of file SimChannel.h.

Type of list of energy deposits for each TDC with signal.

Definition at line 147 of file SimChannel.h.

Type of track ID (the value comes from Geant4)

Definition at line 165 of file SimChannel.h.

Constructor & Destructor Documentation

sim::SimChannel::SimChannel ( )

Definition at line 44 of file SimChannel.cxx.

46  {}
raw::ChannelID_t fChannel
readout channel where electrons are collected
Definition: SimChannel.h:150
constexpr ChannelID_t InvalidChannelID
ID of an invalid channel.
Definition: RawTypes.h:32
sim::SimChannel::SimChannel ( raw::ChannelID_t  channel)
explicit

Constructor: immediately sets the channel number.

Definition at line 49 of file SimChannel.cxx.

50  : fChannel(channel)
51  {}
raw::ChannelID_t fChannel
readout channel where electrons are collected
Definition: SimChannel.h:150
uint8_t channel
Definition: CRTFragment.hh:201

Member Function Documentation

void sim::SimChannel::AddIonizationElectrons ( TrackID_t  trackID,
TDC_t  tdc,
double  numberElectrons,
double const *  xyz,
double  energy 
)

Add ionization electrons and energy to this channel.

Parameters
trackIDID of simulated track depositing this energy (from Geant4)
tdcTDC tick when this deposit was collected
numberElectronselectrons created at this point by this track
xyzcoordinates of original location of ionization (3D array) [cm]
energyenergy deposited at this point by this track [MeV]

The number of electrons can be fractional because of simulated efficiency and physics effects.

Definition at line 54 of file SimChannel.cxx.

59  {
60  // look at the collection to see if the current TDC already
61  // exists, if not, add it, if so, just add a new track id to the
62  // vector, or update the information if track is already present
63 
64  // no electrons? no energy? no good!
65  if ((numberElectrons < std::numeric_limits<double>::epsilon())
66  || (energy <= std::numeric_limits<double>::epsilon()))
67  {
68  // will throw
69  MF_LOG_ERROR("SimChannel")
70  << "AddIonizationElectrons() trying to add to TDC #"
71  << tdc
72  << " "
73  << numberElectrons
74  << " electrons with "
75  << energy
76  << " MeV of energy from track ID="
77  << trackID;
78  return;
79  } // if no energy or no electrons
80 
81  auto itr = findClosestTDCIDE(tdc);
82 
83  // check if this tdc value is in the vector, it is possible that
84  // the lower bound is different from the given tdc, in which case
85  // we need to add something for that tdc
86  if(itr == fTDCIDEs.end() ||
87  itr->first != tdc){
88  std::vector<sim::IDE> idelist;
89  idelist.emplace_back(trackID,
90  numberElectrons,
91  energy,
92  xyz[0],
93  xyz[1],
94  xyz[2]
95  );
96  fTDCIDEs.emplace(itr, tdc, std::move(idelist) );
97  }
98  else { // we have that TDC already; itr points to it
99 
100  // loop over the IDE vector for this tdc and add the electrons
101  // to the entry with the same track id
102  for(auto& ide : itr->second){
103 
104  if (ide.trackID != trackID ) continue;
105 
106  // make a weighted average for the location information
107  double weight = ide.numElectrons + numberElectrons;
108  ide.x = (ide.x * ide.numElectrons + xyz[0]*numberElectrons)/weight;
109  ide.y = (ide.y * ide.numElectrons + xyz[1]*numberElectrons)/weight;
110  ide.z = (ide.z * ide.numElectrons + xyz[2]*numberElectrons)/weight;
111  ide.numElectrons = weight;
112  ide.energy = ide.energy + energy;
113 
114  // found the track id we wanted, so return;
115  return;
116  } // for
117 
118  // if we never found the track id, then this is the first instance of
119  // the track id for this tdc, so add ide to the vector
120  itr->second.emplace_back(trackID,
121  numberElectrons,
122  energy,
123  xyz[0],
124  xyz[1],
125  xyz[2]
126  );
127 
128  } // if new TDC ... else
129 
130  } // SimChannel::AddIonizationElectrons()
#define MF_LOG_ERROR(category)
weight
Definition: test.py:257
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
def move(depos, offset)
Definition: depos.py:107
TDCIDEs_t::iterator findClosestTDCIDE(StoredTDC_t tdc)
Return the iterator to the first TDCIDE not earlier than tdc.
Definition: SimChannel.cxx:342
raw::ChannelID_t sim::SimChannel::Channel ( ) const
inline

Returns the readout channel this object describes.

Definition at line 329 of file SimChannel.h.

329 { return fChannel; }
raw::ChannelID_t fChannel
readout channel where electrons are collected
Definition: SimChannel.h:150
double sim::SimChannel::Charge ( TDC_t  tdc) const

Returns the total number of ionization electrons on this channel in the specified TDC.

Definition at line 134 of file SimChannel.cxx.

135  {
136  double charge = 0.;
137 
138  auto itr = findClosestTDCIDE(tdc);
139 
140  // check to see if this tdc value is in the map
141  if(itr != fTDCIDEs.end() &&
142  itr->first == tdc){
143 
144  // loop over the list for this tdc value and add up
145  // the total number of electrons
146  for(auto ide : itr->second){
147  charge += ide.numElectrons;
148  } // end loop over sim::IDE for this tdc
149 
150  } // end if this tdc is represented in the map
151 
152  return charge;
153  }
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
TDCIDEs_t::iterator findClosestTDCIDE(StoredTDC_t tdc)
Return the iterator to the first TDCIDE not earlier than tdc.
Definition: SimChannel.cxx:342
template<class Stream >
void sim::SimChannel::Dump ( Stream &&  out,
std::string  indent,
std::string  first_indent 
) const

Dumps the full content of the SimChannel into a stream.

Template Parameters
Streaman ostream-like stream object
Parameters
outthe stream to send the information into
indentindentation of the lines (default: none)
first_indentindentation for the first line (default: as indent)

Definition at line 337 of file SimChannel.h.

338 {
339  out << first_indent << "channel #" << Channel() << " read " << fTDCIDEs.size()
340  << " TDCs:\n";
341  double channel_energy = 0., channel_charge = 0.;
342  for (const auto& TDCinfo: fTDCIDEs) {
343  auto const tdc = TDCinfo.first;
344  out << indent << " TDC #" << tdc
345  << " with " << TDCinfo.second.size() << " IDEs\n";
346  double tdc_energy = 0., tdc_charge = 0.;
347  for (const sim::IDE& ide: TDCinfo.second) {
348  out << indent
349  << " (" << ide.x << ", " << ide.y << ", " << ide.z << ") "
350  << ide.numElectrons << " electrons, " << ide.energy << " MeV (trkID="
351  << ide.trackID << ")\n";
352  tdc_energy += ide.energy;
353  tdc_charge += ide.numElectrons;
354  } // for IDEs
355  out << indent << " => TDC #" << tdc << " CH #" << Channel()
356  << " collected " << tdc_charge << " electrons and " << tdc_energy
357  << " MeV\n";
358  channel_energy += tdc_energy;
359  channel_charge += tdc_charge;
360  } // for TDCs
361  out << indent << " => channel #" << Channel() << " collected "
362  << channel_charge << " electrons and " << channel_energy << " MeV\n";
363 } // sim::SimChannel::Dump<>()
TrackID_t trackID
Geant4 supplied track ID.
Definition: SimChannel.h:112
float z
z position of ionization [cm]
Definition: SimChannel.h:117
float x
x position of ionization [cm]
Definition: SimChannel.h:115
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
Ionization at a point of the TPC sensitive volume.
Definition: SimChannel.h:84
float energy
energy deposited by ionization by this track ID and time [MeV]
Definition: SimChannel.h:114
float y
y position of ionization [cm]
Definition: SimChannel.h:116
raw::ChannelID_t Channel() const
Returns the readout channel this object describes.
Definition: SimChannel.h:329
float numElectrons
number of electrons at the readout for this track ID and time
Definition: SimChannel.h:113
template<typename Stream >
void sim::SimChannel::Dump ( Stream &&  out,
std::string  indent = "" 
) const
inline

Documentation at Dump(Stream&&, std::string, std::string) const.

Definition at line 304 of file SimChannel.h.

305  { Dump(std::forward<Stream>(out), indent, indent); }
void Dump(Stream &&out, std::string indent, std::string first_indent) const
Dumps the full content of the SimChannel into a stream.
Definition: SimChannel.h:337
double sim::SimChannel::Energy ( TDC_t  tdc) const

Returns the total energy on this channel in the specified TDC [MeV].

Definition at line 156 of file SimChannel.cxx.

157  {
158  double energy = 0.;
159 
160  auto itr = findClosestTDCIDE(tdc);
161 
162  // check to see if this tdc value is in the map
163  if(itr != fTDCIDEs.end() &&
164  itr->first == tdc){
165 
166  // loop over the list for this tdc value and add up
167  // the total number of electrons
168  for(auto ide : itr->second ){
169  energy += ide.energy;
170  } // end loop over sim::IDE for this tdc
171 
172  } // end if this tdc is represented in the map
173 
174  return energy;
175  }
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
TDCIDEs_t::iterator findClosestTDCIDE(StoredTDC_t tdc)
Return the iterator to the first TDCIDE not earlier than tdc.
Definition: SimChannel.cxx:342
SimChannel::TDCIDEs_t::iterator sim::SimChannel::findClosestTDCIDE ( StoredTDC_t  tdc)
private

Return the iterator to the first TDCIDE not earlier than tdc.

Definition at line 342 of file SimChannel.cxx.

343  {
344  return std::lower_bound
345  (fTDCIDEs.begin(), fTDCIDEs.end(), tdc, CompareByTDC());
346  }
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
SimChannel::TDCIDEs_t::const_iterator sim::SimChannel::findClosestTDCIDE ( StoredTDC_t  tdc) const
private

Return the (constant) iterator to the first TDCIDE not earlier than tdc.

Definition at line 349 of file SimChannel.cxx.

350  {
351  return std::lower_bound
352  (fTDCIDEs.begin(), fTDCIDEs.end(), tdc, CompareByTDC());
353  }
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
std::pair< SimChannel::TrackID_t, SimChannel::TrackID_t > sim::SimChannel::MergeSimChannel ( const SimChannel channel,
int  offset 
)

Merges the deposits from another channel into this one.

Parameters
channelthe sim::SimChannel holding information to be merged
offsettrack ID offset for the merge
Returns
range of the IDs of the added tracks

The information from the specified simulated channel is added to the current one. This is achieved by appending the energy deposit information (sim::IDE) at each TDC tick from the merged channel to the list of existing energy deposits for that TDC tick.

In addition, the track IDs of the merged channel are added an offset, so that they can be distinguished from the existing ones. This is useful when simulating tracks with multiple Geant4 runs. Geant4 will reuse track IDs on each run, and using the highest number of track ID from one run as the offset for the next avoids track ID collisions. Note however that this function does not perform any collision check, and it is caller's duty to ensure that the offset is properly large. The return value is a pair including the lowest and the largest track IDs added to this channel, equivalent to the lowest and the highest track IDs present in the merged channel, both augmented by the applied offset.

The channel number of the merged channel is ignored.

Definition at line 281 of file SimChannel.cxx.

283  {
284  if( this->Channel() != channel.Channel() )
285  throw std::runtime_error("ERROR SimChannel Merge: Trying to merge different channels!");
286 
287  std::pair<TrackID_t,TrackID_t> range_trackID(std::numeric_limits<int>::max(),
289 
290  for(auto const& itr : channel.TDCIDEMap()){
291 
292  auto tdc = itr.first;
293  auto const& ides = itr.second;
294 
295  // find the entry from this SimChannel corresponding to the tdc from the other
296  auto itrthis = findClosestTDCIDE(tdc);
297 
298  // pick which IDE list we have to fill: new one or existing one
299  std::vector<sim::IDE>* curIDEVec;
300  if(itrthis == fTDCIDEs.end() ||
301  itrthis->first != tdc){
302  fTDCIDEs.emplace_back(tdc, std::vector<sim::IDE>());
303  curIDEVec = &(fTDCIDEs.back().second);
304  }
305  else
306  curIDEVec = &(itrthis->second);
307 
308  for(auto const& ide : ides){
309  curIDEVec->emplace_back(ide, offset);
310  auto tid = std::abs(ide.trackID)+offset;
311  if( tid < range_trackID.first )
312  range_trackID.first = tid;
313  if( tid > range_trackID.second )
314  range_trackID.second = tid;
315  }//end loop over IDEs
316 
317  }//end loop over TDCIDEMap
318 
319 
320  return range_trackID;
321 
322  }
uint8_t channel
Definition: CRTFragment.hh:201
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
T abs(T value)
static int max(int a, int b)
TDCIDEs_t::iterator findClosestTDCIDE(StoredTDC_t tdc)
Return the iterator to the first TDCIDE not earlier than tdc.
Definition: SimChannel.cxx:342
raw::ChannelID_t Channel() const
Returns the readout channel this object describes.
Definition: SimChannel.h:329
T min(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
Definition: statistics.h:55
bool sim::SimChannel::operator< ( const SimChannel other) const
inline

Comparison: sorts by channel ID.

Definition at line 326 of file SimChannel.h.

326 { return fChannel < other.Channel(); }
raw::ChannelID_t fChannel
readout channel where electrons are collected
Definition: SimChannel.h:150
bool sim::SimChannel::operator== ( const SimChannel other) const
inline

Comparison: true if SimChannels have the same channel ID.

Definition at line 327 of file SimChannel.h.

327 { return fChannel == other.Channel(); }
raw::ChannelID_t fChannel
readout channel where electrons are collected
Definition: SimChannel.h:150
sim::SimChannel::TDCIDEs_t const & sim::SimChannel::TDCIDEMap ( ) const
inline

Returns all the deposited energy information as stored.

Returns
all the deposited energy information as stored in the object

The returned list is organized in pairs. Each pair contains all ionization information in a single TDC tick (collection of sim::IDE), and the number of that tick. The information is sorted by increasing TDC tick.

See the class description for the details of the ionization information content.

Definition at line 328 of file SimChannel.h.

328 { return fTDCIDEs; }
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
std::vector< sim::TrackIDE > sim::SimChannel::TrackIDEs ( TDC_t  startTDC,
TDC_t  endTDC 
) const

Returns energies collected for each track within a time interval.

Parameters
startTDCTDC tick opening the time window
endTDCTDC tick closing the time window (included in the interval)
Returns
a collection of energy and fraction from each track in interval
See also
TrackIDsAndEnergies()

This method returns the energy deposited on this channel by each track ID active in the specified TDC time interval.

Each entry pertains a single track ID. For each entry, all energy deposit information is merged into a single record. It includes:

  • energy of the track, as the integral in the time interval [MeV]
  • energy fraction respect to the total (see below)
  • the ID of the track depositing this energy

The energy fraction is the energy deposited by the track on this channel in the specified time interval, divided by the total of the energy deposited by all tracks on this channel in that same time interval.

Entries are sorted by track ID number.

Definition at line 246 of file SimChannel.cxx.

248  {
249 
250  std::vector<sim::TrackIDE> trackIDEs;
251 
252  if(startTDC > endTDC ){
253  mf::LogWarning("SimChannel::TrackIDEs") << "requested tdc range is bogus: "
254  << startTDC << " " << endTDC
255  << " return empty vector";
256  return trackIDEs;
257  }
258 
259  double totalE = 0.;
260  std::vector<sim::IDE> const ides = TrackIDsAndEnergies(startTDC, endTDC);
261  for (auto const& ide : ides)
262  totalE += ide.energy;
263 
264  // protect against a divide by zero below
265  if(totalE < 1.e-5) totalE = 1.;
266 
267  // loop over the entries in the map and fill the input vectors
268  for (auto const& ide : ides){
269  if(ide.trackID == sim::NoParticleId) continue;
270  trackIDEs.emplace_back(ide.trackID, ide.energy/totalE, ide.energy, ide.numElectrons);
271  }
272 
273  return trackIDEs;
274  }
const double e
static const int NoParticleId
Definition: sim.h:28
std::vector< sim::IDE > TrackIDsAndEnergies(TDC_t startTDC, TDC_t endTDC) const
Return all the recorded energy deposition within a time interval.
Definition: SimChannel.cxx:180
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::vector< sim::IDE > sim::SimChannel::TrackIDsAndEnergies ( TDC_t  startTDC,
TDC_t  endTDC 
) const

Return all the recorded energy deposition within a time interval.

Parameters
startTDCTDC tick opening the time window
endTDCTDC tick closing the time window (included in the interval)
Returns
a collection of energy deposit information from all tracks

This method returns the energy deposited on this channel by each track ID active in the specified TDC time interval.

Each entry pertains a single track ID. For each entry, all energy deposit information is merged into a single record. It includes:

  • energy and number of electrons, as the integral in the time interval
  • position, as average weighted by the number of electrons
  • the ID of the track depositing this energy

Entries are sorted by track ID number.

Definition at line 180 of file SimChannel.cxx.

182  {
183  // make a map of track ID values to sim::IDE objects
184 
185  if(startTDC > endTDC ){
186  mf::LogWarning("SimChannel") << "requested tdc range is bogus: "
187  << startTDC << " " << endTDC
188  << " return empty vector";
189  return {}; // returns an empty vector
190  }
191 
192  std::map<TrackID_t, sim::IDE> idToIDE;
193 
194  //find the lower bound for this tdc and then iterate from there
195  auto itr = findClosestTDCIDE(startTDC);
196 
197  while(itr != fTDCIDEs.end()){
198 
199  // check the tdc value for the iterator, break the loop if we
200  // are outside the range
201  if(itr->first > endTDC) break;
202 
203  // grab the vector of IDEs for this tdc
204  auto const& idelist = itr->second;
205  // now loop over them and add their content to the map
206  for(auto const& ide : idelist){
207  auto itTrkIDE = idToIDE.find(ide.trackID);
208  if( itTrkIDE != idToIDE.end() ){
209  // the IDE we are going to update:
210  sim::IDE& trackIDE = itTrkIDE->second;
211 
212  double const nel1 = trackIDE.numElectrons;
213  double const nel2 = ide.numElectrons;
214  double const en1 = trackIDE.energy;
215  double const en2 = ide.energy;
216  double const energy = en1 + en2;
217  double const weight = nel1 + nel2;
218 
219  // make a weighted average for the location information
220  trackIDE.x = (ide.x*nel2 + trackIDE.x*nel1)/weight;
221  trackIDE.y = (ide.y*nel2 + trackIDE.y*nel1)/weight;
222  trackIDE.z = (ide.z*nel2 + trackIDE.z*nel1)/weight;
223  trackIDE.numElectrons = weight;
224  trackIDE.energy = energy;
225  } // end if the track id for this one is found
226  else{
227  idToIDE[ide.trackID] = sim::IDE(ide);
228  }
229  } // end loop over vector
230 
231  ++itr;
232  } // end loop over tdc values
233 
234  // now fill the vector with the ides from the map
235  std::vector<sim::IDE> ides;
236  ides.reserve(idToIDE.size());
237  for(auto const& itr : idToIDE){
238  ides.push_back(itr.second);
239  }
240 
241  return ides;
242  }
float z
z position of ionization [cm]
Definition: SimChannel.h:117
float x
x position of ionization [cm]
Definition: SimChannel.h:115
weight
Definition: test.py:257
TDCIDEs_t fTDCIDEs
list of energy deposits for each TDC with signal
Definition: SimChannel.h:151
Ionization at a point of the TPC sensitive volume.
Definition: SimChannel.h:84
float energy
energy deposited by ionization by this track ID and time [MeV]
Definition: SimChannel.h:114
TDCIDEs_t::iterator findClosestTDCIDE(StoredTDC_t tdc)
Return the iterator to the first TDCIDE not earlier than tdc.
Definition: SimChannel.cxx:342
float y
y position of ionization [cm]
Definition: SimChannel.h:116
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
float numElectrons
number of electrons at the readout for this track ID and time
Definition: SimChannel.h:113

Member Data Documentation

raw::ChannelID_t sim::SimChannel::fChannel
private

readout channel where electrons are collected

Definition at line 150 of file SimChannel.h.

TDCIDEs_t sim::SimChannel::fTDCIDEs
private

list of energy deposits for each TDC with signal

Definition at line 151 of file SimChannel.h.


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