]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONDigitizerV3.h
Back to previous version
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitizerV3.h
CommitLineData
92aeef15 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2* See cxx source for full Copyright notice */
3
4// $Id$
5
6/// \ingroup sim
7/// \class AliMUONDigitizerV3
05314992 8/// \brief Digitizer (from SDigit to Digit), performing digit de-calibration.
9///
78649106 10// Author Laurent Aphecetche
92aeef15 11
12#ifndef ALIMUONDIGITIZERV3_H
13#define ALIMUONDIGITIZERV3_H
14
15#ifndef ALIDIGITIZER_H
16#include "AliDigitizer.h"
17#endif
18
19class AliMUONCalibrationData;
40e382ae 20class AliMUONVDigit;
ad26d4f6 21class AliMUONLogger;
4ce497c4 22class AliMUONTriggerEfficiencyCells;
92aeef15 23class TClonesArray;
4ce497c4 24class TF1;
92aeef15 25class TString;
40e382ae 26class AliMUONVDigitStore;
27class AliLoader;
28class AliMUONVTriggerStore;
29class AliMUONTriggerElectronics;
b74ca120 30class AliMUONVCalibParam;
92aeef15 31
32class AliMUONDigitizerV3 : public AliDigitizer
33{
34public:
92aeef15 35 AliMUONDigitizerV3(AliRunDigitizer* manager=0,
8c0b5e70 36 Int_t generateNoisyDigits=1);
92aeef15 37 virtual ~AliMUONDigitizerV3();
38
39 virtual void Exec(Option_t* opt="");
40
41 virtual Bool_t Init();
42
b74ca120 43 static Int_t DecalibrateTrackerDigit(const AliMUONVCalibParam& pedestals,
44 const AliMUONVCalibParam& gains,
45 Int_t channel,
46 Float_t charge,
47 Bool_t addNoise=kFALSE);
48
92aeef15 49private:
71a2d3aa 50 /// Not implemented
4ce497c4 51 AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
71a2d3aa 52 /// Not implemented
4ce497c4 53 AliMUONDigitizerV3& operator=(const AliMUONDigitizerV3& other);
92aeef15 54
40e382ae 55 void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
92aeef15 56
40e382ae 57 void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
58 void ApplyResponseToTriggerDigit(const AliMUONVDigitStore& digitStore, AliMUONVDigit& digit);
92aeef15 59
40e382ae 60 AliLoader* GetLoader(const TString& foldername);
4ce497c4 61
40e382ae 62private:
92aeef15 63
40e382ae 64 AliMUONVDigit* FindCorrespondingDigit(const AliMUONVDigitStore& digitStore,
65 AliMUONVDigit& digit) const;
92aeef15 66
40e382ae 67 void GenerateNoisyDigits(AliMUONVDigitStore& digitStore);
68 void GenerateNoisyDigitsForOneCathode(AliMUONVDigitStore& digitStore,
69 Int_t detElemId, Int_t cathode);
8c0b5e70 70 void GenerateNoisyDigitsForTrigger(AliMUONVDigitStore& digitStore);
92aeef15 71
40e382ae 72 void MergeWithSDigits(AliMUONVDigitStore*& digitStore,
73 const AliMUONVDigitStore& input,
05314992 74 Int_t mask);
92aeef15 75
76private:
829425a5 77 Bool_t fIsInitialized; ///< are we initialized ?
829425a5 78 AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
40e382ae 79 AliMUONTriggerElectronics* fTriggerProcessor; ///< pointer to the trigger part of the job
829425a5 80 AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map
829425a5 81 TF1* fNoiseFunction; //!< function to randomly get signal above n*sigma_ped
8c0b5e70 82 TF1* fNoiseFunctionTrig; //!< function to get noise disribution on trig. chambers
83 Int_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker (1) and trigger (2)
829425a5 84 static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use
85 /// for noise-only digit generation and zero-suppression
ba26b670 86 AliMUONLogger* fLogger; //!< to keep track of messages
40e382ae 87 AliMUONVTriggerStore* fTriggerStore; //!< trigger objects
88 AliMUONVDigitStore* fDigitStore; //!< temporary digits
89 AliMUONVDigitStore* fOutputDigitStore; //!< digits we'll output to disk
ad26d4f6 90
b74ca120 91 ClassDef(AliMUONDigitizerV3,6) // MUON Digitizer V3-5
92aeef15 92};
93
94#endif