]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONMerger.h
Constructor needed by AliMUONv3 added. (G. Martinez)
[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
8 // #include "AliMerger.h"
9 // #include "AliMergable.h"
10
11 class AliMUONPadHit;
12 class AliHitMap;
13
14 typedef enum {kDigitize=0, kMerge = 1} MergeMode_t;
15
16 class AliMUONMerger {
17  public:
18     
19     AliMUONMerger();
20     virtual ~AliMUONMerger();
21     
22     // Compare pad hits
23     virtual Bool_t Exists(const AliMUONPadHit * sdigit) const;
24     // Update a pad hit
25     virtual  void Update(AliMUONPadHit *sdigit);
26     // Create a new hit
27     virtual  void CreateNew(AliMUONPadHit *sdigit);
28
29     // Initialize merging and digitisation
30     virtual void Init();
31
32     // Do the main work
33     void Digitise() ;
34     
35     // Setters -> Later Communication with gAlice 
36     void SetSignalEventNumber(Int_t i)     {fEvNrSig = i;}
37     void SetBackgroundEventNumber(Int_t i) {fEvNrBgr = i;}    
38     void SetBackgroundFileName(char* file) {fFnBgr = file;}        
39     void SetMode(MergeMode_t mode) {fMerge = mode;}
40     void SetDebug(Int_t debug) {fDebug = debug;}
41         
42     enum {kBgTag = -1};
43     
44  private:    
45     // Open the bgr file
46     TFile *InitBgr();
47     void SortTracks(Int_t *tracks,Int_t *charges,Int_t ntr);
48     
49  private:
50     TTree *fTrH1;                   //! Hits Tree for background event
51     TClonesArray *fHitsBgr;         //! List of hits for one track only
52     TClonesArray *fPadHitsBgr;      //! List of clusters for one track only
53     AliHitMap **fHitMap;            //! pointer to array of pointers to hitmaps
54     Int_t fNch;                     //! chamber nr (loop variable)
55     Int_t fTrack;                   //! track nr (loop variable)
56     Int_t fCharge;                  //! charge generated by fTrack
57     Bool_t fSignal;                 //! kTRUE if signal file is processed
58     TObjArray *fList;               //! list of AliMUONTransientDigit
59     Int_t fCounter;                 //! nr. of AliMUONTransientDigit
60     Int_t fDigits[6];               //! array with digits
61     Int_t fEvNrSig;                 // signal     event number
62     Int_t fEvNrBgr;                 // background event number    
63     MergeMode_t fMerge;             // merging type kDigitize, kMerge
64     char  *fFnBgr;                  // background file name
65     TFile *fBgrFile;                // Pointer to background file
66     Int_t  fDebug;                  // level of debug printing
67     
68     ClassDef(AliMUONMerger,0)
69 };    
70 #endif
71