]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDigitizerV3.h
Adding protected copy constructor and assignment operator
[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 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 class AliMUONCalibrationData;
20 class AliMUONData;
21 class AliMUONDigit;
22 class TClonesArray;
23 class TString;
24
25 class AliMUONDigitizerV3 : public AliDigitizer
26 {
27 public:
28   enum ETriggerCodeVersion
29   {
30     kTriggerDecision=-1,
31     kTriggerElectronics
32   };
33   
34   AliMUONDigitizerV3(AliRunDigitizer* manager=0, 
35                      ETriggerCodeVersion=kTriggerDecision);
36   virtual ~AliMUONDigitizerV3();
37
38   virtual void Exec(Option_t* opt="");
39   
40   virtual Bool_t Init();
41
42 protected:
43   AliMUONDigitizerV3(const AliMUONDigitizerV3& right);
44   AliMUONDigitizerV3&  operator = (const AliMUONDigitizerV3& right);
45      
46 private:
47     
48   void AddOrUpdateDigit(TClonesArray& array, 
49                         const AliMUONDigit& digit);
50     
51   void ApplyResponse();
52
53   void ApplyResponseToDigit(AliMUONDigit& digit);
54
55   Int_t FindDigitIndex(TClonesArray& array, const AliMUONDigit& digit);
56
57   AliMUONData* GetDataAccess(const TString& folderName);
58
59   Bool_t MergeDigits(const AliMUONDigit& src, AliMUONDigit& srcAndDest);
60
61   void MergeWithSDigits(AliMUONData& outputData, const AliMUONData& inputData, 
62                         Int_t mask);
63   
64 private:
65   Bool_t fIsInitialized; // are we initialized ?
66   AliMUONData* fOutputData; //! pointer to access digits
67   AliMUONCalibrationData* fCalibrationData; //! pointer to access calib parameters
68   TTask* fTriggerProcessor; // pointer to the trigger part of the job
69   ETriggerCodeVersion fTriggerCodeVersion; // which version of trigger job
70   
71   ClassDef(AliMUONDigitizerV3,2) // MUON Digitizer V3-2
72 };
73
74 #endif