0d8d3cbbb1681def025c0d8573752cf14c66876c
[u/mrichter/AliRoot.git] / RICH / AliRICHMerger.h
1 #ifndef ALIRICHMERGER_H
2 #define ALIRICHMERGER_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 AliRICHSDigit;
12 class AliHitMap;
13
14 typedef enum {kDigitize=0, kMerge = 1} MergeMode_t;
15
16 class AliRICHMerger {
17  public:
18     
19     AliRICHMerger();
20     virtual ~AliRICHMerger();
21     
22     // Compare pad hits
23     virtual Bool_t Exists(const AliRICHSDigit * sdigit);
24     // Update a pad hit
25     virtual  void Update(AliRICHSDigit *sdigit);
26     // Create a new hit
27     virtual  void CreateNew(AliRICHSDigit *sdigit);
28
29     // Initialize merging and digitisation
30     virtual void Init();
31
32     // Do the main work
33     void Digitise(Int_t nev,Int_t flag) ;
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         
41     enum {kBgTag = -1};
42     
43  private:    
44     // Open the bgr file
45     TFile *InitBgr();
46  private:
47     TTree *fTrH1;                   // ! Hits Tree for background event
48     TClonesArray *fHitsBgr;         // ! List of hits for one track only
49     TClonesArray *fSDigitsBgr;      // ! List of clusters for one track only
50     AliHitMap **fHitMap;            // ! pointer to array of pointers to hitmaps
51     Int_t fNch;                     // ! chamber nr (loop variable)
52     Int_t fTrack;                   // ! track nr (loop variable)
53     TObjArray *fList;               // ! list of AliRICHTransientDigit
54     TObjArray *fTrList;             // ! list of tracks
55     TClonesArray *fAddress;         // ! pointer to TClonesArray of TVectors with trackinfo
56     Int_t fCounter;                 // ! nr. of AliRICHTransientDigit
57     Int_t fCountadr;                // ! counter for trinfo
58     Int_t fDigits[6];               // ! array with digits
59     Int_t fEvNrSig;                 // signal     event number
60     Int_t fEvNrBgr;                 // background event number    
61     MergeMode_t fMerge;             // merging type kDigitize, kMerge
62     char  *fFnBgr;                  // background file name
63     TFile *fBgrFile;                // Pointer to background file
64     
65     ClassDef(AliRICHMerger,0)
66 };    
67 #endif
68