CbmRoot
Loading...
Searching...
No Matches
CbmStsChannelQA Class Reference

FairTask for StsChannelQa. More...

#include <CbmStsChannelQA.h>

Inheritance diagram for CbmStsChannelQA:
[legend]
Collaboration diagram for CbmStsChannelQA:
[legend]

Public Member Functions

 CbmStsChannelQA ()=default
 
 CbmStsChannelQA (int dead_threshold)
 Constructor with threshold for inactive channels.
 
 CbmStsChannelQA (int dead_threshold, double noise_threshold, const std::optional< std::pair< size_t, size_t > >)
 Constructor with thresholds for dead and noisy channels. Additionally set thresholds to define OFF | Rise-Fall | ON spill status base on RefDet digi rate.
 
 ~CbmStsChannelQA ()=default
 
InitStatus Init ()
 
void Exec (Option_t *)
 
void Finish ()
 
void SetReportLevel (int lvl)
 
void SetCutMap (CbmCutMap *map)
 Set the cut map for analysis.
 
void UserAlignment (const std::map< int32_t, std::vector< double > > &user_mat)
 User defined sensor translations.
 
virtual void DrawResults ()
 Virtual function to draw analysis results.
 

Protected Member Functions

void LoadSetup ()
 Load the STS setup and fill the map with XYZ boundaries for each STS setup element. It maps the first z strip for each module depending on the size of the sensor.
 
void SaveToFile ()
 It write all mapped objects to the FairRunAna sink file.
 
 ClassDef (CbmStsAnaBase, 1)
 

Protected Attributes

uint entry_ {0}
 
std::unique_ptr< TFile > fReportFile
 
std::unordered_set< int32_t > fAddressBook
 
std::map< std::string, std::unique_ptr< TGraphErrors > > fG1D
 
std::map< std::string, std::unique_ptr< TH1D > > fH1D
 
std::map< std::string, std::unique_ptr< TH2D > > fH2D
 
std::map< std::string, std::shared_ptr< TH2D > > fH2DShared
 
std::map< std::string, std::unique_ptr< TCanvas > > fCanvas
 
int nb_sts_station_ {8}
 
std::unordered_map< int32_t, std::vector< double > > fStsGeoInfo
 
std::map< int32_t, std::vector< double > > fUserAlignment
 
std::unordered_map< int32_t, int > fFirstZStrip
 
CbmCutMapfAnalysisCuts {nullptr}
 
int fRunId {-1}
 

Private Member Functions

void ResetLastTime ()
 
void BookHistograms (int32_t)
 Book histograms.
 
void CheckDeadChannels ()
 Check for dead channels. Fills fDeadChannelList map.
 
void CheckNoisyChannels ()
 Check for dead channels. Fills fNoisyChannelList map.
 
void GenerateReport ()
 
 ClassDef (CbmStsChannelQA, 1)
 

Private Attributes

int fReportLvl {0}
 
const int fActiveMinEntries {1}
 
const double fSBThreshold {0.5}
 
const std::optional< std::pair< size_t, size_t > > fSpillThresholds {std::nullopt}
 
std::vector< const char * > fSpillSections = {":all"}
 
int fNbTsSpillOn {0}
 
int fNbTsSpillOff {0}
 
std::map< int32_t, std::vector< int > > fDeadChannelList
 
std::map< int32_t, std::vector< int > > fNoisyChannelList
 
std::map< int32_t, double[2048]> fLastDigiTime
 
CbmDigiManagerfDigiManager {nullptr}
 

Detailed Description

FairTask for StsChannelQa.

Quality assurance task for STS channel monitoring.

It processes StsDigis to produce two sets of output files:

  • sts_dead_channels.info: Summary of the amount of dead channels for each STS module (.par file with two columns <module_address> <dead_channel>).
  • sts_noisy_channels.info: Summary of the amount of noisy channels for each STS module (.par file with two columns <module_address> <noisy_channel>).

Moreover, all the histograms/graphs generated will be dumped to: cbm_sts_channel_qa.root.

This class inherits from FairTask and CbmStsAnaBase, and provides tools to analyze and monitor the behavior of STS channels during data processing.

The main functions of this class include:

  • Dead Channel Detection: Identifies channels with an entry count below a minimum threshold, classifying them as non-functional or "dead".
  • Noisy Channel Detection: Evaluates the signal-to-background (S/B) ratio using the ratio of entries in-spill versus off-spill. Channels with an user-defined S/B ratio are marked as noisy.
  • Charge vs. Channel Histograms: Generates 2D histograms of charge versus channel, split by spill sections (see CbmSpillCheck documentation):
    • All events : if not spill information is provided
    • Ramp section: between the lower and upper thresholds
    • In-spill section : bellow the lower threshold
    • Off-spill section : above the upper threshold

If spill information is provided the number of in|off spill TS analyzed are save to enable normalization

