CFEL - ASG Software Suite
2.5.0
CASS
|
A delayline detector. More...
#include <delayline_detector.h>
Public Types | |
typedef std::map< char, AnodeLayer > | anodelayers_t |
define the anodelayers More... | |
typedef std::map< std::string, Particle > | particles_t |
define the particles More... | |
![]() | |
typedef std::tr1::shared_ptr< DetectorBackend > | shared_pointer |
a shared pointer of this type More... | |
Public Member Functions | |
DelaylineDetector (const std::string name) | |
constructor. More... | |
virtual void | loadSettings (CASSSettings &s) |
load the values from the .ini file More... | |
void | associate (const CASSEvent &evt) |
associate the event with this detector More... | |
anodelayers_t & | layers () |
return the layers More... | |
detectorHits_t & | hits () |
return the detector hits More... | |
particles_t & | particles () |
retrieve the particle container More... | |
const particles_t & | particles () const |
retrieve the particle container without changing it More... | |
DetectorType | type () const |
retrieve the detector type More... | |
bool | isHex () const |
retrieve the anode type property More... | |
![]() | |
TofDetector (const std::string name) | |
constructor. More... | |
virtual | ~TofDetector () |
virtual destructor More... | |
SignalProducer & | mcp () |
retrieve the mcp More... | |
DetectorType | type () |
retrieve the detector type More... | |
![]() | |
virtual | ~DetectorBackend () |
virtual destructor More... | |
const std::string | name () const |
return the detector name More... | |
Private Attributes | |
anodelayers_t | _anodelayers |
delayline detector has anode wire layers More... | |
detectorHits_t | _hits |
container for all reconstructed detector hits More... | |
std::tr1::shared_ptr< DetectorAnalyzerBackend > | _analyzer |
the analyzer that will sort the signal to hits More... | |
particles_t | _particles |
container for all particles of this detector More... | |
bool | _newEventAssociated |
flag to show whether there is a new event associated whith this More... | |
Additional Inherited Members | |
![]() | |
static shared_pointer | instance (const DetectorType &dettype, const std::string &detname) |
create an instance of the requested dectortype More... | |
![]() | |
DetectorBackend (const std::string name) | |
constructor. More... | |
![]() | |
SignalProducer | _mcp |
the mcp of the detector More... | |
![]() | |
std::string | _name |
the name of the detector. More... | |
A delayline detector.
A delayline detector is a tof detector with the ability to also have position information. It can be either a Hex or Quad delayline detector. It also contains detector hits. These are extracted by sorting the signals of the singal producers. To do this each detector has its own Analysis object. There are various ways to do this analysis, the user has the option to choose which one he wants to use. Please refer to the documentation of the different analyzers to find out their user settings.
In addition to these parameters it will also opens the groups for the different layers. The groupnames depend on the Delaylinetype. For a Quad Anode it will be "XLayer" and "YLayer". For a Hex Anode it will be "ULayer", "VLayer" and "WLayer". Please refer to AnodeLayer for the user settable parameters of the anode layers.
AcqirisDetectors/%detectorname%/{AnalysisMethod}
Method that is used to reconstruct the detector hits. Default is 0. Choises are:
AcqirisDetectors/%detectorname%/{DelaylineType}
What kind of Delaylinedetector are we. Default is 0
AcqirisDetectors/%detectorname%/MCP
Name of the MCP Signal. See cass::ACQIRIS::SignalProducer
AcqirisDetectors/%detectorname%/XLayer
groupname of the X Layer, when DelaylineType is Quad see cass::ACQIRIS::AnodeLayer
AcqirisDetectors/%detectorname%/YLayer
groupname of the Y Layer, when DelaylineType is Quad see cass::ACQIRIS::AnodeLayer
AcqirisDetectors/%detectorname%/ULayer
groupname of the U Layer, when DelaylineType is Hex see cass::ACQIRIS::AnodeLayer
AcqirisDetectors/%detectorname%/VLayer
groupname of the V Layer, when DelaylineType is Hex see cass::ACQIRIS::AnodeLayer
AcqirisDetectors/%detectorname%/WLayer
groupname of the W Layer, when DelaylineType is Hex see cass::ACQIRIS::AnodeLayer
AcqirisDetectors/%detectorname%/Particles
groupname of the user definable Particles. see cass::ACQIRIS::Particle
Definition at line 152 of file delayline_detector.h.
define the anodelayers
Definition at line 156 of file delayline_detector.h.
typedef std::map<std::string,Particle> cass::ACQIRIS::DelaylineDetector::particles_t |
define the particles
Definition at line 159 of file delayline_detector.h.
|
inline |
constructor.
[in] | name | the name of this detector |
Definition at line 166 of file delayline_detector.h.
|
virtual |
associate the event with this detector
when this is called, it means that a data from a new event will be available. Therefore the _newEventAssociatad is set to true and the _hits container is cleared. Then the Signalproduers of this detector (the mcp and all anodlayers) will be associated with this event. Please refer to SignalProducer::associate() for further information.
Then associate all particles with the detectorhits of this detector by calling Particle::associate() for each particle in the container.
evt | The event to associate with this detector |
Reimplemented from cass::ACQIRIS::TofDetector.
Definition at line 40 of file delayline_detector.cpp.
detectorHits_t & DelaylineDetector::hits | ( | ) |
return the detector hits
When a new event was associated with this detector, calling this function will first create the detector hits from the signals of the signal producers with the help of the _analyzer. When the _analyzer has already created this list, then it will be just returned.
Definition at line 107 of file delayline_detector.cpp.
Referenced by cass::pp165::process(), and cass::pp166::process().
|
inline |
retrieve the anode type property
detector is hex when it has a U-Layer
Definition at line 235 of file delayline_detector.h.
References _anodelayers.
Referenced by cass::HexCalibrator::loadSettings(), and cass::ACQIRIS::HexSorter::loadSettings().
|
inline |
return the layers
Definition at line 209 of file delayline_detector.h.
References _anodelayers.
Referenced by cass::ACQIRIS::DelaylineNonSorting::loadSettings(), cass::ACQIRIS::DelaylineDetectorAnalyzerSimple::loadSettings(), cass::ACQIRIS::HexSorter::loadSettings(), cass::HexCalibrator::process(), cass::pp160::process(), cass::pp161::process(), cass::pp162::process(), cass::pp163::process(), cass::pp164::process(), and cass::pp167::process().
|
virtual |
load the values from the .ini file
this function will load the settings of this detector, which are described in the class description. Next to those it will load the settings of its SignalProducers (mcp and anodelayers). The anode layers to load are chosen on the Delaylinetype. Please refer to SignalProducer::loadSettings() for further information.
Then it will create the requested analyzer by calling DetectorAnalyzerBackend::instance() and load the settings for the analyzer. Please refer to the analyzers loadSettings() member for further information.
Create the particles map from the subgroups of the "Particle" group in the .ini file. Therefore retrieve a string list of all subgroup names under particle. Iterate through this list and create a particle for entry in the list and call Particle::loadSettings() for it after opening a group with the name of the particle. After loading the particles parameters put the particle into the container.
s | the CASSSettings object we retrieve the values from |
Reimplemented from cass::ACQIRIS::TofDetector.
Definition at line 55 of file delayline_detector.cpp.
References QSettings::beginGroup(), QSettings::childGroups(), cass::ACQIRIS::DelaylineSimple, QSettings::endGroup(), QString::fromStdString(), cass::ACQIRIS::Hex, cass::ACQIRIS::DetectorAnalyzerBackend::instance(), cass::ACQIRIS::Quad, cass::toString(), and QSettings::value().
|
inline |
retrieve the particle container
Definition at line 223 of file delayline_detector.h.
References _particles.
Referenced by cass::pp5000::process(), cass::pp250::process(), cass::pp251::process(), and cass::pp252::process().
|
inline |
retrieve the particle container without changing it
Definition at line 226 of file delayline_detector.h.
References _particles.
|
inline |
retrieve the detector type
Definition at line 229 of file delayline_detector.h.
References cass::ACQIRIS::Delayline.
|
private |
the analyzer that will sort the signal to hits
Definition at line 245 of file delayline_detector.h.
|
private |
delayline detector has anode wire layers
Definition at line 239 of file delayline_detector.h.
|
private |
container for all reconstructed detector hits
Definition at line 242 of file delayline_detector.h.
|
private |
flag to show whether there is a new event associated whith this
Definition at line 251 of file delayline_detector.h.
|
private |
container for all particles of this detector
Definition at line 248 of file delayline_detector.h.
Referenced by particles().