Project
Loading...
Searching...
No Matches
o2::phos::Clusterer Class Reference

#include <Clusterer.h>

Public Member Functions

 Clusterer ()=default
 
 ~Clusterer ()=default
 
void initialize ()
 
void process (gsl::span< const Digit > digits, gsl::span< const TriggerRecord > dtr, const o2::dataformats::MCTruthContainer< MCLabel > *dmc, std::vector< Cluster > &clusters, std::vector< CluElement > &cluel, std::vector< TriggerRecord > &rigRec, o2::dataformats::MCTruthContainer< MCLabel > &cluMC)
 
void processCells (gsl::span< const Cell > digits, gsl::span< const TriggerRecord > dtr, const o2::dataformats::MCTruthContainer< MCLabel > *dmc, std::vector< Cluster > &clusters, std::vector< CluElement > &cluel, std::vector< TriggerRecord > &rigRec, o2::dataformats::MCTruthContainer< MCLabel > &cluMC)
 
void makeClusters (std::vector< Cluster > &clusters, std::vector< o2::phos::CluElement > &cluel)
 
void setBadMap (const o2::phos::BadChannelsMap *m)
 
void setCalibration (const o2::phos::CalibParams *c)
 
void setL1phase (int phase)
 

Protected Member Functions

float calibrate (float amp, short absId, bool isHighGain)
 
float calibrateT (float time, short absId, bool isHighGain, int bc)
 
bool isBadChannel (short absId)
 
char getNumberOfLocalMax (Cluster &clu, std::vector< CluElement > &cluel)
 
void evalAll (Cluster &clu, std::vector< CluElement > &cluel) const
 
void evalLabels (std::vector< Cluster > &clusters, std::vector< CluElement > &cluel, const o2::dataformats::MCTruthContainer< MCLabel > *dmc, o2::dataformats::MCTruthContainer< MCLabel > &cluMC)
 
double showerShape (double r2, double &deriv)
 
void makeUnfolding (Cluster &clu, std::vector< Cluster > &clusters, std::vector< o2::phos::CluElement > &cluel)
 
void unfoldOneCluster (Cluster &iniClu, char nMax, std::vector< Cluster > &clusters, std::vector< CluElement > &cluelements)
 

Protected Attributes

bool mProcessMC = false
 
int miCellLabel = 0
 
bool mFullCluOutput = false
 Write output full of reduced (no contributed digits) clusters.
 
bool mSkipL1phase = true
 
int mL1phase = 0
 Do not correct for L1 phase.
 
GeometrymPHOSGeom = nullptr
 packed shifts for 14 ddls
 
const CalibParamsmCalibParams = nullptr
 ! PHOS geometry
 
const BadChannelsMapmBadMap = nullptr
 ! Calibration coefficients, Clusterizer not owner
 
std::vector< CluElementmCluEl
 ! Bad map, Clusterizer not owner
 
std::vector< DigitmTrigger
 internal vector of clusters
 
int mFirstElememtInEvent
 Range of digits from one event.
 
int mLastElementInEvent
 Range of digits from one event.
 
std::vector< float > mProp
 proportion of clusters in the current digit
 
std::array< float, NLOCMAXmxMax
 current maximum coordinate
 
std::array< float, NLOCMAXmzMax
 in the unfolding procedure
 
std::array< float, NLOCMAXmeMax
 currecnt amplitude in unfoding
 
std::array< float, NLOCMAXmxMaxPrev
 coordunates at previous step
 
std::array< float, NLOCMAXmzMaxPrev
 coordunates at previous step
 
std::array< float, NLOCMAXmdx
 step on current minimization iteration
 
std::array< float, NLOCMAXmdz
 step on current minimization iteration
 
std::array< float, NLOCMAXmdxprev
 step on previoud minimization iteration
 
std::array< float, NLOCMAXmdzprev
 step on previoud minimization iteration
 
std::array< double, NLOCMAXmA
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmxB
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmzB
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmfijx
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmfijz
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmfijr
 transient variable for derivative calculation
 
std::array< double, NLOCMAXmfij
 transient variable for derivative calculation
 
std::vector< bool > mIsLocalMax
 transient array for local max finding
 
std::array< int, NLOCMAXmMaxAt
 indexes of local maxima
 

Static Protected Attributes

static constexpr short NLOCMAX = 30
 

Detailed Description

Definition at line 31 of file Clusterer.h.

Constructor & Destructor Documentation

◆ Clusterer()

o2::phos::Clusterer::Clusterer ( )
default

◆ ~Clusterer()

o2::phos::Clusterer::~Clusterer ( )
default

Member Function Documentation

◆ calibrate()

float o2::phos::Clusterer::calibrate ( float  amp,
short  absId,
bool  isHighGain 
)
inlineprotected

