ATLAS Offline Software
MM_IonizationCluster.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 MM_IonizationCluster::MM_IonizationCluster(float HitX, float IonizationX, float IonizationY) :
8  m_HitX(HitX), m_IonizationStart(IonizationX, IonizationY) {}
9 
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 }
15 
16 void MM_IonizationCluster::propagateElectrons(float lorentzAngle, float driftVel) {
17  for (auto& Electron : m_Electrons) Electron->propagateElectron(lorentzAngle, driftVel);
18 }
19 
20 // accessors
21 std::vector<std::unique_ptr<MM_Electron>>& MM_IonizationCluster::getElectrons() { return m_Electrons; }
MM_IonizationCluster::createElectrons
void createElectrons(int nElectrons)
Definition: MM_IonizationCluster.cxx:10
MM_IonizationCluster.h
MM_IonizationCluster::m_IonizationStart
Amg::Vector2D m_IonizationStart
Definition: MM_IonizationCluster.h:31
MM_IonizationCluster::getElectrons
std::vector< std::unique_ptr< MM_Electron > > & getElectrons()
Definition: MM_IonizationCluster.cxx:21
MM_IonizationCluster::propagateElectrons
void propagateElectrons(float lorentzAngle, float driftVel)
Definition: MM_IonizationCluster.cxx:16
MM_IonizationCluster::m_Electrons
std::vector< std::unique_ptr< MM_Electron > > m_Electrons
Definition: MM_IonizationCluster.h:29
MM_IonizationCluster::MM_IonizationCluster
MM_IonizationCluster()=default
Electron
Class describing an electron.
MM_IonizationCluster::m_HitX
float m_HitX
Definition: MM_IonizationCluster.h:30