#include "AliDigitizer.h"
#endif
+#include "TArrayI.h"
+
class AliMUONCalibrationData;
class AliMUONVDigit;
class AliMUONLogger;
class AliMUONVTriggerStore;
class AliMUONTriggerElectronics;
class AliMUONVCalibParam;
+class AliMUONRecoParam;
+class AliMUONTriggerChamberEfficiency;
+class AliMUONTriggerUtilities;
class AliMUONDigitizerV3 : public AliDigitizer
{
public:
- AliMUONDigitizerV3(AliRunDigitizer* manager=0,
+ AliMUONDigitizerV3(AliDigitizationInput* digInput=0,
Int_t generateNoisyDigits=1);
virtual ~AliMUONDigitizerV3();
- virtual void Exec(Option_t* opt="");
+ virtual void Digitize(Option_t* opt="");
virtual Bool_t Init();
static Int_t DecalibrateTrackerDigit(const AliMUONVCalibParam& pedestals,
- const AliMUONVCalibParam& gains,
+ const AliMUONVCalibParam* gains,
Int_t channel,
Float_t charge,
Bool_t addNoise=kFALSE,
- Bool_t noiseOnly=kFALSE);
+ Bool_t noiseOnly=kFALSE,
+ const TString& calibrationMode="NOGAIN");
- /// Set calibration data
- void SetCalibrationData(AliMUONCalibrationData* calibrationData)
- {fCalibrationData = calibrationData;}
+ /// Set calibration (and recoparam) data
+ void SetCalibrationData(AliMUONCalibrationData* calibrationData, AliMUONRecoParam* recoParam);
/// Set the number of sigmas for pedestal cut
static void SetNSigmas(Double_t nsigmas=4.0) { fgNSigmas = nsigmas; }
void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
+ void ApplyResponseToTriggerDigit(AliMUONVDigit& digit);
AliLoader* GetLoader(const TString& foldername);
static TF1* NoiseFunction();
- void CreateInputDigitStore();
+ void CreateInputDigitStores();
+
+ void BuildTriggerStatusMap();
+ Int_t GetArrayIndex(Int_t cathode, Int_t trigCh, Int_t localCircuit);
private:
Bool_t fIsInitialized; ///< are we initialized ?
AliMUONVTriggerStore* fTriggerStore; //!< trigger objects
AliMUONVDigitStore* fDigitStore; //!< temporary digits
AliMUONVDigitStore* fOutputDigitStore; //!< digits we'll output to disk
- AliMUONVDigitStore* fInputDigitStore; //!< input digit store
+ TObjArray* fInputDigitStores; //!< input digit stores (one per input file
+ AliMUONRecoParam* fRecoParam; //!< reco params (to know how to decalibrate) (not owner)
+ AliMUONTriggerChamberEfficiency* fTriggerEfficiency; //!< trigger efficiency map
+ AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
+ TArrayI fEfficiencyResponse; //!< Local board efficiency response
- ClassDef(AliMUONDigitizerV3,9) // MUON Digitizer V3-9
+ ClassDef(AliMUONDigitizerV3,11) // MUON Digitizer V3-11
};
#endif