Definition at line 59 of file Clusterer.h.

◆ calibrateT()

float o2::phos::Clusterer::calibrateT ( float  time,
short  absId,
bool  isHighGain,
int  bc 
)
inlineprotected

Definition at line 68 of file Clusterer.h.

◆ evalAll()

void Clusterer::evalAll ( Cluster clu,
std::vector< CluElement > &  cluel 
) const
protected

Definition at line 509 of file Clusterer.cxx.

◆ evalLabels()

void Clusterer::evalLabels ( std::vector< Cluster > &  clusters,
std::vector< CluElement > &  cluel,
const o2::dataformats::MCTruthContainer< MCLabel > *  dmc,
o2::dataformats::MCTruthContainer< MCLabel > &  cluMC 
)
protected

Definition at line 434 of file Clusterer.cxx.

◆ getNumberOfLocalMax()

char Clusterer::getNumberOfLocalMax ( Cluster clu,
std::vector< CluElement > &  cluel 
)
protected

Definition at line 638 of file Clusterer.cxx.

◆ initialize()

void Clusterer::initialize ( )

Definition at line 29 of file Clusterer.cxx.

◆ isBadChannel()

bool o2::phos::Clusterer::isBadChannel ( short  absId)
inlineprotected

Definition at line 91 of file Clusterer.h.

◆ makeClusters()

void Clusterer::makeClusters ( std::vector< Cluster > &  clusters,
std::vector< o2::phos::CluElement > &  cluel 
)

Definition at line 152 of file Clusterer.cxx.

◆ makeUnfolding()

void Clusterer::makeUnfolding ( Cluster clu,
std::vector< Cluster > &  clusters,
std::vector< o2::phos::CluElement > &  cluel 
)
protected

Definition at line 231 of file Clusterer.cxx.

◆ process()

void Clusterer::process ( gsl::span< const Digit digits,
gsl::span< const TriggerRecord dtr,
const o2::dataformats::MCTruthContainer< MCLabel > *  dmc,
std::vector< Cluster > &  clusters,
std::vector< CluElement > &  cluel,
std::vector< TriggerRecord > &  rigRec,
o2::dataformats::MCTruthContainer< MCLabel > &  cluMC 
)

Definition at line 50 of file Clusterer.cxx.

◆ processCells()

void Clusterer::processCells ( gsl::span< const Cell digits,
gsl::span< const TriggerRecord dtr,
const o2::dataformats::MCTruthContainer< MCLabel > *  dmc,
std::vector< Cluster > &  clusters,
std::vector< CluElement > &  cluel,
std::vector< TriggerRecord > &  rigRec,
o2::dataformats::MCTruthContainer< MCLabel > &  cluMC 
)

Definition at line 103 of file Clusterer.cxx.

◆ setBadMap()

void o2::phos::Clusterer::setBadMap ( const o2::phos::BadChannelsMap m)
inline

Definition at line 49 of file Clusterer.h.

◆ setCalibration()

void o2::phos::Clusterer::setCalibration ( const o2::phos::CalibParams c)
inline

Definition at line 50 of file Clusterer.h.

◆ setL1phase()

void o2::phos::Clusterer::setL1phase ( int  phase)
inline

Definition at line 51 of file Clusterer.h.

◆ showerShape()

double Clusterer::showerShape ( double  r2,
double &  deriv 
)
protected

Definition at line 487 of file Clusterer.cxx.

◆ unfoldOneCluster()

void Clusterer::unfoldOneCluster ( Cluster iniClu,
char  nMax,
std::vector< Cluster > &  clusters,
std::vector< CluElement > &  cluelements 
)
protected

Definition at line 253 of file Clusterer.cxx.

Member Data Documentation

◆ mA

std::array<double, NLOCMAX> o2::phos::Clusterer::mA
protected

transient variable for derivative calculation

Definition at line 130 of file Clusterer.h.

◆ mBadMap

const BadChannelsMap* o2::phos::Clusterer::mBadMap = nullptr
protected

! Calibration coefficients, Clusterizer not owner

Definition at line 113 of file Clusterer.h.

◆ mCalibParams

const CalibParams* o2::phos::Clusterer::mCalibParams = nullptr
protected

! PHOS geometry

Definition at line 112 of file Clusterer.h.

◆ mCluEl

std::vector<CluElement> o2::phos::Clusterer::mCluEl
protected

! Bad map, Clusterizer not owner

internal vector of clusters

Definition at line 115 of file Clusterer.h.

◆ mdx

std::array<float, NLOCMAX> o2::phos::Clusterer::mdx
protected

step on current minimization iteration

Definition at line 126 of file Clusterer.h.

◆ mdxprev