Output files are produced:

  • Summary files:
    • sts_dead_channels.info: Summary of the amount of dead channels for each STS module (.par file with two columns <module_address> <dead_channel>).
    • sts_noisy_channels.info: Summary of the amount of noisy channels for each STS module (.par file with two columns <module_address> <noisy_channel>).
  • Extendend information:
    • cbm_sts_channel_qa.root: Contains all the histograms/graphs generated.
    • sts_dead_channels.par: Contains the list of dead channels for each module.
    • sts_noisy_channels.par: Contains the list of noisy channels for each module.

Definition at line 67 of file CbmStsChannelQA.h.

Constructor & Destructor Documentation

◆ CbmStsChannelQA() [1/3]

CbmStsChannelQA::CbmStsChannelQA ( )
default

Referenced by ClassDef().

◆ CbmStsChannelQA() [2/3]

CbmStsChannelQA::CbmStsChannelQA ( int dead_threshold)

Constructor with threshold for inactive channels.

Parameters
dead_thresholdMinimum amount of entries to consider a channel active. Useful to generate the channel masking map for MC input

Definition at line 20 of file CbmStsChannelQA.cxx.

References fActiveMinEntries.

◆ CbmStsChannelQA() [3/3]

CbmStsChannelQA::CbmStsChannelQA ( int dead_threshold,
double noise_threshold,
const std::optional< std::pair< size_t, size_t > > spill_on_off_threshold )

Constructor with thresholds for dead and noisy channels. Additionally set thresholds to define OFF | Rise-Fall | ON spill status base on RefDet digi rate.

Parameters
dead_thresholdMinimum amount of entries to consider a channel alive.
noise_thresholdMinimum value for Signal/Background ratio to consider a channel to be noisy
spill_on_off_threshold(Minimum,Maximum) value for RefDet digi rate to consider spill (ON,OFF) [optional analysis branching]

Definition at line 21 of file CbmStsChannelQA.cxx.

References fActiveMinEntries, fSBThreshold, fSpillSections, and fSpillThresholds.

◆ ~CbmStsChannelQA()

CbmStsChannelQA::~CbmStsChannelQA ( )
default

Member Function Documentation

◆ BookHistograms()

void CbmStsChannelQA::BookHistograms ( int32_t address)
private

Book histograms.

Parameters
addressThe module address for which histograms will be booked.

Definition at line 61 of file CbmStsChannelQA.cxx.

References CbmStsAnaBase::fAddressBook, CbmStsAnaBase::fH2D, and fSpillSections.

Referenced by Exec().

◆ CheckDeadChannels()

void CbmStsChannelQA::CheckDeadChannels ( )
private

Check for dead channels. Fills fDeadChannelList map.

Definition at line 175 of file CbmStsChannelQA.cxx.

References fActiveMinEntries, CbmStsAnaBase::fAddressBook, fDeadChannelList, CbmStsAnaBase::fH2D, fSpillSections, and fSpillThresholds.

Referenced by Finish().

◆ CheckNoisyChannels()

void CbmStsChannelQA::CheckNoisyChannels ( )
private

Check for dead channels. Fills fNoisyChannelList map.

Definition at line 190 of file CbmStsChannelQA.cxx.

References CbmStsAnaBase::fAddressBook, CbmStsAnaBase::fH2D, fNbTsSpillOff, fNbTsSpillOn, fNoisyChannelList, fSBThreshold, and sgn().

Referenced by Finish().

◆ ClassDef() [1/2]

CbmStsAnaBase::ClassDef ( CbmStsAnaBase ,
1  )
protectedinherited

References CbmStsAnaBase().

◆ ClassDef() [2/2]

CbmStsChannelQA::ClassDef ( CbmStsChannelQA ,
1  )
private

References CbmStsChannelQA().

◆ DrawResults()

virtual void CbmStsAnaBase::DrawResults ( )
inlinevirtualinherited

Virtual function to draw analysis results.

Reimplemented in CbmStsTimeCal.

Definition at line 65 of file CbmStsAnaBase.h.

◆ Exec()

◆ Finish()

◆ GenerateReport()

void CbmStsChannelQA::GenerateReport ( )
private

◆ Init()

InitStatus CbmStsChannelQA::Init ( )

◆ LoadSetup()

◆ ResetLastTime()

void CbmStsChannelQA::ResetLastTime ( )
private

Definition at line 94 of file CbmStsChannelQA.cxx.

References fLastDigiTime.

Referenced by Exec().

◆ SaveToFile()

void CbmStsAnaBase::SaveToFile ( )
protectedinherited

◆ SetCutMap()

void CbmStsAnaBase::SetCutMap ( CbmCutMap * map)
inherited

Set the cut map for analysis.

Parameters
cutMapPointer to the CbmCutMap object.

Definition at line 21 of file CbmStsAnaBase.cxx.

References fAnalysisCuts.

◆ SetReportLevel()

void CbmStsChannelQA::SetReportLevel ( int lvl)
inline

Definition at line 93 of file CbmStsChannelQA.h.

References fReportLvl.

◆ UserAlignment()

