]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDMerger.h
bee02e468050da7b236ec64042c5c1c224ff903e
[u/mrichter/AliRoot.git] / FMD / AliFMDMerger.h
1 #ifndef ALIFMDMERGER_H
2 #define ALIFMDMERGER_H
3 /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // #include "AliMerger.h"
7 // #include "AliMergable.h"
8 #include "TRandom.h"
9
10
11
12 class AliRunLoader;
13 class TClonesArray;
14 class TFile;
15
16 typedef enum {kDigitize=0, kMerge = 1} MergeMode_t;
17
18 class AliFMDMerger {
19  public:
20   
21   AliFMDMerger();
22   virtual ~AliFMDMerger();
23   
24   
25   // Initialize merging and digitisation
26   virtual void Init();
27   
28   // Do the main work
29   void Digitise() ;
30   Int_t PutNoise(Int_t charge){return (Int_t)(gRandom->Gaus(charge,500));}
31   TClonesArray *SDigits() const {return fSDigits;}
32  
33   void ReadDigit(Int_t a[][30][150], Int_t);
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 SetSignalFileName(char* file)     {fFnSig = file;}   
40   void SetMode(MergeMode_t mode) {fMerge = mode;}
41
42   // Granularity
43   virtual void SetRingsSi1(Int_t ringsSi1);
44   virtual void SetSectorsSi1(Int_t sectorsSi1);
45   virtual void SetRingsSi2(Int_t ringsSi2);
46   virtual void SetSectorsSi2(Int_t sectorsSi2);
47         
48     enum {kBgTag = -1};
49       
50  private:    
51     // Open the bgr file
52   TFile *InitBgr();
53   //Granularity
54   Int_t fRingsSi1;       // Number of rings
55   Int_t fSectorsSi1;    // Number of sectors
56   Int_t fRingsSi2;       // Number of rings
57   Int_t fSectorsSi2;    // Number of sectors
58    
59  private:
60     TClonesArray *fDigits;               // ! array with digits
61     TClonesArray *fSDigits      ; // List of summable digits
62     Int_t fEvNrSig;                 // signal     event number
63     Int_t fEvNrBgr;                 // background event number    
64     MergeMode_t fMerge;             // merging type kDigitize, kMerge
65     char  *fFnBgr;                  // background file name
66     char  *fFnSig;                  // signal file name
67     TFile *fBgrFile;                // Pointer to background file
68     
69     AliRunLoader* fBgrLoader; //! Background event run loader
70     AliRunLoader* fSigLoader; //! Signal event run loader
71     
72     ClassDef(AliFMDMerger,0)
73 };    
74 #endif
75