std::array<float, NLOCMAX> o2::phos::Clusterer::mdxprev
protected

step on previoud minimization iteration

Definition at line 128 of file Clusterer.h.

◆ mdz

std::array<float, NLOCMAX> o2::phos::Clusterer::mdz
protected

step on current minimization iteration

Definition at line 127 of file Clusterer.h.

◆ mdzprev

std::array<float, NLOCMAX> o2::phos::Clusterer::mdzprev
protected

step on previoud minimization iteration

Definition at line 129 of file Clusterer.h.

◆ meMax

std::array<float, NLOCMAX> o2::phos::Clusterer::meMax
protected

currecnt amplitude in unfoding

Definition at line 123 of file Clusterer.h.

◆ mfij

std::array<double, NLOCMAX> o2::phos::Clusterer::mfij
protected

transient variable for derivative calculation

Definition at line 136 of file Clusterer.h.

◆ mfijr

std::array<double, NLOCMAX> o2::phos::Clusterer::mfijr
protected

transient variable for derivative calculation

Definition at line 135 of file Clusterer.h.

◆ mfijx

std::array<double, NLOCMAX> o2::phos::Clusterer::mfijx
protected

transient variable for derivative calculation

Definition at line 133 of file Clusterer.h.

◆ mfijz

std::array<double, NLOCMAX> o2::phos::Clusterer::mfijz
protected

transient variable for derivative calculation

Definition at line 134 of file Clusterer.h.

◆ mFirstElememtInEvent

int o2::phos::Clusterer::mFirstElememtInEvent
protected

Range of digits from one event.

Definition at line 117 of file Clusterer.h.

◆ mFullCluOutput

bool o2::phos::Clusterer::mFullCluOutput = false
protected

Write output full of reduced (no contributed digits) clusters.

Definition at line 108 of file Clusterer.h.

◆ miCellLabel

int o2::phos::Clusterer::miCellLabel = 0
protected

Definition at line 107 of file Clusterer.h.

◆ mIsLocalMax

std::vector<bool> o2::phos::Clusterer::mIsLocalMax
protected

transient array for local max finding

Definition at line 137 of file Clusterer.h.

◆ mL1phase

int o2::phos::Clusterer::mL1phase = 0
protected

Do not correct for L1 phase.

Definition at line 110 of file Clusterer.h.

◆ mLastElementInEvent

int o2::phos::Clusterer::mLastElementInEvent
protected

Range of digits from one event.

Definition at line 118 of file Clusterer.h.

◆ mMaxAt

std::array<int, NLOCMAX> o2::phos::Clusterer::mMaxAt
protected

indexes of local maxima

Definition at line 138 of file Clusterer.h.

◆ mPHOSGeom

Geometry* o2::phos::Clusterer::mPHOSGeom = nullptr
protected

packed shifts for 14 ddls

Definition at line 111 of file Clusterer.h.

◆ mProcessMC

bool o2::phos::Clusterer::mProcessMC = false
protected

Definition at line 106 of file Clusterer.h.

◆ mProp

std::vector<float> o2::phos::Clusterer::mProp
protected

proportion of clusters in the current digit

Definition at line 120 of file Clusterer.h.

◆ mSkipL1phase

bool o2::phos::Clusterer::mSkipL1phase = true
protected

Definition at line 109 of file Clusterer.h.

◆ mTrigger

std::vector<Digit> o2::phos::Clusterer::mTrigger
protected

internal vector of clusters

Definition at line 116 of file Clusterer.h.

◆ mxB

std::array<double, NLOCMAX> o2::phos::Clusterer::mxB
protected

transient variable for derivative calculation

Definition at line 131 of file Clusterer.h.

◆ mxMax

std::array<float, NLOCMAX> o2::phos::Clusterer::mxMax
protected

current maximum coordinate

Definition at line 121 of file Clusterer.h.

◆ mxMaxPrev

std::array<float, NLOCMAX> o2::phos::Clusterer::mxMaxPrev
protected

coordunates at previous step

Definition at line 124 of file Clusterer.h.

◆ mzB

std::array<double, NLOCMAX> o2::phos::Clusterer::mzB
protected

transient variable for derivative calculation

Definition at line 132 of file Clusterer.h.

◆ mzMax

std::array<float, NLOCMAX> o2::phos::Clusterer::mzMax
protected

in the unfolding procedure

Definition at line 122 of file Clusterer.h.

◆ mzMaxPrev

std::array<float, NLOCMAX> o2::phos::Clusterer::mzMaxPrev
protected

coordunates at previous step

Definition at line 125 of file Clusterer.h.

◆ NLOCMAX

constexpr short o2::phos::Clusterer::NLOCMAX = 30
staticconstexprprotected

Definition at line 105 of file Clusterer.h.


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