PAASS
Software suite to Acquire and Analyze Data from Pixie16
XiaData Class Reference

A pixie16 channel event. More...

#include <XiaData.hpp>

Collaboration diagram for XiaData:

Public Member Functions

 XiaData ()
 Default constructor. More...
 
 ~XiaData ()
 Default Destructor. More...
 
bool operator== (const XiaData &rhs) const
 Equality operator that compares checks if we have the same channel (i.e. the ID and Time are identical) More...
 
bool operator!= (const XiaData &rhs) const
 The conjugate of the equality operator. More...
 
bool operator< (const XiaData &rhs) const
 The less than operator that compares if the time of the current class is less than the time of the comparison class. More...
 
bool operator> (const XiaData &rhs) const
 The conjugate of the less than operator. More...
 
bool GetCfdForcedTriggerBit () const
 
bool GetCfdTriggerSourceBit () const
 
bool IsPileup () const
 
bool IsSaturated () const
 
bool IsVirtualChannel () const
 
double GetBaseline () const
 
double GetEnergy () const
 
double GetTime () const
 Method that will return the time for the channel. The actual time is a 48-bit number. We multiply 2^32 by the eventTimeHigh_ so that we account for the missing upper 16 bits of the number. The cfdTime_ contains all of the fractional time information, and so we divide by 2^16 here. Verify that this method works properly for all of the different module types and firmwares. It doesn't and this value simply needs to be set explicitly by the Decoder. More...
 
unsigned int GetCfdFractionalTime () const
 
unsigned int GetChannelNumber () const
 
unsigned int GetCrateNumber () const
 
unsigned int GetEventTimeHigh () const
 
unsigned int GetEventTimeLow () const
 
unsigned int GetExternalTimeHigh () const
 
unsigned int GetExternalTimeLow () const
 
unsigned int GetId () const
 
unsigned int GetModuleNumber () const
 
unsigned int GetSlotNumber () const
 
std::vector< unsigned int > GetEnergySums () const
 
std::vector< unsigned int > GetQdc () const
 
std::vector< unsigned int > GetTrace () const
 
void SetBaseline (const double &a)
 Sets the baseline recorded on the module if the energy sums were recorded in the data stream. More...
 
void SetCfdForcedTriggerBit (const bool &a)
 This value is set to true if the CFD was forced to trigger. More...
 
void SetCfdFractionalTime (const unsigned int &a)
 Sets the CFD fractional time calculated on-board. More...
 
void SetCfdTriggerSourceBit (const bool &a)
 Sets the CFD trigger source. More...
 
void SetChannelNumber (const unsigned int &a)
 Sets the channel number. More...
 
void SetCrateNumber (const unsigned int &a)
 Sets the crate number. More...
 
void SetEnergy (const double &a)
 Sets the energy calculated on-board. More...
 
void SetEnergySums (const std::vector< unsigned int > &a)
 Sets the energy sums calculated on-board. More...
 
void SetEventTimeHigh (const unsigned int &a)
 Sets the upper 16 bits of the event time. More...
 
void SetEventTimeLow (const unsigned int &a)
 Sets the lower 32 bits of the event time. More...
 
void SetExternalTimeHigh (const unsigned int &a)
 Sets the upper 16 bits of the external event time. More...
 
void SetExternalTimeLow (const unsigned int &a)
 Sets the lower 32 bits of the external event time. More...
 
void SetPileup (const bool &a)
 Sets if we had a pileup found on-board. More...
 
void SetQdc (const std::vector< unsigned int > &a)
 Sets the QDCs that were calculated on-board. More...
 
void SetSaturation (const bool &a)
 Sets the saturation flag. More...
 
void SetSlotNumber (const unsigned int &a)
 Sets the slot number. More...
 
void SetTime (const double &a)
 Sets the calculated arrival time of the signal. More...
 
void SetTrace (const std::vector< unsigned int > &a)
 Sets the trace recorded on board. More...
 
void SetVirtualChannel (const bool &a)
 Sets the flag for channels generated on-board. More...
 
