Modifications for the xlc compiler
[u/mrichter/AliRoot.git] / MUON / AliMUONMerger.h
1 #ifndef ALIMUONMERGER_H
2 #define ALIMUONMERGER_H
3 /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Revision of includes 07/05/2004
8
9 class TClonesArray;
10 class TTree;
11
12 class AliMUONPadHit;
13 class AliHitMap;
14
15 typedef enum {kDigitize=0, kMerge = 1} MergeMode_t;
16
17 class AliMUONMerger {
18  public:
19     
20     AliMUONMerger();
21     virtual ~AliMUONMerger();
22     
23     // Compare pad hits
24     virtual Bool_t Exists(const AliMUONPadHit * sdigit) const;
25     // Update a pad hit
26     virtual  void Update(AliMUONPadHit *sdigit);
27     // Create a new hit
28     virtual  void CreateNew(AliMUONPadHit *sdigit);
29
30     // Initialize merging and digitisation
31     virtual void Init();
32
33     // Do the main work
34     void Digitise() ;
35     
36     // Setters -> Later Communication with gAlice 
37     void SetSignalEventNumber(Int_t i)     {fEvNrSig = i;}
38     void SetBackgroundEventNumber(Int_t i) {fEvNrBgr = i;}    
39     void SetBackgroundFileName(char* file) {fFnBgr = file;}        
40     void SetMode(MergeMode_t mode) {fMerge = mode;}
41     void SetDebug(Int_t debug) {fDebug = debug;}
42         
43     enum {kBgTag = -1};
44
45  protected:    
46     AliMUONMerger(const AliMUONMerger& rhs);
47     AliMUONMerger& operator=(const AliMUONMerger& rhs);
48
49  private:    
50     // Open the bgr file
51     TFile *InitBgr();
52     void SortTracks(Int_t *tracks,Int_t *charges,Int_t ntr) const;
53     
54  private:
55     TTree *fTrH1;                   //! Hits Tree for background event
56     TClonesArray *fHitsBgr;         //! List of hits for one track only
57     TClonesArray *fPadHitsBgr;      //! List of clusters for one track only
58     AliHitMap **fHitMap;            //! pointer to array of pointers to hitmaps
59     Int_t fNch;                     //! chamber nr (loop variable)
60     Int_t fTrack;                   //! track nr (loop variable)
61     Int_t fCharge;                  //! charge generated by fTrack
62     Bool_t fSignal;                 //! kTRUE if signal file is processed
63     TObjArray *fList;               //! list of AliMUONTransientDigit
64     Int_t fCounter;                 //! nr. of AliMUONTransientDigit
65     Int_t fDigits[6];               //! array with digits
66     Int_t fEvNrSig;                 // signal     event number
67     Int_t fEvNrBgr;                 // background event number    
68     MergeMode_t fMerge;             // merging type kDigitize, kMerge
69     char  *fFnBgr;                  // background file name
70     TFile *fBgrFile;                // Pointer to background file
71     Int_t  fDebug;                  // level of debug printing
72     
73     ClassDef(AliMUONMerger,0)
74 };    
75 #endif
76