Struct TofEventSummary

Source
pub struct TofEventSummary {
Show 23 fields pub status: EventStatus, pub version: ProtocolVersion, pub quality: u8, pub trigger_sources: u16, pub n_trigger_paddles: u8, pub event_id: u32, pub run_id: u16, pub timestamp32: u32, pub timestamp16: u16, pub primary_beta: u16, pub primary_charge: u16, pub drs_dead_lost_hits: u16, pub dsi_j_mask: u32, pub channel_mask: Vec<u16>, pub mtb_link_mask: u64, pub hits: Vec<TofHit>, pub n_hits_umb: u8, pub n_hits_cbe: u8, pub n_hits_cor: u8, pub tot_edep_umb: f32, pub tot_edep_cbe: f32, pub tot_edep_cor: f32, pub paddles_set: bool,
}
Expand description

De-facto the main event class

TofEventSummary provides a list of extracted hits from the ReadoutBoards as well as information about the trigger system.

Fields§

§status: EventStatus§version: ProtocolVersion§quality: u8§trigger_sources: u16§n_trigger_paddles: u8

the number of triggered paddles coming from the MTB directly. This might NOT be the same as the number of hits!

§event_id: u32§run_id: u16

NEW - uses the space for primary_beta, which we won’t have anyway

§timestamp32: u32§timestamp16: u16§primary_beta: u16

DEPRECATED, won’t get serialized reconstructed primary beta

§primary_charge: u16

DEPRECATED, won’t get serialized reconstructed primary charge

§drs_dead_lost_hits: u16

scalar number of hits missed in this event due to DRS on the RB being busy

§dsi_j_mask: u32§channel_mask: Vec<u16>§mtb_link_mask: u64§hits: Vec<TofHit>§n_hits_umb: u8§n_hits_cbe: u8§n_hits_cor: u8§tot_edep_umb: f32§tot_edep_cbe: f32§tot_edep_cor: f32§paddles_set: bool

Implementations§

Source§

impl TofEventSummary

Source

pub fn new() -> Self

Source

pub fn set_timing_offsets(&mut self, offsets: &HashMap<u8, f32>)

Set timing offsets to the event’s hits

§Arguments:
  • offsets : a hashmap paddle id -> timing offset
Source

pub fn lightspeed_cleaning(&mut self, t_err: f32) -> (Vec<u8>, Vec<f32>)

Remove hits from the hitseries which can not be caused by the same particle, which means that for these two specific hits beta with respect to the first hit in the event is larger than one That this works, first hits need to be “normalized” by calling normalize_hit_times

§Return:
  • removed paddle ids, twindows
Source

pub fn remove_non_causal_hits(&mut self) -> Vec<u8>

Non causal hits have hit times in ends A and be which are not compatible with the speed of light in the paddle, that is, the hit gets registered too early. If we look at a plot of the reconstructed position, these hits would correspond to positions outside of the paddle.

#Returns: A vector of paddle ids with removed hits

Source

pub fn normalize_hit_times(&mut self)

Source

pub fn set_paddles(&mut self, paddles: &HashMap<u8, Paddle>)

Source

pub fn get_pointcloud(&self) -> Option<Vec<(f32, f32, f32, f32, f32)>>

Get the pointcloud of this event, sorted by time

§Returns

(f32, f32, f32, f32, f32) : (x,y,z,t,edep)

Source

pub fn get_missing_paddles_hg(&self, pid_map: &DsiJChPidMapping) -> Vec<u8>

Compare the MasterTriggerEvent::trigger_hits with the actual hits to determine from which paddles we should have received HG hits (from waveforms) but we did not get them

WARNING: The current implementation of this is rather slow and not fit for production use FIXME - rewrite as a closure

Source

pub fn get_triggered_paddles(&self, pid_map: &DsiJChPidMapping) -> Vec<u8>

Get the triggered paddle ids

Warning, this might be a bit slow

Get the RB link IDs according to the mask

Source

pub fn get_trigger_hits(&self) -> Vec<(u8, u8, (u8, u8), LTBThreshold)>