void Clear ()
 Clear all variables and set them to some default values. More...
 

Static Public Member Functions

static bool CompareTime (const XiaData *lhs, const XiaData *rhs)
 A method that will compare the times of two XiaData classes this method can be used in conjunction with sorting methods. More...
 
static bool CompareId (const XiaData *lhs, const XiaData *rhs)
 A method that will compare the unique ID of two XiaData classes. More...
 

Private Attributes

bool cfdForceTrig_
 
bool cfdTrigSource_
 CFD was forced to trigger. More...
 
bool isPileup_
 The ADC that the CFD/FPGA synched with. More...
 
bool isSaturated_
 Pile-up flag from Pixie. More...
 
bool isVirtualChannel_
 Saturation flag from Pixie. More...
 
double energy_
 Flagged if generated virtually in Pixie DSP. More...
 
double baseline_
 Raw pixie energy. More...
 
double time_
 Baseline that was recorded with the energy sums. More...
 
unsigned int cfdTime_
 
unsigned int chanNum_
 CFD trigger time. More...
 
unsigned int crateNum_
 Channel number. More...
 
unsigned int eventTimeHigh_
 The Crate number for the channel. More...
 
unsigned int eventTimeLow_
 Upper 16 bits of pixie16 event time. More...
 
unsigned int externalTimeHigh_
 Lower 32 bits of pixie16 event time. More...
 
unsigned int externalTimeLow_
 Upper 16 bits of external time stamp. More...
 
unsigned int slotNum_
 Lower 32 bits of external time stamp. More...
 
std::vector< unsigned int > eSums_
 Slot number. More...
 
std::vector< unsigned int > qdc_
 Energy sums recorded by the module. More...
 
std::vector< unsigned int > trace_
 QDCs recorded by the module. More...
 

Detailed Description

A pixie16 channel event.

All data is grouped together into channels. For each pixie16 channel that fires the energy, time (both trigger time and event time), and trace (if applicable) are obtained. Additional information includes the channels identifier, calibrated energies, trace analysis information. Note that this currently stores raw values internally through pixie word types but returns data values through native C types. This is potentially non-portable.

Definition at line 19 of file XiaData.hpp.

Constructor & Destructor Documentation

§ XiaData()

XiaData::XiaData ( )
inline

Default constructor.

Definition at line 22 of file XiaData.hpp.

Here is the call graph for this function:

§ ~XiaData()

XiaData::~XiaData ( )
inline

Default Destructor.

Definition at line 25 of file XiaData.hpp.

Member Function Documentation

§ Clear()

void XiaData::Clear ( )

Clear all variables and set them to some default values.

Clears all of the variables. The vectors are all cleared using the clear() method. This method is called when the class is first initalizied so that it has some default values for the software to use in the event that they are needed.

Definition at line 11 of file XiaData.cpp.

Here is the caller graph for this function:

§ CompareId()

static bool XiaData::CompareId ( const XiaData lhs,
const XiaData rhs 
)
inlinestatic

A method that will compare the unique ID of two XiaData classes.

Parameters
[in]lhs: A pointer to the left hand side of the comparison
[in]rhs: A pointer to the right hand side of the comparison
Returns
Return true if left hand side has a lower ID than the right hand side.

Definition at line 73 of file XiaData.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ CompareTime()

static bool XiaData::CompareTime ( const XiaData lhs,
const XiaData rhs 
)
inlinestatic

A method that will compare the times of two XiaData classes this method can be used in conjunction with sorting methods.

Parameters
[in]lhs: A pointer to the left hand side of the comparison
[in]rhs: A pointer to the right hand side of the comparison
Returns
True if the time of arrival for right hand side is later than that of the left hand side.

Definition at line 64 of file XiaData.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ GetBaseline()

double XiaData::GetBaseline ( ) const
inline
Returns
The baseline as it was calculated on the module

Definition at line 93 of file XiaData.hpp.

§ GetCfdForcedTriggerBit()

