]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONDigitizerV3.h
Runloader is updated when moving to next file (quick fix).
[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
4ce497c4 19#ifndef ROOT_TStopwatch
20# include "TStopwatch.h"
21#endif
22
92aeef15 23class AliMUONCalibrationData;
24class AliMUONData;
25class AliMUONDigit;
ad26d4f6 26class AliMUONLogger;
4ce497c4 27class AliMUONTriggerEfficiencyCells;
92aeef15 28class TClonesArray;
4ce497c4 29class TF1;
92aeef15 30class TString;
31
32class AliMUONDigitizerV3 : public AliDigitizer
33{
34public:
92aeef15 35 AliMUONDigitizerV3(AliRunDigitizer* manager=0,
4ce497c4 36 Bool_t generateNoisyDigits=kTRUE);
92aeef15 37 virtual ~AliMUONDigitizerV3();
38
39 virtual void Exec(Option_t* opt="");
40
41 virtual Bool_t Init();
42
43private:
71a2d3aa 44 /// Not implemented
4ce497c4 45 AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
71a2d3aa 46 /// Not implemented
4ce497c4 47 AliMUONDigitizerV3& operator=(const AliMUONDigitizerV3& other);
48
92aeef15 49 void AddOrUpdateDigit(TClonesArray& array,
50 const AliMUONDigit& digit);
51
52 void ApplyResponse();
53
4ce497c4 54 void ApplyResponseToTrackerDigit(AliMUONDigit& digit, Bool_t addNoise);
ad26d4f6 55 void ApplyResponseToTriggerDigit(AliMUONDigit& digit);
92aeef15 56
4ce497c4 57private:
ad26d4f6 58 AliMUONDigit* FindCorrespondingDigit(AliMUONDigit& digit) const;
4ce497c4 59
60 Int_t FindDigitIndex(TClonesArray& array, const AliMUONDigit& digit) const;
61
62 void GenerateNoisyDigits();
63 void GenerateNoisyDigitsForOneCathode(Int_t detElemId, Int_t cathode);
92aeef15 64
65 AliMUONData* GetDataAccess(const TString& folderName);
66
67 Bool_t MergeDigits(const AliMUONDigit& src, AliMUONDigit& srcAndDest);
68
05314992 69 void MergeWithSDigits(AliMUONData& outputData, const AliMUONData& inputData,
70 Int_t mask);
92aeef15 71
72private:
829425a5 73 Bool_t fIsInitialized; ///< are we initialized ?
74 AliMUONData* fOutputData; //!< pointer to access digits
75 AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
76 TTask* fTriggerProcessor; ///< pointer to the trigger part of the job
829425a5 77 AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map
78 mutable TStopwatch fFindDigitIndexTimer; //!< counting time spent in FindDigitIndex
79 TStopwatch fGenerateNoisyDigitsTimer; //!< counting time spent in GenerateNoisyDigits()
80 TStopwatch fExecTimer; //!< couting time spent in Exec()
81 TF1* fNoiseFunction; //!< function to randomly get signal above n*sigma_ped
82 Bool_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker
83 static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use
84 /// for noise-only digit generation and zero-suppression
ba26b670 85 AliMUONLogger* fLogger; //!< to keep track of messages
ad26d4f6 86
4ce497c4 87 ClassDef(AliMUONDigitizerV3,3) // MUON Digitizer V3-3
92aeef15 88};
89
90#endif