#include "AliDigitizer.h"
#endif
-#ifndef ROOT_TStopwatch
-# include "TStopwatch.h"
-#endif
-
class AliMUONCalibrationData;
class AliMUONVDigit;
class AliMUONLogger;
-class AliMUONTriggerEfficiencyCells;
class TClonesArray;
class TF1;
class TString;
class AliLoader;
class AliMUONVTriggerStore;
class AliMUONTriggerElectronics;
+class AliMUONVCalibParam;
class AliMUONDigitizerV3 : public AliDigitizer
{
virtual Bool_t Init();
+ static Int_t DecalibrateTrackerDigit(const AliMUONVCalibParam& pedestals,
+ const AliMUONVCalibParam& gains,
+ Int_t channel,
+ Float_t charge,
+ Bool_t addNoise=kFALSE,
+ Bool_t noiseOnly=kFALSE);
+
+ /// Set calibration data
+ void SetCalibrationData(AliMUONCalibrationData* calibrationData)
+ {fCalibrationData = calibrationData;}
+
private:
/// Not implemented
AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
- void ApplyResponseToTriggerDigit(const AliMUONVDigitStore& digitStore, AliMUONVDigit& digit);
AliLoader* GetLoader(const TString& foldername);
private:
- AliMUONVDigit* FindCorrespondingDigit(const AliMUONVDigitStore& digitStore,
- AliMUONVDigit& digit) const;
-
void GenerateNoisyDigits(AliMUONVDigitStore& digitStore);
void GenerateNoisyDigitsForOneCathode(AliMUONVDigitStore& digitStore,
Int_t detElemId, Int_t cathode);
const AliMUONVDigitStore& input,
Int_t mask);
+ static TF1* NoiseFunction();
+
+ void CreateInputDigitStore();
+
private:
Bool_t fIsInitialized; ///< are we initialized ?
AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
AliMUONTriggerElectronics* fTriggerProcessor; ///< pointer to the trigger part of the job
- AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map
- 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
TF1* fNoiseFunctionTrig; //!< function to get noise disribution on trig. chambers
Int_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker (1) and trigger (2)
static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use
AliMUONVTriggerStore* fTriggerStore; //!< trigger objects
AliMUONVDigitStore* fDigitStore; //!< temporary digits
AliMUONVDigitStore* fOutputDigitStore; //!< digits we'll output to disk
+ AliMUONVDigitStore* fInputDigitStore; //!< input digit store
- ClassDef(AliMUONDigitizerV3,5) // MUON Digitizer V3-5
+ ClassDef(AliMUONDigitizerV3,8) // MUON Digitizer V3-8
};
#endif