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

A delayline detector. More...

#include <delayline_detector.h>

+ Inheritance diagram for cass::ACQIRIS::DelaylineDetector:
+ Collaboration diagram for cass::ACQIRIS::DelaylineDetector:

Public Types

typedef std::map< char, AnodeLayeranodelayers_t
 define the anodelayers More...
 
typedef std::map< std::string, Particleparticles_t
 define the particles More...
 
- Public Types inherited from cass::ACQIRIS::DetectorBackend
typedef std::tr1::shared_ptr< DetectorBackendshared_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_tlayers ()
 return the layers More...
 
detectorHits_thits ()
 return the detector hits More...
 
particles_tparticles ()
 retrieve the particle container More...
 
const particles_tparticles () 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...
 
- Public Member Functions inherited from cass::ACQIRIS::TofDetector
 TofDetector (const std::string name)
 constructor. More...
 
virtual ~TofDetector ()
 virtual destructor More...
 
SignalProducermcp ()
 retrieve the mcp More...
 
DetectorType type ()
 retrieve the detector type More...
 
- Public Member Functions inherited from cass::ACQIRIS::DetectorBackend
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 Public Member Functions inherited from cass::ACQIRIS::DetectorBackend
static shared_pointer instance (const DetectorType &dettype, const std::string &detname)
 create an instance of the requested dectortype More...
 
- Protected Member Functions inherited from cass::ACQIRIS::DetectorBackend
 DetectorBackend (const std::string name)
 constructor. More...
 
- Protected Attributes inherited from cass::ACQIRIS::TofDetector
SignalProducer _mcp
 the mcp of the detector More...
 
- Protected Attributes inherited from cass::ACQIRIS::DetectorBackend
std::string _name
 the name of the detector. More...
 

Detailed Description

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.

Todo:
instead of having a layer (which does nothing) and a wireend a det should have a map of string, signalproducers. THis way one could possibly get rid of the two classes. One has to create a dethit identifier for creating a detecthit list for tof dets (the output of the sig prod. then one could also use the particle class to identif particles. later on one could calc the enegey using the eland methos (stuff that koji and marco added). In this case one could also flatten the directory structure maybe make a sublib for this acqiris lib
User definable Parameters:

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

  • 0: Quad Anode
  • 1: Hex Anode

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

Author
Lutz Foucar

Definition at line 152 of file delayline_detector.h.

Member Typedef Documentation

define the anodelayers

Definition at line 156 of file delayline_detector.h.

define the particles

Definition at line 159 of file delayline_detector.h.

Constructor & Destructor Documentation

cass::ACQIRIS::DelaylineDetector::DelaylineDetector ( const std::string  name)
inline

constructor.

Parameters
[in]namethe name of this detector

Definition at line 166 of file delayline_detector.h.

Member Function Documentation

void DelaylineDetector::associate ( const CASSEvent evt)
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.

Parameters
evtThe 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.

Returns
the list of detector hits

Definition at line 107 of file delayline_detector.cpp.

Referenced by cass::pp165::process(), and cass::pp166::process().

bool cass::ACQIRIS::DelaylineDetector::isHex ( ) const
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().

anodelayers_t& cass::ACQIRIS::DelaylineDetector::layers ( )
inline
void DelaylineDetector::loadSettings ( CASSSettings s)
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.

Parameters
sthe 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().

particles_t& cass::ACQIRIS::DelaylineDetector::particles ( )
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().

const particles_t& cass::ACQIRIS::DelaylineDetector::particles ( ) const
inline

retrieve the particle container without changing it

Definition at line 226 of file delayline_detector.h.

References _particles.

DetectorType cass::ACQIRIS::DelaylineDetector::type ( ) const
inline

retrieve the detector type

Definition at line 229 of file delayline_detector.h.

References cass::ACQIRIS::Delayline.

Member Data Documentation

std::tr1::shared_ptr<DetectorAnalyzerBackend> cass::ACQIRIS::DelaylineDetector::_analyzer
private

the analyzer that will sort the signal to hits

Definition at line 245 of file delayline_detector.h.

anodelayers_t cass::ACQIRIS::DelaylineDetector::_anodelayers
private

delayline detector has anode wire layers

Definition at line 239 of file delayline_detector.h.

Referenced by isHex(), and layers().

detectorHits_t cass::ACQIRIS::DelaylineDetector::_hits
private

container for all reconstructed detector hits

Definition at line 242 of file delayline_detector.h.

bool cass::ACQIRIS::DelaylineDetector::_newEventAssociated
private

flag to show whether there is a new event associated whith this

Definition at line 251 of file delayline_detector.h.

particles_t cass::ACQIRIS::DelaylineDetector::_particles
private

container for all particles of this detector

Definition at line 248 of file delayline_detector.h.

Referenced by particles().


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