905fb00853b01b046a8f6c47ca823ab33790f371
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitizerV3.h
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 New digitizer, not deriving from MUONDigitizer and doing
9 /// decalibration of digits
10 /// 
11 /// \author Laurent Aphecetche
12
13 #ifndef ALIMUONDIGITIZERV3_H
14 #define ALIMUONDIGITIZERV3_H
15
16 #ifndef ALIDIGITIZER_H
17 #include "AliDigitizer.h"
18 #endif
19
20 class AliMUONCalibrationData;
21 class AliMUONData;
22 class AliMUONDigit;
23 class TClonesArray;
24 class TString;
25
26 class AliMUONDigitizerV3 : public AliDigitizer
27 {
28 public:
29   enum ETriggerCodeVersion
30   {
31     kTriggerDecision=-1,
32     kTriggerElectronics
33   };
34   
35   AliMUONDigitizerV3(AliRunDigitizer* manager=0, 
36                      ETriggerCodeVersion=kTriggerDecision);
37   virtual ~AliMUONDigitizerV3();
38
39   virtual void Exec(Option_t* opt="");
40   
41   virtual Bool_t Init();
42
43 private:
44     
45   void AddOrUpdateDigit(TClonesArray& array, 
46                         const AliMUONDigit& digit);
47     
48   void ApplyResponse();
49
50   void ApplyResponseToDigit(AliMUONDigit& digit);
51
52   Int_t FindDigitIndex(TClonesArray& array, const AliMUONDigit& digit);
53
54   AliMUONData* GetDataAccess(const TString& folderName);
55
56   Bool_t MergeDigits(const AliMUONDigit& src, AliMUONDigit& srcAndDest);
57
58   void MergeWithSDigits(AliMUONData& outputData, const AliMUONData& inputData);
59   
60 private:
61   Int_t fZeroSuppression;
62   Int_t fSaturation;
63   Bool_t fIsInitialized; 
64   AliMUONData* fOutputData; //!
65   AliMUONCalibrationData* fCalibrationData; //!
66   TTask* fTriggerProcessor;
67   ETriggerCodeVersion fTriggerCodeVersion;
68   
69   ClassDef(AliMUONDigitizerV3,1) // 
70 };
71
72 #endif