]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDReconstructor.h
Changes needed on alpha (Compaq C++ V6.2-024)
[u/mrichter/AliRoot.git] / FMD / AliFMDReconstructor.h
1 #ifndef ALIFMDRECONSTRUCTOR_H
2 #define ALIFMDRECONSTRUCTOR_H
3 //
4 //  Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
5 //  reserved. 
6 //
7 //  See cxx source for full Copyright notice                               
8 //
9 //  AliFMDReconstructor.h 
10 //  Task Class for making TreeR for FMD                        
11 //
12 //-- Authors: Evgeny Karpechev (INR) and Alla Maevskaia (INR)
13 //   Latest changes by Christian Holm Christensen <cholm@nbi.dk>
14 /*
15     Reconstruct nember of particles in given group of pads for given
16     FMDvolume determine by numberOfVolume ,
17     numberOfMinSector,numberOfMaxSector, numberOfMinRing,
18     numberOfMaxRing Reconstruction method choose dependence on number
19     of empty pads
20   */
21 /* $Id$ */
22
23 //____________________________________________________________________
24 //
25 // Class to do reconstruction of events based on the FMD data.  The
26 // class will do two kinds of reconstruction, one based on energy
27 // deposition, and one using hit patterns. 
28 //
29
30 // Header guards in the header files speeds up the compilation
31 // considerably.  Please leave them in. 
32 #ifndef ALIRECONSTRUCTOR_H
33 # include <AliReconstructor.h>
34 #endif
35 #ifndef ALIFMDMAP_H
36 # include <AliFMDMap.h>
37 #endif
38
39 //____________________________________________________________________
40 class TClonesArray;
41 class AliFMD;
42 class AliLoader;
43 class AliRunLoader;
44 class AliFMDDigit;
45 class AliRawReader;
46 typedef AliFMDMap<UShort_t> AliFMDAdcMap;
47
48
49 //____________________________________________________________________
50 class AliFMDReconstructor: public AliReconstructor 
51 {
52 public:
53   AliFMDReconstructor();
54   AliFMDReconstructor(const AliFMDReconstructor& other);
55   virtual ~AliFMDReconstructor() {}
56   AliFMDReconstructor& operator=(const AliFMDReconstructor& other);
57
58   void         SetDeltaEta(Float_t deta=.1)  { fDeltaEta = deta;  }
59   void         SetDeltaPhi(Float_t dphi=360) { fDeltaPhi = dphi;  } 
60   void         SetThreshold(UShort_t t=6)    { fThreshold = t; }
61   void         SetPedestal(Float_t mean=10, Float_t width=1);
62      
63   virtual void Reconstruct(AliRunLoader* runLoader) const;
64   virtual void Reconstruct(AliRunLoader* runLoader,  
65                            AliRawReader* rawReader) const;
66   virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const;
67   
68 protected:
69   virtual void     ProcessEvent(Int_t event, 
70                                 AliRawReader* rawReader, 
71                                 TClonesArray* digits) const;
72   virtual Bool_t   ReadAdcs(TClonesArray* digits) const;
73   virtual Bool_t   ReadAdcs(AliRawReader* rawReader) const;
74   virtual void     ProcessDigit(AliFMDDigit* digit) const;
75   virtual UShort_t SubtractPedestal(AliFMDDigit* digit) const;
76   virtual void     ReconstructFromCache(Float_t zVertex) const;
77
78   mutable AliFMDAdcMap  fAdcs;       // Cached ADC values
79   mutable AliRunLoader* fRunLoader;  // Run loader 
80   mutable AliLoader*    fFMDLoader;  // FMD specific loader 
81   mutable TClonesArray* fParticles;  // Array of particles 
82   mutable AliFMD*       fFMD;        // Pointer to FMD manager 
83   
84   Float_t               fDeltaEta;      // Bin size in eta
85   Float_t               fDeltaPhi;      // Bin size in phi
86   UShort_t              fThreshold;     // Threshold for Poisson recon.
87   Float_t               fPedestal;      // Pedestal to subtract
88   Float_t               fPedestalWidth; // Width of pedestal
89   mutable Int_t         fEmptyStrips;   // Number of empty strips
90   mutable Int_t         fTotalStrips;   // Total number of strips 
91   
92   enum { 
93     kMaxDetectors = 3,                  // Maximum number of sub-det.
94     kMaxRings     = 2,                  // Maximum number of rings
95     kMaxSectors   = 40,                 // Maximum number of sectors
96     kMaxStrips    = 512                 // Maximum number of strips
97   };
98   
99   ClassDef(AliFMDReconstructor, 0)  // class for the FMD reconstruction
100 }; 
101 #endif
102 //____________________________________________________________________
103 //
104 // Local Variables:
105 //   mode: C++
106 // End:
107 //
108 // EOF
109 //