Adding a reminder for coders
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALRawUtils.h
1 // -*- mode: c++ -*-
2 #ifndef ALIEMCALRAWUTILS_H
3 #define ALIEMCALRAWUTILS_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice     */
6
7 /* $Id$ */
8
9
10 //_________________________________________________________________________
11 //  Utility Class for handling Raw data
12 //  Does all transitions from Digits to Raw and vice versa, 
13 //  for simu and reconstruction
14 //
15 //  Note: the current version is still simplified. Only 
16 //    one raw signal per digit is generated; either high-gain or low-gain
17 //    Need to add concurrent high and low-gain info in the future
18 //    No pedestal is added to the raw signal.
19 //
20 //*-- Author: Marco van Leeuwen (LBL)
21 //
22 #include "TObject.h" // for ROOT types
23 #include <TString.h>
24
25
26 class AliAnalysisManager;
27 class AliCaloRawStreamV3;
28 class AliAltroMapping;
29 class TGraph;
30 class AliRawReader;
31 class AliEMCALGeometry;
32 class AliCaloCalibPedestal;
33 class AliCaloRawAnalyzer;
34 class AliCaloRawAnalyzerLMSOffline;
35 class AliEMCALTriggerRawDigitMaker;
36 class AliEMCALTriggerData;
37
38 #include "AliCaloConstants.h"
39
40
41 class AliEMCALRawUtils : public TObject {
42  public:
43   AliEMCALRawUtils(Algo::fitAlgorithm fitAlgo = Algo::kStandard);
44   virtual ~AliEMCALRawUtils();
45   void Digits2Raw();
46   void Raw2Digits(AliRawReader *reader, TClonesArray *digitsArr, const AliCaloCalibPedestal* pedbadmap,
47                                   TClonesArray *digitsTRG=0x0, AliEMCALTriggerData* trgData = 0x0);
48   void AddDigit(TClonesArray *digitsArr, Int_t id, Int_t lowGain, Float_t amp, Float_t time, Float_t chi2, Int_t ndf);
49   void TrimDigits(TClonesArray *digitsArr);
50   Int_t    GetNoiseThreshold()             const { return fNoiseThreshold; }
51   Int_t    GetNPedSamples()                const { return fNPedSamples; }
52   Bool_t   GetRemoveBadChannels() const {return fRemoveBadChannels;}
53   Int_t    GetFittingAlgorithm()  const {return fFittingAlgorithm; }
54   Float_t  GetTimeMax()           const {return fTimeMax ;}
55   Float_t  GetTimeMin()           const {return fTimeMin ;}
56   Bool_t   UseFALTRO()            const {return fUseFALTRO; }
57   void SetNoiseThreshold(Int_t val)                {fNoiseThreshold=val; }
58   void SetNPedSamples(Int_t val)                   {fNPedSamples=val; }
59   void SetRemoveBadChannels(Bool_t val)            {fRemoveBadChannels=val; }
60   void SetFittingAlgorithm(Int_t val) ;             
61   void SetTimeMin(Float_t t)                       {fTimeMin   = t          ;}
62   void SetTimeMax(Float_t t)                       {fTimeMax   = t          ;}
63   void SetFALTROUsage(Bool_t val)                  {fUseFALTRO=val; }
64   AliCaloRawAnalyzer *GetRawAnalyzer()  const { return fRawAnalyzer;}
65   virtual Option_t* GetOption() const { return fOption.Data(); }
66   void SetOption(const Option_t* opt) { fOption = opt; }
67   
68 private:
69   AliEMCALRawUtils(const AliEMCALRawUtils& rawUtils);  //copy ctor
70   AliEMCALRawUtils& operator =(const AliEMCALRawUtils& rawUtils);
71   Int_t fNoiseThreshold;                // threshold to consider signal or noise
72   Int_t fNPedSamples;                   // number of samples to use in pedestal calculation
73   AliEMCALGeometry* fGeom;              // geometry
74   AliAltroMapping*  fMapping[4];        // only two for now
75   TString fOption;                      // option passed from Reconstructor
76   Bool_t  fRemoveBadChannels;           // select if bad channels are removed before fitting
77   Int_t   fFittingAlgorithm;            // select the fitting algorithm
78   Float_t fTimeMin;                     // minimum threshold for the time of the signal
79   Float_t fTimeMax;                     // maximum threshold for the time of the signal
80   Bool_t  fUseFALTRO;                   // use FALTRO and pass it to the digits
81   AliCaloRawAnalyzer *fRawAnalyzer;     // e.g. for sample selection for fits
82   AliEMCALTriggerRawDigitMaker* fTriggerRawDigitMaker;  
83  
84   ClassDef(AliEMCALRawUtils,7)          // utilities for raw signal fitting
85
86 };
87
88 #endif