ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
MM_IonizationCluster Class Reference

#include <MM_IonizationCluster.h>

Collaboration diagram for MM_IonizationCluster:

Public Member Functions

 MM_IonizationCluster ()=default
 
 MM_IonizationCluster (float HitX, float IonizationX, float IonizationY)
 
void createElectrons (int nElectrons)
 
void propagateElectrons (float lorentzAngle, float driftVel)
 
std::vector< std::unique_ptr< MM_Electron > > & getElectrons ()
 
float getHitX () const
 
const Amg::Vector2DgetIonizationStart () const
 

Private Attributes

std::vector< std::unique_ptr< MM_Electron > > m_Electrons
 
float m_HitX {0.0F}
 
Amg::Vector2D m_IonizationStart {Amg::Vector2D::Zero()}
 

Detailed Description

Definition at line 17 of file MM_IonizationCluster.h.

Constructor & Destructor Documentation

◆ MM_IonizationCluster() [1/2]

MM_IonizationCluster::MM_IonizationCluster ( )
default

◆ MM_IonizationCluster() [2/2]

MM_IonizationCluster::MM_IonizationCluster ( float  HitX,
float  IonizationX,
float  IonizationY 
)

Definition at line 7 of file MM_IonizationCluster.cxx.

7  :
8  m_HitX(HitX), m_IonizationStart(IonizationX, IonizationY) {}

Member Function Documentation

◆ createElectrons()

void MM_IonizationCluster::createElectrons ( int  nElectrons)

Definition at line 10 of file MM_IonizationCluster.cxx.

10  {
11  m_Electrons.reserve(nElectrons);
12  for (int iElectron = 0; iElectron < nElectrons; iElectron++)
13  m_Electrons.push_back(std::make_unique<MM_Electron>(m_IonizationStart.x() + m_HitX, m_IonizationStart.y()));
14 }

◆ getElectrons()

std::vector< std::unique_ptr< MM_Electron > > & MM_IonizationCluster::getElectrons ( )

Definition at line 21 of file MM_IonizationCluster.cxx.

21 { return m_Electrons; }

◆ getHitX()

float MM_IonizationCluster::getHitX ( ) const
inline

Definition at line 24 of file MM_IonizationCluster.h.

24 { return m_HitX; }

◆ getIonizationStart()

const Amg::Vector2D& MM_IonizationCluster::getIonizationStart ( ) const
inline

Definition at line 25 of file MM_IonizationCluster.h.

25 { return m_IonizationStart; }

◆ propagateElectrons()

void MM_IonizationCluster::propagateElectrons ( float  lorentzAngle,
float  driftVel 
)

Definition at line 16 of file MM_IonizationCluster.cxx.

16  {
17  for (auto& Electron : m_Electrons) Electron->propagateElectron(lorentzAngle, driftVel);
18 }

Member Data Documentation

◆ m_Electrons

std::vector<std::unique_ptr<MM_Electron> > MM_IonizationCluster::m_Electrons
private

Definition at line 29 of file MM_IonizationCluster.h.

◆ m_HitX

float MM_IonizationCluster::m_HitX {0.0F}
private

Definition at line 30 of file MM_IonizationCluster.h.

◆ m_IonizationStart

Amg::Vector2D MM_IonizationCluster::m_IonizationStart {Amg::Vector2D::Zero()}
private

Definition at line 31 of file MM_IonizationCluster.h.


The documentation for this class was generated from the following files:
MM_IonizationCluster::m_IonizationStart
Amg::Vector2D m_IonizationStart
Definition: MM_IonizationCluster.h:31
MM_IonizationCluster::m_Electrons
std::vector< std::unique_ptr< MM_Electron > > m_Electrons
Definition: MM_IonizationCluster.h:29
Electron
Class describing an electron.
MM_IonizationCluster::m_HitX
float m_HitX
Definition: MM_IonizationCluster.h:30