![]() |
AliPhysics
2b88e80 (2b88e80)
|
#include <AliFMDCorrNoiseGain.h>
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 Attributes | |
AliFMDFloatMap | fValues |
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.
|
inline |
Default constructor
Definition at line 69 of file AliFMDCorrNoiseGain.h.
|
inline |
Constructor from a float map
map | Construct from this map |
Definition at line 75 of file AliFMDCorrNoiseGain.h.
Get the noise value for a particular strip
d | Detector |
r | Ring |
s | Sector |
t | Strip |
Definition at line 86 of file AliFMDCorrNoiseGain.h.
Referenced by CorrDrawer::DrawIt(), and AliFMDESDFixer::Fix().
Set the value for a strip.
d | Detector |
r | Ring |
s | Sector |
t | Strip |
x | Value |
Definition at line 99 of file AliFMDCorrNoiseGain.h.
Referenced by ExtractForRun().
|
inline |
Get a reference to the noise map
Definition at line 108 of file AliFMDCorrNoiseGain.h.
|
protected |
Definition at line 110 of file AliFMDCorrNoiseGain.h.
Referenced by AliFMDCorrNoiseGain(), Get(), Set(), and Values().