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