Additional cast
[u/mrichter/AliRoot.git] / FMD / AliFMDReconstructor.h
1 // -*- mode: c++ -*- 
2 //
3 //  Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 //  reserved. 
5 //
6 //  See cxx source for full Copyright notice                               
7 //
8 //  AliFMDReconstructor.h 
9 //  Task Class for making TreeR for FMD                        
10 //
11 //-- Authors: Evgeny Karpechev (INR) and Alla Maevskaia (INR)
12 //   Latest changes by Christian Holm Christensen <cholm@nbi.dk>
13 /*
14     Reconstruct nember of particles in given group of pads for given
15     FMDvolume determine by numberOfVolume ,
16     numberOfMinSector,numberOfMaxSector, numberOfMinRing,
17     numberOfMaxRing Reconstruction method choose dependence on number
18     of empty pads
19   */
20 /* $Id$ */
21 #ifndef ALIFMDRECONSTRUCTOR_H
22 #define ALIFMDRECONSTRUCTOR_H
23 #ifndef ALIRECONSTRUCTOR_H
24 # include <AliReconstructor.h>
25 #endif
26 #ifndef ALIFMDMAP_H
27 # include <AliFMDMap.h>
28 #endif
29
30 //____________________________________________________________________
31 class TClonesArray;
32 class AliFMD;
33 class AliLoader;
34 class AliRunLoader;
35 class AliFMDDigit;
36 class AliRawReader;
37 typedef AliFMDMap<UShort_t> AliFMDAdcMap;
38
39
40 //____________________________________________________________________
41 class AliFMDReconstructor: public AliReconstructor 
42 {
43 protected:
44   mutable AliFMDAdcMap  fAdcs;
45   mutable AliRunLoader* fRunLoader;
46   mutable AliLoader*    fFMDLoader;
47   mutable TClonesArray* fParticles;
48   mutable AliFMD*       fFMD;
49   
50   Float_t               fDeltaEta;
51   Float_t               fDeltaPhi;
52   UShort_t              fThreshold;
53   Float_t               fPedestal;
54   Float_t               fPedestalWidth;
55   mutable Int_t         fEmptyStrips;
56   mutable Int_t         fTotalStrips;
57   
58   enum { 
59     kMaxDetectors = 3, 
60     kMaxRings     = 2, 
61     kMaxSectors   = 20, 
62     kMaxStrips    = 512
63   };
64   
65 public:
66   AliFMDReconstructor();
67   virtual ~AliFMDReconstructor() {}
68
69   void         SetDeltaEta(Float_t deta=.1)  { fDeltaEta = deta;  }
70   void         SetDeltaPhi(Float_t dphi=360) { fDeltaPhi = dphi;  } 
71   void         SetThreshold(UShort_t t=6)    { fThreshold = t; }
72   void         SetPedestal(Float_t mean=10, Float_t width=1);
73      
74   virtual void Reconstruct(AliRunLoader* runLoader) const;
75   virtual void Reconstruct(AliRunLoader* runLoader,  
76                            AliRawReader* rawReader) const;
77   virtual void FillESD(AliRunLoader* runLoader, AliESD* esd) const;
78   
79 protected:
80   virtual void     ProcessEvent(Int_t event, 
81                                 AliRawReader* rawReader, 
82                                 TClonesArray* digits) const;
83   virtual Bool_t   ReadAdcs(TClonesArray* digits) const;
84   virtual Bool_t   ReadAdcs(AliRawReader* rawReader) const;
85   virtual void     ProcessDigit(AliFMDDigit* digit) const;
86   virtual UShort_t SubtractPedestal(AliFMDDigit* digit) const;
87   virtual void     ReconstructFromCache(Float_t zVertex) const;
88   ClassDef(AliFMDReconstructor, 0)  // class for the FMD reconstruction
89 }; 
90 #endif
91 //____________________________________________________________________
92 //
93 // EOF
94 //