AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliFMDReconstructor.h
Go to the documentation of this file.
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 /* $Id$ */
21 //____________________________________________________________________
22 // Header guards in the header files speeds up the compilation
23 // considerably. Please leave them in.
24 #ifndef ALIRECONSTRUCTOR_H
25 # include <AliReconstructor.h>
26 #endif
27 #include "AliLog.h"
28 #include <AliFMDBoolMap.h>
29 
30 //____________________________________________________________________
31 class TTree;
32 class TClonesArray;
33 class AliFMDDigit;
34 class AliRawReader;
35 class AliFMDRawReader;
36 class AliESDEvent;
37 class AliESDFMD;
38 class AliFMDRecoParam;
39 class TH1;
40 
41 
49 //____________________________________________________________________
60 class AliFMDReconstructor: public AliReconstructor
61 {
62 public:
70  virtual ~AliFMDReconstructor();
71 
79  virtual void Init();
85  virtual Bool_t HasDigitConversion() const { return kTRUE; }
98  virtual void ConvertDigits(AliRawReader* reader, TTree* digitsTree) const;
111  virtual void Reconstruct(TTree* digitsTree, TTree* clusterTree) const;
118  virtual void Reconstruct(AliRawReader *, TTree*) const;
127  virtual void Reconstruct(AliFMDRawReader& reader) const;
140  virtual void FillESD(TTree* digitsTree, TTree* clusterTree,
141  AliESDEvent* esd) const;
145  virtual void FillESD(AliRawReader*, TTree* clusterTree,
146  AliESDEvent* esd) const;
152  AliESDFMD* GetESDObject() const { return fESDObj; }
159  virtual void Digitize(AliRawReader* reader,
160  TClonesArray* sdigits) const;
161 
165  virtual void SetESD(AliESDEvent* esd) { fESD = esd; }
171  virtual void SetNoiseFactor(Float_t f=3) { fNoiseFactor = f; }
177  virtual void SetAngleCorrect(Bool_t use=kTRUE) { fAngleCorrect = use; }
193  void SetDiagnose(Bool_t use=kTRUE) { fDiagnostics = use; }
203  virtual void ProcessDigits(TClonesArray* digits,
204  const AliFMDRawReader& rawRead) const;
205 
206 protected:
212  AliFMDReconstructor(const AliFMDReconstructor&); //Not implemented
220  AliFMDReconstructor& operator=(const AliFMDReconstructor&); //Not implemented
226  Bool_t PreReconstruct() const;
234  virtual void GetVertex(AliESDEvent* esd) const;
242  virtual void UseRecoParam(Bool_t set=kTRUE) const;
251  virtual void ProcessDigits(TClonesArray* digits) const;
257  virtual void ProcessDigit(AliFMDDigit* digit) const;
267  virtual void ProcessSignal(UShort_t det,
268  Char_t rng,
269  UShort_t sec,
270  UShort_t str,
271  Short_t adc) const;
283  virtual void DigitizeSignal(TClonesArray* sdigits,
284  UShort_t det,
285  Char_t rng,
286  UShort_t sec,
287  UShort_t str,
288  UShort_t sam,
289  Short_t adc) const;
307  virtual UShort_t SubtractPedestal(UShort_t det,
308  Char_t rng,
309  UShort_t sec,
310  UShort_t str,
311  UShort_t adc,
312  Float_t noiseFactor,
313  Bool_t zsEnabled,
314  UShort_t zsNoiseFactor) const;
326  virtual UShort_t SubtractPedestal(UShort_t det,
327  Char_t rng,
328  UShort_t sec,
329  UShort_t str,
330  Short_t adc) const;
349  virtual Float_t Adc2Energy(UShort_t det,
350  Char_t rng,
351  UShort_t sec,
352  UShort_t str,
353  UShort_t count) const;
372  virtual Float_t Adc2Energy(UShort_t det,
373  Char_t rng,
374  UShort_t sec,
375  UShort_t str,
376  Float_t eta,
377  UShort_t count) const;
398  virtual Float_t Energy2Multiplicity(UShort_t det,
399  Char_t rng,
400  UShort_t sec,
401  UShort_t str,
402  Float_t edep) const;
417  virtual void PhysicalCoordinates(UShort_t det,
418  Char_t rng,
419  UShort_t sec,
420  UShort_t str,
421  Float_t& eta,
422  Float_t& phi) const;
429  void MarkDeadChannels(AliESDFMD* esd) const;
430 
438  const AliFMDRecoParam* GetParameters() const;
444  Int_t GetIdentifier() const;
445  enum Vertex_t {
446  kNoVertex, // Got no vertex
447  kGenVertex, // Got generator vertex
448  kESDVertex // Got ESD vertex
449  };
450  mutable TClonesArray* fMult; // Cache of RecPoints
451  mutable Int_t fNMult; // Number of entries in fMult
452  mutable TTree* fTreeR; // Output tree
453  mutable Float_t fCurrentVertex; // Z-coordinate of primary vertex
454  mutable AliESDFMD* fESDObj; // ESD output object
455  mutable Float_t fNoiseFactor; // Factor of noise to check
456  mutable Bool_t fAngleCorrect; // Whether to angle correct
457  mutable Vertex_t fVertexType; // What kind of vertex we got
458  AliESDEvent* fESD; // ESD object(?)
459  Bool_t fDiagnostics; // Wheter to do diagnostics
460  TH1* fDiagStep1; // Diagnostics histogram
461  TH1* fDiagStep2; // Diagnostics histogram
462  TH1* fDiagStep3; // Diagnostics histogram
463  TH1* fDiagStep4; // Diagnostics histogram
464  TH1* fDiagAll; // Diagnostics histogram
465  mutable Bool_t fZS[3]; // Zero-suppredded?
466  mutable UShort_t fZSFactor[3]; // Noise factor for Zero-suppression
467  mutable AliFMDBoolMap fBad; // Strip marked bad
468  Bool_t fZombie; // Are we a zombie?
469 private:
470 
471  ClassDef(AliFMDReconstructor, 3) // class for the FMD reconstruction
472 };
473 #endif
474 //____________________________________________________________________
475 //
476 // Local Variables:
477 // mode: C++
478 // End:
479 //
480 // EOF
481 //
virtual void GetVertex(AliESDEvent *esd) const
class for digits
Definition: AliFMDDigit.h:28
virtual UShort_t SubtractPedestal(UShort_t det, Char_t rng, UShort_t sec, UShort_t str, UShort_t adc, Float_t noiseFactor, Bool_t zsEnabled, UShort_t zsNoiseFactor) const
virtual void Reconstruct(TTree *digitsTree, TTree *clusterTree) const
virtual void UseRecoParam(Bool_t set=kTRUE) const
const AliFMDRecoParam * GetParameters() const
virtual void PhysicalCoordinates(UShort_t det, Char_t rng, UShort_t sec, UShort_t str, Float_t &eta, Float_t &phi) const
Class to read ALTRO formated raw data from an AliRawReader object.
TFile f("CalibObjects.root")
virtual void SetAngleCorrect(Bool_t use=kTRUE)
void SetDiagnose(Bool_t use=kTRUE)
AliFMDReconstructor & operator=(const AliFMDReconstructor &)
virtual void FillESD(TTree *digitsTree, TTree *clusterTree, AliESDEvent *esd) const
Per strip boolean map.
virtual void DigitizeSignal(TClonesArray *sdigits, UShort_t det, Char_t rng, UShort_t sec, UShort_t str, UShort_t sam, Short_t adc) const
virtual Float_t Energy2Multiplicity(UShort_t det, Char_t rng, UShort_t sec, UShort_t str, Float_t edep) const
virtual void ConvertDigits(AliRawReader *reader, TTree *digitsTree) const
MAp of per strip boolean values.
Definition: AliFMDBoolMap.h:29
virtual void ProcessSignal(UShort_t det, Char_t rng, UShort_t sec, UShort_t str, Short_t adc) const
This is a class that reconstructs AliFMDRecPoint objects from of Digits.
Macros to do fast simulation of processes important for tuning of reconstruction Currently fast simulation of ionization digitization and cluster finder AliTPCclusterFast How to use it a which macro to use(I know it was somewhere in AliRoot but with the GIT page I dont find it anymore)
Bool_t PreReconstruct() const
virtual Float_t Adc2Energy(UShort_t det, Char_t rng, UShort_t sec, UShort_t str, UShort_t count) const
virtual void SetNoiseFactor(Float_t f=3)
AliESDFMD * GetESDObject() const
Int_t det
Definition: AliFMDv1.cxx:70
Int_t str
Definition: AliFMDv1.cxx:83
virtual void ProcessDigit(AliFMDDigit *digit) const
Double_t phi
Definition: AliFMDv1.cxx:88
virtual Bool_t HasDigitConversion() const
virtual void ProcessDigits(TClonesArray *digits, const AliFMDRawReader &rawRead) const
virtual void SetESD(AliESDEvent *esd)
virtual void Digitize(AliRawReader *reader, TClonesArray *sdigits) const
void MarkDeadChannels(AliESDFMD *esd) const
return kTRUE
Definition: AliFMDv1.cxx:97