bool XiaData::GetCfdForcedTriggerBit ( ) const
inline
Returns
The status of the CFD Forced Trigger Bit

Definition at line 78 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetCfdFractionalTime()

unsigned int XiaData::GetCfdFractionalTime ( ) const
inline
Returns
The CFD fractional time in clockticks

Definition at line 110 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetCfdTriggerSourceBit()

bool XiaData::GetCfdTriggerSourceBit ( ) const
inline
Returns
The status of the CFD Trigger bit.

Definition at line 81 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetChannelNumber()

unsigned int XiaData::GetChannelNumber ( ) const
inline
Returns
The Channel number that recorded these data

Definition at line 113 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetCrateNumber()

unsigned int XiaData::GetCrateNumber ( ) const
inline
Returns
The crate number that had the module

Definition at line 116 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetEnergy()

double XiaData::GetEnergy ( ) const
inline
Returns
The energy that was calculated on the module

Definition at line 96 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetEnergySums()

std::vector<unsigned int> XiaData::GetEnergySums ( ) const
inline
Returns
The energy sums recorded on the module

Definition at line 149 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetEventTimeHigh()

unsigned int XiaData::GetEventTimeHigh ( ) const
inline
Returns
The upper 16 bits of the event time

Definition at line 119 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetEventTimeLow()

unsigned int XiaData::GetEventTimeLow ( ) const
inline
Returns
The lower 32 bits of the event time

Definition at line 122 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetExternalTimeHigh()

unsigned int XiaData::GetExternalTimeHigh ( ) const
inline
Returns
The upper 16 bits of the external time stamp provided to the module via the front panel

Definition at line 126 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetExternalTimeLow()

unsigned int XiaData::GetExternalTimeLow ( ) const
inline
Returns
The lower 32 bits of the external time stamp provided to the module via the front panel

Definition at line 130 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetId()