void CbmStsAnaBase::UserAlignment ( const std::map< int32_t, std::vector< double > > & user_mat)
inlineinherited

User defined sensor translations.

Parameters
user_matInput translations.

Definition at line 60 of file CbmStsAnaBase.h.

References fUserAlignment.

Member Data Documentation

◆ entry_

◆ fActiveMinEntries

const int CbmStsChannelQA::fActiveMinEntries {1}
private

Definition at line 97 of file CbmStsChannelQA.h.

Referenced by CbmStsChannelQA(), CbmStsChannelQA(), CheckDeadChannels(), and Init().

◆ fAddressBook

◆ fAnalysisCuts

◆ fCanvas

std::map<std::string, std::unique_ptr<TCanvas> > CbmStsAnaBase::fCanvas
protectedinherited

Definition at line 75 of file CbmStsAnaBase.h.

◆ fDeadChannelList

std::map<int32_t, std::vector<int> > CbmStsChannelQA::fDeadChannelList
private

Definition at line 106 of file CbmStsChannelQA.h.

Referenced by CheckDeadChannels(), and Finish().

◆ fDigiManager

CbmDigiManager* CbmStsChannelQA::fDigiManager {nullptr}
private

Definition at line 112 of file CbmStsChannelQA.h.

Referenced by Exec(), and Init().

◆ fFirstZStrip

std::unordered_map<int32_t, int> CbmStsAnaBase::fFirstZStrip
protectedinherited

Definition at line 82 of file CbmStsAnaBase.h.

Referenced by LoadSetup().

◆ fG1D

std::map<std::string, std::unique_ptr<TGraphErrors> > CbmStsAnaBase::fG1D
protectedinherited

◆ fH1D

◆ fH2D

◆ fH2DShared

std::map<std::string, std::shared_ptr<TH2D> > CbmStsAnaBase::fH2DShared
protectedinherited

Definition at line 74 of file CbmStsAnaBase.h.

Referenced by CbmEventVertexDca::BookHistograms(), and SaveToFile().

◆ fLastDigiTime

std::map<int32_t, double[2048]> CbmStsChannelQA::fLastDigiTime
private

Definition at line 109 of file CbmStsChannelQA.h.

Referenced by Exec(), and ResetLastTime().

◆ fNbTsSpillOff

int CbmStsChannelQA::fNbTsSpillOff {0}
private

Definition at line 104 of file CbmStsChannelQA.h.

Referenced by CheckNoisyChannels(), Exec(), Finish(), and GenerateReport().

◆ fNbTsSpillOn

int CbmStsChannelQA::fNbTsSpillOn {0}
private

Definition at line 103 of file CbmStsChannelQA.h.

Referenced by CheckNoisyChannels(), Exec(), Finish(), and GenerateReport().

◆ fNoisyChannelList

std::map<int32_t, std::vector<int> > CbmStsChannelQA::fNoisyChannelList
private

Definition at line 107 of file CbmStsChannelQA.h.

Referenced by CheckNoisyChannels(), Finish(), and GenerateReport().

◆ fReportFile

std::unique_ptr<TFile> CbmStsAnaBase::fReportFile
protectedinherited

Definition at line 69 of file CbmStsAnaBase.h.

Referenced by CbmStsTimeCal::DrawResults(), and CbmStsTimeCal::Init().

◆ fReportLvl

int CbmStsChannelQA::fReportLvl {0}
private

Definition at line 96 of file CbmStsChannelQA.h.

Referenced by Finish(), GenerateReport(), Init(), and SetReportLevel().

◆ fRunId

int CbmStsAnaBase::fRunId {-1}
protectedinherited

Definition at line 86 of file CbmStsAnaBase.h.

Referenced by CbmStsTimeCal::CbmStsTimeCal(), and CbmStsTimeCal::Init().

◆ fSBThreshold

const double CbmStsChannelQA::fSBThreshold {0.5}
private

Definition at line 98 of file CbmStsChannelQA.h.

Referenced by CbmStsChannelQA(), CheckNoisyChannels(), and Init().

◆ fSpillSections

std::vector<const char*> CbmStsChannelQA::fSpillSections = {":all"}
private

Definition at line 101 of file CbmStsChannelQA.h.

Referenced by BookHistograms(), CbmStsChannelQA(), CheckDeadChannels(), and Exec().

◆ fSpillThresholds

const std::optional<std::pair<size_t, size_t> > CbmStsChannelQA::fSpillThresholds {std::nullopt}
private

Definition at line 99 of file CbmStsChannelQA.h.

Referenced by CbmStsChannelQA(), CheckDeadChannels(), Exec(), Finish(), and Init().

◆ fStsGeoInfo

◆ fUserAlignment

std::map<int32_t, std::vector<double> > CbmStsAnaBase::fUserAlignment
protectedinherited

Definition at line 80 of file CbmStsAnaBase.h.

Referenced by UserAlignment().

◆ nb_sts_station_

int CbmStsAnaBase::nb_sts_station_ {8}
protectedinherited

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