Get the combination of triggered DSI/J/CH on the MTB which formed the trigger. This does not include further hits which fall into the integration window. For those, se rb_link_mask

The returned values follow the TOF convention to start with 1, so that we can use them to look up LTB ids in the db.

§Returns

Vec<(hit)> where hit is (DSI, J, CH)

Source

pub fn get_trigger_sources(&self) -> Vec<TriggerType>

Get the trigger sources from trigger source byte

Source

pub fn get_timestamp48(&self) -> u64

Source

pub fn get_edep_umbrella(&self) -> f32

Ttotal energy depostion in the TOF - Umbrella

Utilizes Philip’s formula based on peak height

Source

pub fn get_edep_cube(&self) -> f32

Ttotal energy depostion in the TOF - Umbrella

Utilizes Philip’s formula based on peak height

Source

pub fn get_edep_cortina(&self) -> f32

Ttotal energy depostion in the Cortina

Utilizes Philip’s formula based on peak height

Source

pub fn get_edep(&self) -> f32

Ttotal energy depostion in the complete TOF

Utilizes Philip’s formula based on peak height

Source

pub fn get_nhits_umb(&self) -> usize

Source

pub fn get_nhits_cbe(&self) -> usize

Source

pub fn get_nhits_cor(&self) -> usize

Source

pub fn get_nhits(&self) -> usize

Source

pub fn from_tofeventpacket(pack: &TofPacket) -> Result<Self, SerializationError>

Allows to get TofEventSummary from a packet of type TofEvent. This will dismiss all the waveforms and RBEvents

Trait Implementations§

Source§

impl Clone for TofEventSummary

Source§

fn clone(&self) -> TofEventSummary

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TofEventSummary

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TofEventSummary

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Display for TofEventSummary

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&TofEventSummary> for MasterTriggerEvent

Source§

fn from(tes: &TofEventSummary) -> Self

Converts to this type from the input type.
Source§

impl From<&TofEventSummary> for TofPacket

Source§

fn from(tsum: &TofEventSummary) -> Self

Converts to this type from the input type.
Source§

impl FromRandom for TofEventSummary

Source§

fn from_random() -> Self

Source§

impl Packable for TofEventSummary

Source§

const PACKET_TYPE: PacketType = PacketType::TofEventSummary

Source§

fn pack(&self) -> TofPacket
where Self: Serialization,

Wrap myself in a TofPacket
Source§

impl PartialEq for TofEventSummary

Source§

fn eq(&self, other: &TofEventSummary) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialization for TofEventSummary

Source§

const HEAD: u16 = 43_690u16

Source§

const TAIL: u16 = 21_845u16

Source§

fn to_bytestream(&self) -> Vec<u8>

Encode a serializable to a bytestream
Source§

fn from_bytestream( stream: &Vec<u8>, pos: &mut usize, ) -> Result<Self, SerializationError>

Decode a serializable from a bytestream
Source§

const SIZE: usize = 0usize

The SIZE is the size of the serialized bytestream INCLUDING 4 bytes for head and tail bytes. In case the struct does NOT HAVE a fixed size, SIZE will be 0 (so default value of the trait
Source§

fn verify_fixed( stream: &Vec<u8>, pos: &mut usize, ) -> Result<(), SerializationError>

Verify that the serialized representation of the struct has the correct size, including header + footer. Read more
Source§

fn from_tofpacket(packet: &TofPacket) -> Result<Self, SerializationError>
where Self: Sized,

Decode a serializable directly from a TofPacket
Source§

fn from_slice( _slice: &[u8], _start_pos: usize, ) -> Result<Self, SerializationError>
where Self: Sized,

Source§

fn to_slice(&self) -> &[u8]
where Self: Sized,

Construct byte slice out of self. Read more
Source§

impl StructuralPartialEq for TofEventSummary

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoSql for T

Source§

fn into_sql<T>(self) -> Self::Expression

Convert self to an expression for Diesel’s query builder. Read more
Source§

fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V