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