AliRoot Core  3dc7879 (3dc7879)
AliMUONDigitizerV3 Class Reference

Digitizer (from SDigit to Digit), performing digit de-calibration. More...

#include <AliMUONDigitizerV3.h>

Inheritance diagram for AliMUONDigitizerV3:

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...
 
- Public Member Functions inherited from AliDigitizer
 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)
 
AliDigitizeroperator= (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...
 
AliMUONDigitizerV3operator= (const AliMUONDigitizerV3 &other)
 Not implemented. More...
 
void ApplyResponse (const AliMUONVDigitStore &store, AliMUONVDigitStore &filteredStore)
 
void ApplyResponseToTrackerDigit (AliMUONVDigit &digit, Bool_t addNoise)
 
void ApplyResponseToTriggerDigit (AliMUONVDigit &digit)
 
AliLoaderGetLoader (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...
 
AliMUONCalibrationDatafCalibrationData
 ! pointer to access calib parameters More...
 
AliMUONTriggerElectronicsfTriggerProcessor
 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...
 
AliMUONLoggerfLogger
 for noise-only digit generation and zero-suppression More...
 
AliMUONVTriggerStorefTriggerStore
 ! trigger objects More...
 
AliMUONVDigitStorefDigitStore
 ! temporary digits More...
 
AliMUONVDigitStorefOutputDigitStore
 ! digits we'll output to disk More...
 
TObjArrayfInputDigitStores
 ! input digit stores (one per input file More...
 
AliMUONRecoParamfRecoParam
 ! reco params (to know how to decalibrate) (not owner) More...
 
AliMUONTriggerChamberEfficiencyfTriggerEfficiency
 ! trigger efficiency map More...
 
AliMUONTriggerUtilitiesfTriggerUtilities
 ! 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

- Protected Member Functions inherited from AliDigitizer
Int_t GetNInputStreams () const
 
void Copy (TObject &dig) const
 
- Protected Attributes inherited from AliDigitizer
AliDigitizationInputfDigInput
 

Detailed Description

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.

Author
Laurent Aphecetche

Definition at line 36 of file AliMUONDigitizerV3.h.

Constructor & Destructor Documentation

AliMUONDigitizerV3::AliMUONDigitizerV3 ( AliDigitizationInput digInput = 0,
Int_t  generateNoisyDigits = 1 
)

Ctor.

Definition at line 113 of file AliMUONDigitizerV3.cxx.

Referenced by SetNSigmas().

AliMUONDigitizerV3::~AliMUONDigitizerV3 ( )
virtual

Dtor. Note we're the owner of some pointers.

Definition at line 138 of file AliMUONDigitizerV3.cxx.

AliMUONDigitizerV3::AliMUONDigitizerV3 ( const AliMUONDigitizerV3 other)
private

Not implemented.

Member Function Documentation

void AliMUONDigitizerV3::ApplyResponse ( const AliMUONVDigitStore store,
AliMUONVDigitStore filteredStore 
)
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().

void AliMUONDigitizerV3::ApplyResponseToTrackerDigit ( AliMUONVDigit digit,
Bool_t  addNoise 
)
private

For tracking digits, starting from an ideal digit's charge, we :

  • "divide" by a gain (thus decalibrating the digit)
  • add a pedestal (thus decalibrating the digit)
  • add some electronics noise (thus leading to a realistic adc), if requested to do so
  • sets the signal to zero if below 3*sigma of the noise

Definition at line 161 of file AliMUONDigitizerV3.cxx.

Referenced by ApplyResponse(), GenerateNoisyDigitsForOneCathode(), and SetNSigmas().

void AliMUONDigitizerV3::ApplyResponseToTriggerDigit ( AliMUONVDigit digit)
private

For trigger digits, starting from an ideal digit, we :

  • apply efficiency (on demand)
  • apply trigger masks

Definition at line 215 of file AliMUONDigitizerV3.cxx.

Referenced by ApplyResponse(), and SetNSigmas().

void AliMUONDigitizerV3::BuildTriggerStatusMap ( )
private

Referenced by SetNSigmas().

void AliMUONDigitizerV3::CreateInputDigitStores ( )
private

Create input digit stores

Definition at line 388 of file AliMUONDigitizerV3.cxx.

Referenced by Digitize(), and SetNSigmas().

Int_t AliMUONDigitizerV3::DecalibrateTrackerDigit ( const AliMUONVCalibParam pedestals,
Int_t  channel,
Float_t  charge,
Bool_t  addNoise = kFALSE,
Bool_t  noiseOnly = kFALSE 
)
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().

void AliMUONDigitizerV3::Digitize ( Option_t *  opt = "")
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.

void AliMUONDigitizerV3::GenerateNoisyDigits ( AliMUONVDigitStore digitStore)
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().

void AliMUONDigitizerV3::GenerateNoisyDigitsForOneCathode ( AliMUONVDigitStore digitStore,
Int_t  detElemId,
Int_t  cathode 
)
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().

void AliMUONDigitizerV3::GenerateNoisyDigitsForTrigger ( AliMUONVDigitStore digitStore)
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().

Int_t AliMUONDigitizerV3::GetArrayIndex ( Int_t  cathode,
Int_t  trigCh,
Int_t  localCircuit 
)
private

Get index of array with trigger status map or efficiency

Definition at line 821 of file AliMUONDigitizerV3.cxx.

Referenced by ApplyResponseToTriggerDigit(), and SetNSigmas().

AliLoader * AliMUONDigitizerV3::GetLoader ( const TString &  foldername)
private

Get a MUON loader

Definition at line 751 of file AliMUONDigitizerV3.cxx.

Referenced by CreateInputDigitStores(), Digitize(), and SetNSigmas().

Bool_t AliMUONDigitizerV3::Init ( void  )
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.

void AliMUONDigitizerV3::MergeWithSDigits ( AliMUONVDigitStore *&  digitStore,
const AliMUONVDigitStore input,
Int_t  mask 
)
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().

TF1 * AliMUONDigitizerV3::NoiseFunction ( )
staticprivate

Return noise function

Definition at line 860 of file AliMUONDigitizerV3.cxx.

Referenced by DecalibrateTrackerDigit(), and SetNSigmas().

AliMUONDigitizerV3& AliMUONDigitizerV3::operator= ( const AliMUONDigitizerV3 other)
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().

static void AliMUONDigitizerV3::SetNSigmas ( Double_t  nsigmas = 4.0)
inlinestatic

Set the number of sigmas for pedestal cut.

Definition at line 58 of file AliMUONDigitizerV3.h.

Referenced by AliMUON::CreateDigitizer().

Member Data Documentation

AliMUONCalibrationData* AliMUONDigitizerV3::fCalibrationData
private

! pointer to access calib parameters

Definition at line 93 of file AliMUONDigitizerV3.h.

Referenced by ApplyResponseToTrackerDigit(), GenerateNoisyDigitsForOneCathode(), Init(), and SetCalibrationData().

AliMUONVDigitStore* AliMUONDigitizerV3::fDigitStore
private

! temporary digits

Definition at line 101 of file AliMUONDigitizerV3.h.

Referenced by Digitize(), and ~AliMUONDigitizerV3().

TArrayI AliMUONDigitizerV3::fEfficiencyResponse
private

! Local board efficiency response

Definition at line 107 of file AliMUONDigitizerV3.h.

Referenced by ApplyResponse(), and ApplyResponseToTriggerDigit().

Int_t AliMUONDigitizerV3::fGenerateNoisyDigits
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().

Double_t AliMUONDigitizerV3::fgNSigmas = 4.0
staticprivate

number of sigmas above ped to use

Definition at line 97 of file AliMUONDigitizerV3.h.

Referenced by DecalibrateTrackerDigit(), GenerateNoisyDigitsForOneCathode(), NoiseFunction(), and SetNSigmas().

TObjArray* AliMUONDigitizerV3::fInputDigitStores
private

! input digit stores (one per input file

Definition at line 103 of file AliMUONDigitizerV3.h.

Referenced by CreateInputDigitStores(), Digitize(), and ~AliMUONDigitizerV3().

Bool_t AliMUONDigitizerV3::fIsInitialized
private

are we initialized ?

Definition at line 92 of file AliMUONDigitizerV3.h.

Referenced by Digitize(), and Init().

AliMUONLogger* AliMUONDigitizerV3::fLogger
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().

TF1* AliMUONDigitizerV3::fNoiseFunctionTrig
private

! function to get noise disribution on trig. chambers

Definition at line 95 of file AliMUONDigitizerV3.h.

Referenced by GenerateNoisyDigitsForTrigger(), and ~AliMUONDigitizerV3().

AliMUONVDigitStore* AliMUONDigitizerV3::fOutputDigitStore
private

! digits we'll output to disk

Definition at line 102 of file AliMUONDigitizerV3.h.

Referenced by Digitize(), and ~AliMUONDigitizerV3().

AliMUONRecoParam* AliMUONDigitizerV3::fRecoParam
private

! reco params (to know how to decalibrate) (not owner)

Definition at line 104 of file AliMUONDigitizerV3.h.

Referenced by SetCalibrationData().

AliMUONTriggerChamberEfficiency* AliMUONDigitizerV3::fTriggerEfficiency
private

! trigger efficiency map

Definition at line 105 of file AliMUONDigitizerV3.h.

Referenced by ApplyResponse(), ApplyResponseToTriggerDigit(), and Init().

AliMUONTriggerElectronics* AliMUONDigitizerV3::fTriggerProcessor
private

pointer to the trigger part of the job

Definition at line 94 of file AliMUONDigitizerV3.h.

Referenced by Digitize(), Init(), and ~AliMUONDigitizerV3().

AliMUONVTriggerStore* AliMUONDigitizerV3::fTriggerStore
private

! trigger objects

Definition at line 100 of file AliMUONDigitizerV3.h.

Referenced by Digitize(), and ~AliMUONDigitizerV3().

AliMUONTriggerUtilities* AliMUONDigitizerV3::fTriggerUtilities
private

! Trigger utilities for masks

Definition at line 106 of file AliMUONDigitizerV3.h.

Referenced by ApplyResponseToTriggerDigit(), Init(), and ~AliMUONDigitizerV3().


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