Merging implemented
[u/mrichter/AliRoot.git] / ZDC / AliZDCMerger.h
1 #ifndef ALIZDCMERGER_H
2 #define ALIZDCMERGER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////
7 //              Merger class for ZDC          //
8 ////////////////////////////////////////////////
9
10 class AliZDC;
11 class AliZDCHit;
12 class AliZDCDigit;
13
14 typedef enum {kDigitize=0, kMerge=1} MergeMode_t;
15
16 class AliZDCMerger{
17
18 public:
19    AliZDCMerger();
20    virtual ~AliZDCMerger();
21    
22    void    InitMerging();
23    void    Background(Float_t &b, Int_t &nspecn, Int_t &nspecp);
24    void    Fragmentation(Float_t b, Int_t nspecn, Int_t nspecp,
25                          Int_t &nfreespn, Int_t &nfreespp);
26    void    Mixing(Int_t nfreespn, Int_t nfreespp);
27    void    ExtractSignal(Int_t detector, Int_t quadrant, Float_t &quadLight, 
28                          Float_t &comLight);
29 //   void    MergeHit(Int_t track, Int_t *vol, Float_t *hits);
30
31    void    Digitize();
32    Int_t   Phe2ADCch(Int_t Detector, Int_t Quadrant, Int_t Light);
33    Int_t   AddPedestal();
34    
35    // Setters 
36    void SetBackgroundFileName(char* file) {fFnBgr = file;}        
37    void SetMode(MergeMode_t mode)         {fMerge = mode;}
38      
39 private:
40    //Open the background file 
41    TFile *OpenBgrFile(); 
42
43 protected:
44    MergeMode_t  fMerge;         // Merging type kDigitize, kMerge
45    
46    // Background event
47    Int_t        fNEvBgr;        // Number of events in the background file
48    char         *fFnBgr;        // Background file name
49    TFile        *fBgrFile;      // Pointer to background file
50    TTree        *fTrHBgr;       // Hits tree for background event
51    TTree        *fTrSDBgr;      // SDigits tree for background event
52    Float_t      fImpPar;        // Impact Parameter of the collision
53    Int_t        fSpecn;         // Number of spectator n
54    Int_t        fSpecp;         // Number of spectator p
55    TClonesArray *fHitsBgr;      // TClonesArray of background hits
56
57    // Signal events
58    Int_t        fFreeSpn;       // Signal event number x spectator n
59    Int_t        fFreeSpp;       // Signal event number x spectator p
60       
61    // File containing hit histograms for spectators
62    char         *fFnSpecn;      // Spectator n file name
63    TFile        *fSpecnFile;    // Pointer to signal file -> spectator n
64    char         *fFnSpecp;      // Spectator p file name
65    TFile        *fSpecpFile;    // Pointer to signal file -> spectator p
66    Float_t      fQuadLight;     // Light produced in tower PM
67    Float_t      fComLight;      // Light produced in common PM
68    
69    Int_t        fTrack;
70
71 //  // *** Digits
72 //  // --- Digitization parameters setters and getters
73 //  //  PM gain
74 //  void SetPMGain(Int_t Det, Int_t PMDet, Int_t PMGain)
75 //       {fPMGain[Det][PMDet] = PMGain;}
76 //  Float_t GetPMGain(Int_t Det, Int_t PMDet)
77 //       {return fPMGain[Det][PMDet];}
78 //  //  Conversion factor from charge to ADC channels
79 //  //          F = 1.6E-19 / Resolution [Coulomb/ch]
80 //  void SetADCRes(Int_t ADCRes) {fADCRes =  ADCRes;}
81 //  Float_t GetADCRes() {return fADCRes;}
82 //
83 //  // --- Parameters for conversion of light yield in ADC channels
84 //  Float_t fPMGain[3][5];      // PM gain
85 //  Float_t fADCRes;            // ADC conversion factor
86   
87        
88     ClassDef(AliZDCMerger,0)
89 };    
90 #endif