Project
Loading...
Searching...
No Matches
o2::trd::KrClusterFinder Class Reference

#include <KrClusterFinder.h>

Classes

struct  LandauChi2Functor
 

Public Member Functions

 KrClusterFinder ()=default
 
 KrClusterFinder (const KrClusterFinder &)=delete
 
 ~KrClusterFinder ()=default
 
void init ()
 Initialization.
 
void reset ()
 
void setInput (const gsl::span< const Digit > &digitsIn, const gsl::span< const TriggerRecord > &trigRecIn)
 Provide digits and trigger records as input.
 
void findClusters ()
 
double getRms (const std::vector< uint64_t > &adcIndices, int itTrunc, double nRmsTrunc, int minAdc, double &rmsTime, uint32_t &sumAdc) const
 Calculate some statistics for the given cluster constituent ADC values.
 
const std::vector< KrCluster > & getKrClusters () const
 Output.
 
const std::vector< KrClusterTriggerRecord > & getKrTrigRecs () const
 

Detailed Description

Definition at line 38 of file KrClusterFinder.h.

Constructor & Destructor Documentation

◆ KrClusterFinder() [1/2]

o2::trd::KrClusterFinder::KrClusterFinder ( )
default

◆ KrClusterFinder() [2/2]

o2::trd::KrClusterFinder::KrClusterFinder ( const KrClusterFinder )
delete

◆ ~KrClusterFinder()

o2::trd::KrClusterFinder::~KrClusterFinder ( )
default

Member Function Documentation

◆ findClusters()

void KrClusterFinder::findClusters ( )

Find clusters in the digit ADC data. We start with finding the maximum ADC value in a chamber. We store the ADC value, the time bin within the corresponding digit and the pad row and pad column of that digit. Afterwards we cluster around that maximum, discarding digits more than 1 pad row or more than 2 pad columns away. In time bin direction there are no limits for other ADC values to contribute to the cluster. Each ADC value is added maximum to a single cluster: ADCs connected to one cluster are flagged as used and disregarded in the following iterations for the given detector. Also ADC below a threshold (mMinAdcClContrib) are ignored. The cluster size is defined in three dimensions (row, column, time bin), for each dimension from the lowermost constituent ADC to the uppermost constituent ADC. Different ADC sums are calculated from the constituent ADCs. Afterwards the main Krypton peak is identified (maxAdcA and maxTbA) and also we try to find the second Kr peak (maxAdcB, maxTbB). Quality checks indicate the validity of those two maxima (shape, ordering, ADC size) A Landau fit to the ADC vs time bins values for a cluster provide the ADC sums for the two Kr peaks. The clusters don't necessarily need to fullfill all quality criteria (e.g. the Landau fit may fail). But these clusters are stored anyway, as they can be filtered out later at the analysis stage.

Definition at line 105 of file KrClusterFinder.cxx.

◆ getKrClusters()

const std::vector< KrCluster > & o2::trd::KrClusterFinder::getKrClusters ( ) const
inline

Output.

Definition at line 83 of file KrClusterFinder.h.

◆ getKrTrigRecs()

const std::vector< KrClusterTriggerRecord > & o2::trd::KrClusterFinder::getKrTrigRecs ( ) const
inline

Definition at line 84 of file KrClusterFinder.h.

◆ getRms()

double KrClusterFinder::getRms ( const std::vector< uint64_t > &  adcIndices,
int  itTrunc,
double  nRmsTrunc,
int  minAdc,
double &  rmsTime,
uint32_t &  sumAdc 
) const

Calculate some statistics for the given cluster constituent ADC values.

Definition at line 43 of file KrClusterFinder.cxx.

◆ init()

void KrClusterFinder::init ( )

Initialization.

Definition at line 83 of file KrClusterFinder.cxx.

◆ reset()

void KrClusterFinder::reset ( )

Definition at line 93 of file KrClusterFinder.cxx.

◆ setInput()

void KrClusterFinder::setInput ( const gsl::span< const Digit > &  digitsIn,
const gsl::span< const TriggerRecord > &  trigRecIn 
)

Provide digits and trigger records as input.

Definition at line 99 of file KrClusterFinder.cxx.


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