/// \class AliMUONDigitizerV3
/// \brief Digitizer (from SDigit to Digit), performing digit de-calibration.
///
-/// \author Laurent Aphecetche
+// Author Laurent Aphecetche
#ifndef ALIMUONDIGITIZERV3_H
#define ALIMUONDIGITIZERV3_H
#endif
class AliMUONCalibrationData;
-class AliMUONData;
+class AliMUONSimData;
class AliMUONDigit;
+class AliMUONLogger;
class AliMUONTriggerEfficiencyCells;
class TClonesArray;
class TF1;
class AliMUONDigitizerV3 : public AliDigitizer
{
public:
- enum ETriggerCodeVersion
- {
- kTriggerDecision=-1,
- kTriggerElectronics
- };
-
AliMUONDigitizerV3(AliRunDigitizer* manager=0,
- ETriggerCodeVersion=kTriggerDecision,
- Bool_t useTriggerEfficiency=kFALSE,
Bool_t generateNoisyDigits=kTRUE);
virtual ~AliMUONDigitizerV3();
virtual Bool_t Init();
private:
-
+ /// Not implemented
AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
+ /// Not implemented
AliMUONDigitizerV3& operator=(const AliMUONDigitizerV3& other);
void AddOrUpdateDigit(TClonesArray& array,
void ApplyResponse();
void ApplyResponseToTrackerDigit(AliMUONDigit& digit, Bool_t addNoise);
- void ApplyResponseToTriggerDigit(AliMUONDigit& digit, AliMUONData* data);
+ void ApplyResponseToTriggerDigit(AliMUONDigit& digit);
private:
- AliMUONDigit* FindCorrespondingDigit(AliMUONDigit& digit,AliMUONData* data);
+ AliMUONDigit* FindCorrespondingDigit(AliMUONDigit& digit) const;
Int_t FindDigitIndex(TClonesArray& array, const AliMUONDigit& digit) const;
void GenerateNoisyDigits();
void GenerateNoisyDigitsForOneCathode(Int_t detElemId, Int_t cathode);
- AliMUONData* GetDataAccess(const TString& folderName);
+ AliMUONSimData* GetDataAccess(const TString& folderName);
Bool_t MergeDigits(const AliMUONDigit& src, AliMUONDigit& srcAndDest);
- void MergeWithSDigits(AliMUONData& outputData, const AliMUONData& inputData,
+ void MergeWithSDigits(AliMUONSimData& outputData, const AliMUONSimData& inputData,
Int_t mask);
private:
- Bool_t fIsInitialized; // are we initialized ?
- AliMUONData* fOutputData; //! pointer to access digits
- AliMUONCalibrationData* fCalibrationData; //! pointer to access calib parameters
- TTask* fTriggerProcessor; // pointer to the trigger part of the job
- ETriggerCodeVersion fTriggerCodeVersion; // which version of trigger job
- Bool_t fUseTriggerEfficiency; // whether or not we should apply trigger efficiency
- AliMUONTriggerEfficiencyCells* fTriggerEfficiency; // trigger efficiency map
- mutable TStopwatch fFindDigitIndexTimer; //! counting time spent in FindDigitIndex
- TStopwatch fGenerateNoisyDigitsTimer; //! counting time spent in GenerateNoisyDigits()
- TStopwatch fExecTimer; //! couting time spent in Exec()
- TF1* fNoiseFunction; //! function to randomly get signal above n*sigma_ped
- Bool_t fGenerateNoisyDigits; //! whether or not we should generate noise-only digits for tracker
- static const Double_t fgkNSigmas; // number of sigmas above ped to use
- // for noise-only digit generation and zero-suppression
-
- ClassDef(AliMUONDigitizerV3,3) // MUON Digitizer V3-3
+ Bool_t fIsInitialized; ///< are we initialized ?
+ AliMUONSimData* fOutputData; //!< pointer to access digits
+ AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
+ TTask* fTriggerProcessor; ///< pointer to the trigger part of the job
+ AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map
+ mutable TStopwatch fFindDigitIndexTimer; //!< counting time spent in FindDigitIndex
+ TStopwatch fGenerateNoisyDigitsTimer; //!< counting time spent in GenerateNoisyDigits()
+ TStopwatch fExecTimer; //!< couting time spent in Exec()
+ TF1* fNoiseFunction; //!< function to randomly get signal above n*sigma_ped
+ Bool_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker
+ static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use
+ /// for noise-only digit generation and zero-suppression
+ AliMUONLogger* fLogger; //!< to keep track of messages
+
+ ClassDef(AliMUONDigitizerV3,4) // MUON Digitizer V3-3
};
#endif