AliPhysics  d2a0c2d (d2a0c2d)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFMDCorrNoiseGain Class Reference

#include <AliFMDCorrNoiseGain.h>

Inheritance diagram for AliFMDCorrNoiseGain:

Public Member Functions

 AliFMDCorrNoiseGain ()
 AliFMDCorrNoiseGain (const AliFMDFloatMap &map)
Float_t Get (UShort_t d, Char_t r, UShort_t s, UShort_t t) const
void Set (UShort_t d, Char_t r, UShort_t s, UShort_t t, Float_t x)
const AliFMDFloatMap & Values ()

Protected Member Functions

 ClassDef (AliFMDCorrNoiseGain, 1)

Protected Attributes

AliFMDFloatMap fValues

Detailed Description

Get the noise calibration. That is, the ratio

\[ \frac{\sigma_{i}}{g_{i}k} \]

where \( k\) is a constant determined by the electronics of units DAC/MIP, and \( \sigma_i, g_i\) are the noise and gain of the \( i \) strip respectively.

This correction is needed because some of the reconstructed data (what which have an AliESDFMD class version less than or equal to 3) used the wrong zero-suppression factor. The zero suppression factor used by the on-line electronics was 4, but due to a coding error in the AliFMDRawReader a zero suppression factor of 1 was assumed during the reconstruction. This shifts the zero of the energy loss distribution artificially towards the left (lover valued signals).

So let's assume the real zero-suppression factor is \( f\) while the zero suppression factor \( f'\) assumed in the reconstruction was (wrongly) lower. The number of ADC counts \( c_i'\) used in the reconstruction can be calculated from the reconstructed signal \( m_i'\) by

\[ c_i' = m_i \times g_i \times k / \cos\theta_i \]

where \(\theta_i\) is the incident angle of the \( i\) strip.

This number of counts used the wrong noise factor \( f'\) so to correct to the on-line value, we need to do

\[ c_i = c_i' - \lfloor f'\times n_i\rfloor + \lfloor f\times n_i\rfloor \]

which gives the correct number of ADC counts over the pedestal. To convert back to the scaled energy loss signal we then need to calculate (noting that \( f,f'\) are integers)

\begin{eqnarray} m_i &=& \frac{c_i \times \cos\theta_i}{g_i \times k}\\ &=& \left(c_i' - \lfloor f'\times n_i\rfloor + \lfloor f\times n_i\rfloor\right)\frac{\cos\theta}{g_i \times k}\\ &=& \left(\frac{m_i'\times g_i\times k}{\cos\theta} - \lfloor f'\times n_i\rfloor + \lfloor f\times n_i\rfloor\right) \frac{\cos\theta}{g_i \times k}\\ &=& m_i' + \frac{1}{g_i \times k} \left(\lfloor f\times n_i\rfloor- \lfloor f'\times n_i\rfloor\right)\cos\theta\\ &=& m_i' + \frac{\lfloor n_i\rfloor}{g_i \times k} \left(f-f'\right)\cos\theta \end{eqnarray}

Definition at line 63 of file AliFMDCorrNoiseGain.h.

Constructor & Destructor Documentation

AliFMDCorrNoiseGain::AliFMDCorrNoiseGain ( )

Default constructor

Definition at line 69 of file AliFMDCorrNoiseGain.h.

AliFMDCorrNoiseGain::AliFMDCorrNoiseGain ( const AliFMDFloatMap &  map)

Constructor from a float map

mapConstruct from this map

Definition at line 75 of file AliFMDCorrNoiseGain.h.

Member Function Documentation

AliFMDCorrNoiseGain::ClassDef ( AliFMDCorrNoiseGain  ,
Float_t AliFMDCorrNoiseGain::Get ( UShort_t  d,
Char_t  r,
UShort_t  s,
UShort_t  t 
) const

Get the noise value for a particular strip

Noise value for strip

Definition at line 86 of file AliFMDCorrNoiseGain.h.

Referenced by CorrDrawer::DrawIt(), and AliFMDESDFixer::Fix().

void AliFMDCorrNoiseGain::Set ( UShort_t  d,
Char_t  r,
UShort_t  s,
UShort_t  t,
Float_t  x 

Set the value for a strip.


Definition at line 99 of file AliFMDCorrNoiseGain.h.

Referenced by ExtractForRun().

const AliFMDFloatMap& AliFMDCorrNoiseGain::Values ( )

Get a reference to the noise map

Noise map

Definition at line 108 of file AliFMDCorrNoiseGain.h.

Member Data Documentation

AliFMDFloatMap AliFMDCorrNoiseGain::fValues

Definition at line 110 of file AliFMDCorrNoiseGain.h.

Referenced by AliFMDCorrNoiseGain(), Get(), Set(), and Values().

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