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