CFEL - ASG Software Suite  2.5.0
CASS
Public Types | Public Member Functions | Private Attributes | List of all members
cass::ACQIRIS::Spectrometer Class Reference

a REMI type spectrometer More...

#include <spectrometer.h>

+ Collaboration diagram for cass::ACQIRIS::Spectrometer:

Public Types

typedef std::vector< SpectrometerRegionregions_t
 typef for better readable code More...
 

Public Member Functions

void loadSettings (CASSSettings &s, const Particle &particle)
 load the settings from .ini file More...
 
const regions_tregions () const
 retrieve the regions of the spectrometer More...
 
double cyclotronPeriod_ns () const
 retrieve magnetic field parameter More...
 
bool BFieldIsOn () const
 retrieve magnetic field parameter More...
 
bool rotationClockWise () const
 retrieve magnetic field parameter More...
 

Private Attributes

regions_t _regions
 the regions of the spectrometer More...
 
bool _BFieldIsOn
 flag to tell whether the magnetic field is turned on More...
 
double _cyclotronPeriod
 the cyclotron frequency of the particles in ns More...
 
bool _rotationClockwise
 flag showing the direction of the magnetic field More...
 

Detailed Description

a REMI type spectrometer

class describes a remi type spectroemter that has one or more separeted regions. In the spectrometer a magenetic field can be present. In this case it is important to know in which direction the magnetic field is pointing and how strong it is. The latter can be measured by the cyclotron period of the electrons and the former by the rotation direction of the electrons.

User definable Parameters:

AcqirisDetectors/%detectorname%/Particles/%particlename%/Spectrometer/{BFieldIsOn}
Flag to tell whether a magnetic field is present in the spectrometer. Default is false

AcqirisDetectors/%detectorname%/Particles/%particlename%/Spectrometer/{RotationClockwise}
Flag to tell in which direction the magentic field is pointing This can be told by telling in which way the electrons rotate. If they rotate clockwise this should be true. Default is true.

AcqirisDetectors/%detectorname%/Particles/%particlename%/Spectrometer/{CyclotronPeriode}
The time it takes for an electron to make a complete rotation in the magnetic field in ns. Default is 10

AcqirisDetectors/%detectorname%/Particles/%particlename%/Spectrometer/{Regions}
The groupname of the regions of a spectrometer. See cass::ACQIRIS::SpectrometerRegion

AcqirisDetectors/%detectorname%/Particles/%particlename%/Spectrometer/Regions/{Size}
The number of spectrometer regions available. Default is 0.

Author
Lutz Foucar

Definition at line 85 of file spectrometer.h.

Member Typedef Documentation

typef for better readable code

Definition at line 89 of file spectrometer.h.

Member Function Documentation

bool cass::ACQIRIS::Spectrometer::BFieldIsOn ( ) const
inline

retrieve magnetic field parameter

Definition at line 107 of file spectrometer.h.

References _BFieldIsOn.

double cass::ACQIRIS::Spectrometer::cyclotronPeriod_ns ( ) const
inline

retrieve magnetic field parameter

Definition at line 106 of file spectrometer.h.

References _cyclotronPeriod.

Referenced by cass::ACQIRIS::getDetPlaneMomenta().

void Spectrometer::loadSettings ( CASSSettings s,
const Particle particle 
)

load the settings from .ini file

load all spectrometer regions from file before loading our own members. We need to convert the cyclotron period that is given by the user in electron periods to the period that this particle has. Therefore we need to multiply the period by the ratio of mass to charge of the particle.

Parameters
sthe CASSSettings object to read the information from
particlethe particle that this spectrometer belongs to

Definition at line 19 of file spectrometer.cpp.

References _BFieldIsOn, _cyclotronPeriod, _regions, _rotationClockwise, QSettings::beginGroup(), QSettings::beginReadArray(), cass::ACQIRIS::Particle::charge_au(), QSettings::endArray(), QSettings::endGroup(), cass::ACQIRIS::SpectrometerRegion::loadSettings(), cass::ACQIRIS::Particle::mass_au(), QSettings::setArrayIndex(), size, and QSettings::value().

const regions_t& cass::ACQIRIS::Spectrometer::regions ( ) const
inline

retrieve the regions of the spectrometer

Definition at line 112 of file spectrometer.h.

References _regions.

Referenced by cass::ACQIRIS::evalFunc(), cass::ACQIRIS::getZMomIter(), and cass::ACQIRIS::PzCalculatorDirectOneRegion::operator()().

bool cass::ACQIRIS::Spectrometer::rotationClockWise ( ) const
inline

retrieve magnetic field parameter

Definition at line 108 of file spectrometer.h.

References _rotationClockwise.

Referenced by cass::ACQIRIS::getDetPlaneMomenta().

Member Data Documentation

bool cass::ACQIRIS::Spectrometer::_BFieldIsOn
private

flag to tell whether the magnetic field is turned on

Definition at line 119 of file spectrometer.h.

Referenced by BFieldIsOn(), and loadSettings().

double cass::ACQIRIS::Spectrometer::_cyclotronPeriod
private

the cyclotron frequency of the particles in ns

Definition at line 122 of file spectrometer.h.

Referenced by cyclotronPeriod_ns(), and loadSettings().

regions_t cass::ACQIRIS::Spectrometer::_regions
private

the regions of the spectrometer

Definition at line 116 of file spectrometer.h.

Referenced by loadSettings(), and regions().

bool cass::ACQIRIS::Spectrometer::_rotationClockwise
private

flag showing the direction of the magnetic field

this is done by saying wether electrons turn clock or counterclockwise

Definition at line 128 of file spectrometer.h.

Referenced by loadSettings(), and rotationClockWise().


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