]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDReconstructor.h
Got rid of class template AliFMD<Type> on request of Federico, who
[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 ROOT_TObjArray
36 # include <TObjArray.h>
37 #endif
38 // #ifndef ALIFMDUSHORTMAP_H
39 // # include <AliFMDUShortMap.h>
40 // #endif
41
42 //____________________________________________________________________
43 class TClonesArray;
44 class AliFMD;
45 class AliLoader;
46 class AliRunLoader;
47 class AliFMDDigit;
48 class AliRawReader;
49
50 // typedef AliFMDUShortMap AliFMDAdcMap;
51
52
53 //____________________________________________________________________
54 class AliFMDReconstructor: public AliReconstructor 
55 {
56 public:
57   AliFMDReconstructor();
58   AliFMDReconstructor(const AliFMDReconstructor& other);
59   virtual ~AliFMDReconstructor() {}
60   AliFMDReconstructor& operator=(const AliFMDReconstructor& other);
61
62   void         SetDeltaEta(Float_t deta=.1)  { fDeltaEta = deta;  }
63   void         SetDeltaPhi(Float_t dphi=360) { fDeltaPhi = dphi;  } 
64   void         SetThreshold(UShort_t t=6)    { fThreshold = t; }
65   void         SetPedestal(Float_t mean=10, Float_t width=1, Float_t f=3);
66      
67   virtual void Reconstruct(AliRunLoader* runLoader) const;
68   virtual void Reconstruct(AliRunLoader* runLoader,  
69                            AliRawReader* rawReader) const;
70   virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const;
71   
72 protected:
73   virtual void     ProcessEvent(Int_t event, 
74                                 AliRawReader* rawReader) const;
75   virtual void     ProcessDigits(TClonesArray* digits) const;
76   virtual UShort_t SubtractPedestal(AliFMDDigit* digit) const;
77   virtual void     ReconstructFromCache() const;
78
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   TObjArray             fAlgorithms;    // Array of algorithms
85   Float_t               fDeltaEta;      // Bin size in eta
86   Float_t               fDeltaPhi;      // Bin size in phi
87   UShort_t              fThreshold;     // Threshold for Poisson recon.
88   Float_t               fPedestal;      // Pedestal to subtract
89   Float_t               fPedestalWidth; // Width of pedestal
90   Float_t               fPedestalFactor;// Number of pedestal widths 
91   mutable Int_t         fEmptyStrips;   // Number of empty strips
92   mutable Int_t         fTotalStrips;   // Total number of strips 
93   mutable Float_t       fCurrentVertex; // Z-coordinate of primary vertex
94   
95   enum { 
96     kMaxDetectors = 3,                  // Maximum number of sub-det.
97     kMaxRings     = 2,                  // Maximum number of rings
98     kMaxSectors   = 40,                 // Maximum number of sectors
99     kMaxStrips    = 512                 // Maximum number of strips
100   };
101   
102   ClassDef(AliFMDReconstructor, 0)  // class for the FMD reconstruction
103 }; 
104 #endif
105 //____________________________________________________________________
106 //
107 // Local Variables:
108 //   mode: C++
109 // End:
110 //
111 // EOF
112 //