unsigned int XiaData::GetId ( ) const
inline
Returns
The unique ID of the channel. We can have a maximum of 208 channels in a crate, the first module (#0) is always in the second slot of the crate, and we always have 16 channels

Definition at line 136 of file XiaData.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ GetModuleNumber()

unsigned int XiaData::GetModuleNumber ( ) const
inline
Returns
the module number

Definition at line 141 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetQdc()

std::vector<unsigned int> XiaData::GetQdc ( ) const
inline
Returns
the QDC recorded on the module

Definition at line 152 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetSlotNumber()

unsigned int XiaData::GetSlotNumber ( ) const
inline
Returns
The slot that the module was in

Definition at line 146 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetTime()

double XiaData::GetTime ( ) const
inline

Method that will return the time for the channel. The actual time is a 48-bit number. We multiply 2^32 by the eventTimeHigh_ so that we account for the missing upper 16 bits of the number. The cfdTime_ contains all of the fractional time information, and so we divide by 2^16 here. Verify that this method works properly for all of the different module types and firmwares. It doesn't and this value simply needs to be set explicitly by the Decoder.

Returns
The time for the channel.

Definition at line 107 of file XiaData.hpp.

Here is the caller graph for this function:

§ GetTrace()

std::vector<unsigned int> XiaData::GetTrace ( ) const
inline
Returns
The trace that was sampled on the module

Definition at line 155 of file XiaData.hpp.

Here is the caller graph for this function:

§ IsPileup()

bool XiaData::IsPileup ( ) const
inline
Returns
True if we had a pileup detected on the module

Definition at line 84 of file XiaData.hpp.

Here is the caller graph for this function:

§ IsSaturated()

bool XiaData::IsSaturated ( ) const
inline
Returns
True if the trace was flagged as a pileup

Definition at line 87 of file XiaData.hpp.

Here is the caller graph for this function:

§ IsVirtualChannel()

bool XiaData::IsVirtualChannel ( ) const
inline
Returns
True if this channel was generated on the module

Definition at line 90 of file XiaData.hpp.

§ operator!=()

bool XiaData::operator!= ( const XiaData rhs) const
inline

The conjugate of the equality operator.

Parameters
[in]rhs: The right hand side for the comparison
Returns
True if the two are not equal.

Definition at line 38 of file XiaData.hpp.

Here is the call graph for this function:

§ operator<()

bool XiaData::operator< ( const XiaData rhs) const
inline

The less than operator that compares if the time of the current class is less than the time of the comparison class.

Parameters
[in]rhs: The right hand side for the comparison
Returns
True if this instance arrived earlier than the right hand side.

Definition at line 46 of file XiaData.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ operator==()

bool XiaData::operator== ( const XiaData rhs) const
inline

Equality operator that compares checks if we have the same channel (i.e. the ID and Time are identical)

Parameters
[in]rhs: The right hand side of the comparison
Returns
True if the two XiaData classes are equal.

Definition at line 31 of file XiaData.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

§ operator>()

bool XiaData::operator> ( const XiaData rhs) const
inline

The conjugate of the less than operator.

Parameters
[in]rhs: The right hand side for the comparison
Returns
True if the right hand side arrived ealier than the left hand side.

Definition at line 54 of file XiaData.hpp.

Here is the call graph for this function:

§ SetBaseline()

void XiaData::SetBaseline ( const double &  a)
inline

Sets the baseline recorded on the module if the energy sums were recorded in the data stream.

Parameters
[in]a: The value to set

Definition at line 160 of file XiaData.hpp.

§ SetCfdForcedTriggerBit()

void XiaData::SetCfdForcedTriggerBit ( const bool &  a)
inline

This value is set to true if the CFD was forced to trigger.

Parameters
[in]a: The value to set

Definition at line 164 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetCfdFractionalTime()

void XiaData::SetCfdFractionalTime ( const unsigned int &  a)
inline

Sets the CFD fractional time calculated on-board.

Parameters
[in]a: The value to set

Definition at line 168 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetCfdTriggerSourceBit()

void XiaData::SetCfdTriggerSourceBit ( const bool &  a)
inline

Sets the CFD trigger source.

Parameters
[in]a: The value to set

Definition at line 172 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetChannelNumber()

void XiaData::SetChannelNumber ( const unsigned int &  a)
inline

Sets the channel number.

Parameters
[in]a: The value to set

Definition at line 176 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetCrateNumber()

void XiaData::SetCrateNumber ( const unsigned int &  a)
inline

Sets the crate number.

Parameters
[in]a: The value to set

Definition at line 180 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetEnergy()

void XiaData::SetEnergy ( const double &  a)
inline

Sets the energy calculated on-board.

Parameters
[in]a: The value to set

Definition at line 184 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetEnergySums()

void XiaData::SetEnergySums ( const std::vector< unsigned int > &  a)
inline

Sets the energy sums calculated on-board.

Parameters
[in]a: The value to set

Definition at line 188 of file XiaData.hpp.

§ SetEventTimeHigh()

void XiaData::SetEventTimeHigh ( const unsigned int &  a)
inline

Sets the upper 16 bits of the event time.

Parameters
[in]a: The value to set

Definition at line 192 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetEventTimeLow()

void XiaData::SetEventTimeLow ( const unsigned int &  a)
inline

Sets the lower 32 bits of the event time.

Parameters
[in]a: The value to set

Definition at line 196 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetExternalTimeHigh()

void XiaData::SetExternalTimeHigh ( const unsigned int &  a)
inline

Sets the upper 16 bits of the external event time.

Parameters
[in]a: The value to set

Definition at line 200 of file XiaData.hpp.

§ SetExternalTimeLow()

void XiaData::SetExternalTimeLow ( const unsigned int &  a)
inline

Sets the lower 32 bits of the external event time.

Parameters
[in]a: The value to set

Definition at line 204 of file XiaData.hpp.

§ SetPileup()

void XiaData::SetPileup ( const bool &  a)
inline

Sets if we had a pileup found on-board.

Parameters
[in]a: The value to set

Definition at line 208 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetQdc()

void XiaData::SetQdc ( const std::vector< unsigned int > &  a)
inline

Sets the QDCs that were calculated on-board.

Parameters
[in]a: The value to set

Definition at line 212 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetSaturation()

void XiaData::SetSaturation ( const bool &  a)
inline

Sets the saturation flag.

Parameters
[in]a: True if we found a saturation on board

Definition at line 216 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetSlotNumber()

void XiaData::SetSlotNumber ( const unsigned int &  a)
inline

Sets the slot number.

Parameters
[in]a: The value to set

Definition at line 220 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetTime()

void XiaData::SetTime ( const double &  a)
inline

Sets the calculated arrival time of the signal.

Parameters
[in]a: The value to set

Definition at line 224 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetTrace()

void XiaData::SetTrace ( const std::vector< unsigned int > &  a)
inline

Sets the trace recorded on board.

Parameters
[in]a: The value to set

Definition at line 228 of file XiaData.hpp.

Here is the caller graph for this function:

§ SetVirtualChannel()

void XiaData::SetVirtualChannel ( const bool &  a)
inline

Sets the flag for channels generated on-board.

Parameters
[in]a: True if we this channel was generated on-board

Definition at line 232 of file XiaData.hpp.

Here is the call graph for this function:

Field Documentation

§ baseline_

double XiaData::baseline_
private

Raw pixie energy.

Definition at line 245 of file XiaData.hpp.

§ cfdForceTrig_

bool XiaData::cfdForceTrig_
private

Definition at line 238 of file XiaData.hpp.

§ cfdTime_

unsigned int XiaData::cfdTime_
private

Definition at line 248 of file XiaData.hpp.

§ cfdTrigSource_

bool XiaData::cfdTrigSource_
private

CFD was forced to trigger.

Definition at line 239 of file XiaData.hpp.

§ chanNum_

unsigned int XiaData::chanNum_
private

CFD trigger time.

Definition at line 249 of file XiaData.hpp.

§ crateNum_

unsigned int XiaData::crateNum_
private

Channel number.

Definition at line 250 of file XiaData.hpp.

§ energy_

double XiaData::energy_
private

Flagged if generated virtually in Pixie DSP.

Definition at line 244 of file XiaData.hpp.

§ eSums_

std::vector<unsigned int> XiaData::eSums_
private

Slot number.

Definition at line 257 of file XiaData.hpp.

§ eventTimeHigh_

unsigned int XiaData::eventTimeHigh_
private

The Crate number for the channel.

Definition at line 251 of file XiaData.hpp.

§ eventTimeLow_

unsigned int XiaData::eventTimeLow_
private

Upper 16 bits of pixie16 event time.

Definition at line 252 of file XiaData.hpp.

§ externalTimeHigh_

unsigned int XiaData::externalTimeHigh_
private

Lower 32 bits of pixie16 event time.

Definition at line 253 of file XiaData.hpp.

§ externalTimeLow_

unsigned int XiaData::externalTimeLow_
private

Upper 16 bits of external time stamp.

Definition at line 254 of file XiaData.hpp.

§ isPileup_

bool XiaData::isPileup_
private

The ADC that the CFD/FPGA synched with.

Definition at line 240 of file XiaData.hpp.

§ isSaturated_

bool XiaData::isSaturated_
private

Pile-up flag from Pixie.

Definition at line 241 of file XiaData.hpp.

§ isVirtualChannel_

bool XiaData::isVirtualChannel_
private

Saturation flag from Pixie.

Definition at line 242 of file XiaData.hpp.

§ qdc_

std::vector<unsigned int> XiaData::qdc_
private

Energy sums recorded by the module.

Definition at line 258 of file XiaData.hpp.

§ slotNum_

unsigned int XiaData::slotNum_
private

Lower 32 bits of external time stamp.

Definition at line 255 of file XiaData.hpp.

§ time_

double XiaData::time_
private

Baseline that was recorded with the energy sums.

Definition at line 246 of file XiaData.hpp.

§ trace_

std::vector<unsigned int> XiaData::trace_
private

QDCs recorded by the module.

Definition at line 259 of file XiaData.hpp.


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