18dc6ee6022bbe2cb4997edbeaefc7cbd7cab461
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitizerv1.h
1 #ifndef ALIMUONDIGITIZERV1_H
2 #define ALIMUONDIGITIZERV1_H
3 /* Copyright(c) 1998-2001, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // The AliMUONDigitizer procees :
7 // - Addition of hits from different tracks
8 // - Merging of hits from different files
9 // - The response function of the chamber.
10 // - Simulation of the electronic noise, threshold and saturation
11 // 
12 // Gines MARTINEZ Subatech Feb 2003 
13
14 #include "AliDigitizer.h"
15 class AliRunDigitizer;
16 class AliMUONPadHit;
17 class AliMUONHitMapA1;
18
19 class AliMUONDigitizerv1 : public AliDigitizer {
20
21  public:    
22     AliMUONDigitizerv1();
23     AliMUONDigitizerv1(AliRunDigitizer * manager);
24     virtual ~AliMUONDigitizerv1();
25
26     // Create a new TransientDigit
27     virtual void   AddTransientDigit(AliMUONTransientDigit * mTD);
28     // Do the main work
29     virtual void   Exec(Option_t* option=0);
30     // Verifying a TransientDigit
31     virtual Bool_t ExistTransientDigit(AliMUONTransientDigit * mTD); 
32     // Getting debug level 
33     Int_t          GetDebug() const {return fDebug;}       // get debug level
34     // Initialize merging and digitization
35     virtual Bool_t Init();
36     // Generation of a TransientDigit : Response function of the chamber
37     virtual void   MakeTransientDigit(Int_t itrack, Int_t ihit, AliMUONHit * mHit);
38     // Setting debug level
39     void           SetDebug(Int_t level){fDebug = level;}   // set debug level    
40     enum {kBgTag = -1};
41     // Updating a TransientDigit
42     virtual void   UpdateTransientDigit(Int_t itrack, AliMUONTransientDigit * mTD);
43     
44     private:    
45     void           SortTracks(Int_t *tracks,Int_t *charges,Int_t ntr);
46     
47     private:
48     AliMUONHitMapA1 **fHitMap;      //! pointer to array of pointers to hitmaps
49     TObjArray *fTDList;             //! list of AliMUONTransientDigits
50     Int_t fTDCounter;                 //! nr. of AliMUONTransientDigits
51     Int_t fDebug;                   //! debug level
52     Int_t fMask;                    //! mask dependent on input file
53     Bool_t fSignal;                 //! kTRUE if signal file is processed
54
55
56     ClassDef(AliMUONDigitizerv1,1) 
57 };    
58 #endif
59