![]() |
AliRoot Core
3dc7879 (3dc7879)
|
Digitizer (from SDigit to Digit), performing digit de-calibration. More...
#include <AliMUONDigitizerV3.h>
Public Member Functions | |
AliMUONDigitizerV3 (AliDigitizationInput *digInput=0, Int_t generateNoisyDigits=1) | |
virtual | ~AliMUONDigitizerV3 () |
virtual void | Digitize (Option_t *opt="") |
virtual Bool_t | Init () |
void | SetCalibrationData (AliMUONCalibrationData *calibrationData, AliMUONRecoParam *recoParam) |
Set calibration (and recoparam) data. More... | |
![]() | |
AliDigitizer (const Text_t *name="AliDigitizer", const Text_t *title="AliDigitizer") | |
AliDigitizer (AliDigitizationInput *manager, const Text_t *name="AliDigitizer", const Text_t *title="AliDigitizer") | |
AliDigitizer (const AliDigitizer &dig) | |
AliDigitizer & | operator= (const AliDigitizer &dig) |
virtual | ~AliDigitizer () |
Bool_t | GetRegionOfInterest () const |
Static Public Member Functions | |
static Int_t | DecalibrateTrackerDigit (const AliMUONVCalibParam &pedestals, Int_t channel, Float_t charge, Bool_t addNoise=kFALSE, Bool_t noiseOnly=kFALSE) |
static void | SetNSigmas (Double_t nsigmas=4.0) |
Set the number of sigmas for pedestal cut. More... | |
Private Member Functions | |
AliMUONDigitizerV3 (const AliMUONDigitizerV3 &other) | |
Not implemented. More... | |
AliMUONDigitizerV3 & | operator= (const AliMUONDigitizerV3 &other) |
Not implemented. More... | |
void | ApplyResponse (const AliMUONVDigitStore &store, AliMUONVDigitStore &filteredStore) |
void | ApplyResponseToTrackerDigit (AliMUONVDigit &digit, Bool_t addNoise) |
void | ApplyResponseToTriggerDigit (AliMUONVDigit &digit) |
AliLoader * | GetLoader (const TString &foldername) |
void | GenerateNoisyDigits (AliMUONVDigitStore &digitStore) |
void | GenerateNoisyDigitsForOneCathode (AliMUONVDigitStore &digitStore, Int_t detElemId, Int_t cathode) |
void | GenerateNoisyDigitsForTrigger (AliMUONVDigitStore &digitStore) |
void | MergeWithSDigits (AliMUONVDigitStore *&digitStore, const AliMUONVDigitStore &input, Int_t mask) |
void | CreateInputDigitStores () |
void | BuildTriggerStatusMap () |
Int_t | GetArrayIndex (Int_t cathode, Int_t trigCh, Int_t localCircuit) |
Static Private Member Functions | |
static TF1 * | NoiseFunction () |
Private Attributes | |
Bool_t | fIsInitialized |
are we initialized ? More... | |
AliMUONCalibrationData * | fCalibrationData |
! pointer to access calib parameters More... | |
AliMUONTriggerElectronics * | fTriggerProcessor |
pointer to the trigger part of the job More... | |
TF1 * | fNoiseFunctionTrig |
! function to get noise disribution on trig. chambers More... | |
Int_t | fGenerateNoisyDigits |
! whether or not we should generate noise-only digits for tracker (1) and trigger (2) More... | |
AliMUONLogger * | fLogger |
for noise-only digit generation and zero-suppression More... | |
AliMUONVTriggerStore * | fTriggerStore |
! trigger objects More... | |
AliMUONVDigitStore * | fDigitStore |
! temporary digits More... | |
AliMUONVDigitStore * | fOutputDigitStore |
! digits we'll output to disk More... | |
TObjArray * | fInputDigitStores |
! input digit stores (one per input file More... | |
AliMUONRecoParam * | fRecoParam |
! reco params (to know how to decalibrate) (not owner) More... | |
AliMUONTriggerChamberEfficiency * | fTriggerEfficiency |
! trigger efficiency map More... | |
AliMUONTriggerUtilities * | fTriggerUtilities |
! Trigger utilities for masks More... | |
TArrayI | fEfficiencyResponse |
! Local board efficiency response More... | |
Static Private Attributes | |
static Double_t | fgNSigmas = 4.0 |
number of sigmas above ped to use More... | |
Additional Inherited Members | |
![]() | |
Int_t | GetNInputStreams () const |
void | Copy (TObject &dig) const |
![]() | |
AliDigitizationInput * | fDigInput |
Digitizer (from SDigit to Digit), performing digit de-calibration.
The digitizer is performing the transformation to go from SDigits (digits w/o any electronic noise) to Digits (w/ electronic noise, and decalibration)
The decalibration is performed by doing the reverse operation of the calibration, that is we do (Signal+pedestal)/gain -> ADC
Note also that the digitizer takes care of merging sdigits that belongs to the same pad, either because we're merging several input sdigit files or with a single file because the sdigitizer does not merge sdigits itself (for performance reason mainly, and because anyway we know we have to do it here, at the digitization level).
August 2011. In order to remove the need for specific MC OCDB storages, we're introducing a dependence of simulation on AliMUONRecoParam (stored in MUON/Calib/RecoParam in OCDB), which is normally (or conceptually, if you will) only a reconstruction object. That's not a pretty solution, but, well, we have to do it... This dependence comes from the fact that we must know how to decalibrate the digits, so that the decalibration (done here) - calibration (done during reco) process is (as much as possible) neutral.
Definition at line 36 of file AliMUONDigitizerV3.h.
AliMUONDigitizerV3::AliMUONDigitizerV3 | ( | AliDigitizationInput * | digInput = 0 , |
Int_t | generateNoisyDigits = 1 |
||
) |
|
virtual |
Dtor. Note we're the owner of some pointers.
Definition at line 138 of file AliMUONDigitizerV3.cxx.
|
private |
Not implemented.
|
private |
Loop over all chamber digits, and apply the response to them Note that this method may remove digits.
Definition at line 265 of file AliMUONDigitizerV3.cxx.
Referenced by Digitize(), and SetNSigmas().
|
private |
For tracking digits, starting from an ideal digit's charge, we :
Definition at line 161 of file AliMUONDigitizerV3.cxx.
Referenced by ApplyResponse(), GenerateNoisyDigitsForOneCathode(), and SetNSigmas().
|
private |
For trigger digits, starting from an ideal digit, we :
Definition at line 215 of file AliMUONDigitizerV3.cxx.
Referenced by ApplyResponse(), and SetNSigmas().
|
private |
Referenced by SetNSigmas().
|
private |
Create input digit stores
Definition at line 388 of file AliMUONDigitizerV3.cxx.
Referenced by Digitize(), and SetNSigmas().
|
static |
Decalibrate (i.e. go from charge to adc) a tracker digit, given its pedestal and gain parameters. Must insure before calling that channel is valid (i.e. between 0 and pedestals->GetSize()-1, but also corresponding to a valid channel otherwise results are not predictible...)
This method is completely tied to what happens in its sister method : AliMUONDigitCalibrator::CalibrateDigit, which is doing the reverse work...
Definition at line 303 of file AliMUONDigitizerV3.cxx.
Referenced by ApplyResponseToTrackerDigit().
|
virtual |
Main method. We first loop over input files, and merge the sdigits we found there. Second, we digitize all the resulting sdigits Then we generate noise-only digits (for tracker only) And we finally generate the trigger outputs.
Implements AliDigitizer.
Definition at line 420 of file AliMUONDigitizerV3.cxx.
|
private |
According to a given probability, generate digits that have a signal above the noise cut (ped+n*sigma_ped), i.e. digits that are "only noise".
Definition at line 544 of file AliMUONDigitizerV3.cxx.
Referenced by Digitize(), and SetNSigmas().
|
private |
Generate noise-only digits for one cathode of one detection element. Called by GenerateNoisyDigits()
Definition at line 571 of file AliMUONDigitizerV3.cxx.
Referenced by GenerateNoisyDigits(), and SetNSigmas().
|
private |
Generate noise-only digits for one cathode of one detection element. Called by GenerateNoisyDigits()
Definition at line 647 of file AliMUONDigitizerV3.cxx.
Referenced by Digitize(), and SetNSigmas().
|
private |
Get index of array with trigger status map or efficiency
Definition at line 821 of file AliMUONDigitizerV3.cxx.
Referenced by ApplyResponseToTriggerDigit(), and SetNSigmas().
|
private |
Get a MUON loader
Definition at line 751 of file AliMUONDigitizerV3.cxx.
Referenced by CreateInputDigitStores(), Digitize(), and SetNSigmas().
|
virtual |
Initialization of the digitization : a) create the calibrationData, according to run number b) create the trigger processing task
Reimplemented from AliDigitizer.
Definition at line 767 of file AliMUONDigitizerV3.cxx.
|
private |
Merge the sdigits in inputData with the digits already present in outputData
Definition at line 832 of file AliMUONDigitizerV3.cxx.
Referenced by Digitize(), and SetNSigmas().
|
staticprivate |
Return noise function
Definition at line 860 of file AliMUONDigitizerV3.cxx.
Referenced by DecalibrateTrackerDigit(), and SetNSigmas().
|
private |
Not implemented.
Referenced by SetNSigmas().
void AliMUONDigitizerV3::SetCalibrationData | ( | AliMUONCalibrationData * | calibrationData, |
AliMUONRecoParam * | recoParam | ||
) |
Set calibration (and recoparam) data.
Definition at line 873 of file AliMUONDigitizerV3.cxx.
Referenced by AliMUON::CreateDigitizer().
|
inlinestatic |
Set the number of sigmas for pedestal cut.
Definition at line 58 of file AliMUONDigitizerV3.h.
Referenced by AliMUON::CreateDigitizer().
|
private |
! pointer to access calib parameters
Definition at line 93 of file AliMUONDigitizerV3.h.
Referenced by ApplyResponseToTrackerDigit(), GenerateNoisyDigitsForOneCathode(), Init(), and SetCalibrationData().
|
private |
! temporary digits
Definition at line 101 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), and ~AliMUONDigitizerV3().
|
private |
! Local board efficiency response
Definition at line 107 of file AliMUONDigitizerV3.h.
Referenced by ApplyResponse(), and ApplyResponseToTriggerDigit().
|
private |
! whether or not we should generate noise-only digits for tracker (1) and trigger (2)
Definition at line 96 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), and Init().
|
staticprivate |
number of sigmas above ped to use
Definition at line 97 of file AliMUONDigitizerV3.h.
Referenced by DecalibrateTrackerDigit(), GenerateNoisyDigitsForOneCathode(), NoiseFunction(), and SetNSigmas().
|
private |
! input digit stores (one per input file
Definition at line 103 of file AliMUONDigitizerV3.h.
Referenced by CreateInputDigitStores(), Digitize(), and ~AliMUONDigitizerV3().
|
private |
are we initialized ?
Definition at line 92 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), and Init().
|
private |
for noise-only digit generation and zero-suppression
! to keep track of messages
Definition at line 99 of file AliMUONDigitizerV3.h.
Referenced by ApplyResponseToTrackerDigit(), GenerateNoisyDigitsForOneCathode(), GenerateNoisyDigitsForTrigger(), and ~AliMUONDigitizerV3().
|
private |
! function to get noise disribution on trig. chambers
Definition at line 95 of file AliMUONDigitizerV3.h.
Referenced by GenerateNoisyDigitsForTrigger(), and ~AliMUONDigitizerV3().
|
private |
! digits we'll output to disk
Definition at line 102 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), and ~AliMUONDigitizerV3().
|
private |
! reco params (to know how to decalibrate) (not owner)
Definition at line 104 of file AliMUONDigitizerV3.h.
Referenced by SetCalibrationData().
|
private |
! trigger efficiency map
Definition at line 105 of file AliMUONDigitizerV3.h.
Referenced by ApplyResponse(), ApplyResponseToTriggerDigit(), and Init().
|
private |
pointer to the trigger part of the job
Definition at line 94 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), Init(), and ~AliMUONDigitizerV3().
|
private |
! trigger objects
Definition at line 100 of file AliMUONDigitizerV3.h.
Referenced by Digitize(), and ~AliMUONDigitizerV3().
|
private |
! Trigger utilities for masks
Definition at line 106 of file AliMUONDigitizerV3.h.
Referenced by ApplyResponseToTriggerDigit(), Init(), and ~AliMUONDigitizerV3().