]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONDigitizerV3.h
Correct function Compare() for "pixels" from MLEM cluster finder.
[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;
40e382ae 24class AliMUONVDigit;
ad26d4f6 25class AliMUONLogger;
4ce497c4 26class AliMUONTriggerEfficiencyCells;
92aeef15 27class TClonesArray;
4ce497c4 28class TF1;
92aeef15 29class TString;
40e382ae 30class AliMUONVDigitStore;
31class AliLoader;
32class AliMUONVTriggerStore;
33class AliMUONTriggerElectronics;
92aeef15 34
35class AliMUONDigitizerV3 : public AliDigitizer
36{
37public:
92aeef15 38 AliMUONDigitizerV3(AliRunDigitizer* manager=0,
4ce497c4 39 Bool_t generateNoisyDigits=kTRUE);
92aeef15 40 virtual ~AliMUONDigitizerV3();
41
42 virtual void Exec(Option_t* opt="");
43
44 virtual Bool_t Init();
45
46private:
71a2d3aa 47 /// Not implemented
4ce497c4 48 AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
71a2d3aa 49 /// Not implemented
4ce497c4 50 AliMUONDigitizerV3& operator=(const AliMUONDigitizerV3& other);
92aeef15 51
40e382ae 52 void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
92aeef15 53
40e382ae 54 void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
55 void ApplyResponseToTriggerDigit(const AliMUONVDigitStore& digitStore, AliMUONVDigit& digit);
92aeef15 56
40e382ae 57 AliLoader* GetLoader(const TString& foldername);
4ce497c4 58
40e382ae 59private:
92aeef15 60
40e382ae 61 AliMUONVDigit* FindCorrespondingDigit(const AliMUONVDigitStore& digitStore,
62 AliMUONVDigit& digit) const;
92aeef15 63
40e382ae 64 void GenerateNoisyDigits(AliMUONVDigitStore& digitStore);
65 void GenerateNoisyDigitsForOneCathode(AliMUONVDigitStore& digitStore,
66 Int_t detElemId, Int_t cathode);
92aeef15 67
40e382ae 68 void MergeWithSDigits(AliMUONVDigitStore*& digitStore,
69 const AliMUONVDigitStore& input,
05314992 70 Int_t mask);
92aeef15 71
72private:
829425a5 73 Bool_t fIsInitialized; ///< are we initialized ?
829425a5 74 AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
40e382ae 75 AliMUONTriggerElectronics* fTriggerProcessor; ///< pointer to the trigger part of the job
829425a5 76 AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map
829425a5 77 TStopwatch fGenerateNoisyDigitsTimer; //!< counting time spent in GenerateNoisyDigits()
78 TStopwatch fExecTimer; //!< couting time spent in Exec()
79 TF1* fNoiseFunction; //!< function to randomly get signal above n*sigma_ped
80 Bool_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker
81 static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use
82 /// for noise-only digit generation and zero-suppression
ba26b670 83 AliMUONLogger* fLogger; //!< to keep track of messages
40e382ae 84 AliMUONVTriggerStore* fTriggerStore; //!< trigger objects
85 AliMUONVDigitStore* fDigitStore; //!< temporary digits
86 AliMUONVDigitStore* fOutputDigitStore; //!< digits we'll output to disk
ad26d4f6 87
40e382ae 88 ClassDef(AliMUONDigitizerV3,5) // MUON Digitizer V3-5
92aeef15 89};
90
91#endif