LCOV - code coverage report
Current view: top level - PHOS/PHOSbase - AliPHOSRecoParam.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 27 51 52.9 %
Date: 2016-06-14 17:26:59 Functions: 30 57 52.6 %

          Line data    Source code
       1             : #ifndef ALIPHOSRECOPARAM_H
       2             : #define ALIPHOSRECOPARAM_H
       3             : /* Copyright(c) 2007, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                          */
       5             : 
       6             : /* $Id$ */
       7             :                                               
       8             : // Base class for the PHOS reconstruction parameters.
       9             : // Do not use in the reconstruction; use derivative classes instead.
      10             : 
      11             : #include "TArrayF.h"
      12             : #include "AliDetectorRecoParam.h"
      13             : 
      14             : class AliPHOSRecoParam : public AliDetectorRecoParam {
      15             : 
      16             : public:
      17             : 
      18             :   AliPHOSRecoParam();
      19             :   AliPHOSRecoParam(const AliPHOSRecoParam& recoParam);
      20             :   AliPHOSRecoParam& operator = (const AliPHOSRecoParam& recoParam);
      21          48 :   virtual ~AliPHOSRecoParam() {}
      22             : 
      23          16 :   Float_t GetEMCClusteringThreshold() const { return fEMCClusteringThreshold;  }
      24          16 :   Float_t GetEMCLocalMaxCut()         const { return fEMCLocMaxCut;            }
      25           8 :   Float_t GetEMCRawDigitThreshold()   const { return fEMCRawDigitThreshold;  }
      26         480 :   Float_t GetEMCMinE()                const { return fEMCMinE;                 }
      27          16 :   Float_t GetEMCLogWeight()           const { return fEMCW0;                   }
      28           8 :   Float_t GetEMCSampleQualityCut()    const { return fEMCSampleQualityCut;     }
      29          16 :   Float_t GetEMCEcoreRadius()         const { return fEMCEcoreRadius;          }
      30          20 :   const Float_t * GetNonlinearityParams()   const { return fNonLinearityParams.GetArray() ;}
      31          20 :   Bool_t  EMCEcore2ESD()              const { return fEMCEcore2ESD;            }
      32           8 :   Bool_t  EMCSubtractPedestals()      const { return fEMCSubtractPedestals;    }
      33          16 :   Bool_t  EMCToUnfold()               const { return fEMCUnfold;               }
      34           8 :   const char* EMCFitterVersion()      const { return fEMCFitterVersion.Data(); }
      35          20 :   Bool_t  GetEMCEnergyCorrectionOn()  const { return fEMCEnergyCorrectionOn;   }
      36           8 :   Int_t   GetGlobalAltroOffset()      const { return fGlobalAltroOffset ;      }
      37           8 :   Int_t   GetGlobalAltroThreshold()   const { return fGlobalAltroThreshold ;   }
      38          16 :   Float_t GetTimeGateAmpThresh()      const { return fTimeGateAmpThresh ;      }
      39          16 :   Float_t GetTimeGateLow()            const { return fTimeGateLow ;            }
      40          16 :   Float_t GetTimeGateHigh()           const { return fTimeGateHigh ;           }
      41           8 :   Bool_t  GetSubtractL1phase()        const { return fSubtractL1phase;         }
      42             : 
      43          40 :   const char* GetNonlinearityCorrectionVersion()const{return fNonlinearityCorrVersion.Data();}
      44             : 
      45          16 :   Float_t GetCPVClusteringThreshold() const { return fCPVClusteringThreshold;  }
      46          16 :   Float_t GetCPVLocalMaxCut()         const { return fCPVLocMaxCut;            }
      47          32 :   Float_t GetCPVMinE()                const { return fCPVMinE;                 }
      48          16 :   Float_t GetCPVLogWeight()           const { return fCPVW0;                   }
      49          16 :   Bool_t  CPVToUnfold()               const { return fCPVUnfold;               }
      50             : 
      51           0 :   void SetEMCClusteringThreshold(Float_t cluth)      { fEMCClusteringThreshold=cluth;   }
      52           0 :   void SetEMCLocalMaxCut(Float_t cut)                { fEMCLocMaxCut          =cut;     }
      53           0 :   void SetEMCRawDigitThreshold(Float_t rawDigTh)     { fEMCRawDigitThreshold  =rawDigTh;}
      54           0 :   void SetEMCMinE(Float_t minE)                      { fEMCMinE               =minE;    }
      55           0 :   void SetEMCLogWeight(Float_t w)                    { fEMCW0                 =w;       }
      56           0 :   void SetEMCSampleQualityCut(Float_t qu)            { fEMCSampleQualityCut   =qu;      }
      57           0 :   void SetEMCEcoreRadius(Float_t rCore)              { fEMCEcoreRadius        =rCore;   }
      58           0 :   void SetEMCEcore2ESD(Bool_t ecore)                 { fEMCEcore2ESD          =ecore;   }
      59           0 :   void SetEMCSubtractPedestals(Bool_t subtract)      { fEMCSubtractPedestals  =subtract;} 
      60           0 :   void SetEMCFitterVersion(const char* version="v1") { fEMCFitterVersion     =version ; }
      61           0 :   void SetEMCUnfolding(Bool_t toUnfold=kFALSE)       { fEMCUnfold             =toUnfold;}
      62           0 :   void SetEMCEnergyCorrectionOn(Bool_t on=kTRUE)     { fEMCEnergyCorrectionOn =on;      }
      63             :   //Make sure to set first version and then parameters, otherwise parameters will be overwritten by default ones.
      64           0 :   void SetNonlinearityParams(Int_t n, Float_t * params){fNonLinearityParams.Set(n,params);}
      65           0 :   void SetGlobalAltroOffset(Int_t offset=5)          { fGlobalAltroOffset     =offset ; }
      66           0 :   void SetGlobalAltroThreshold(Int_t ZSth=5)         { fGlobalAltroThreshold  =ZSth;    }
      67           0 :   void SetTimeGateAmpThresh(Float_t thrs=10)         { fTimeGateAmpThresh     = thrs ;  }
      68           0 :   void SetTimeGateLow(Float_t gate=1.e-7)            { fTimeGateLow = gate ;            }
      69           0 :   void SetTimeGateHigh(Float_t gate=1.e-8)           { fTimeGateHigh = gate;            }
      70           0 :   void SetSubtractL1phase(Bool_t a=kTRUE)            { fSubtractL1phase = a ;          }
      71             :   
      72             :   void SetNonlinearityCorrectionVersion(const char * ver="Gustavo2005");
      73             : 
      74           0 :   void SetCPVClusteringThreshold(Float_t cluth)      { fCPVClusteringThreshold=cluth;   }
      75           0 :   void SetCPVLocalMaxCut(Float_t cut)                { fCPVLocMaxCut          =cut;     }
      76           0 :   void SetCPVMinE(Float_t minE)                      { fCPVMinE               =minE;    }
      77           0 :   void SetCPVLogWeight(Float_t w)                    { fCPVW0                 =w;       }
      78           0 :   void SetCPVUnfolding(Bool_t toUnfold=kFALSE)       { fCPVUnfold            =toUnfold;}
      79             : 
      80             :   virtual void Print(const Option_t *option="RecoParam") const;
      81             : 
      82             :   static AliPHOSRecoParam* GetDefaultParameters();
      83             :   static const  TObjArray* GetMappings();
      84             :   static const  TObject*   GetTriggerParameters();
      85             : 
      86             : protected:
      87             : 
      88             :   TArrayF fNonLinearityParams;     // EMC: Array of non-linearity correction parameters
      89             :   Float_t fEMCClusteringThreshold; // EMC: Min.digit energy to start a new cluster, in GeV
      90             :   Float_t fEMCLocMaxCut;           // EMC: Min.energy difference between two local maxima, in GeV
      91             :   Float_t fEMCRawDigitThreshold;   // EMC: Min.amplitude of a digit produced from raw data in ADC
      92             :   Float_t fEMCMinE;                // EMC: Min.E in the digits list associated with rec.point, in GeV
      93             :   Float_t fEMCW0;                  // EMC: Log.weight to evaluate a local coordinate of rec.point
      94             :   Float_t fEMCSampleQualityCut;    // EMC: Cut on pulse shape fit quality
      95             :   Float_t fTimeGateAmpThresh ;     // EMC: Threshold for good/bad time calculation
      96             :   Float_t fTimeGateLow ;           // EMC: Time difference between cells in PHOS cluster (bad time estimate)
      97             :   Float_t fTimeGateHigh ;          // EMC: Time difference between cells in PHOS cluster (good time estimate)
      98             :   Float_t fEMCEcoreRadius;         // EMC: Radius within which the core energy is calculated, in cm
      99             :   Bool_t  fEMCEcore2ESD;           // EMC: true if Ecore is stored in ESD instead of Etot
     100             :   Bool_t  fEMCSubtractPedestals;   // EMC: true if pedestal should be subtracted (in non-ZS)
     101             :   Bool_t  fEMCUnfold;              // EMC: true if overlapped clusters should be unfolded
     102             :   Bool_t  fEMCEnergyCorrectionOn;  // EMC: if true do non-linear correction of cluster energy
     103             :   Bool_t  fSubtractL1phase;        // EMC: should one sabtract L1 phase in time calculation
     104             :   TString fEMCFitterVersion ;      // EMC: AliPHOSRawFitter version
     105             :   TString fNonlinearityCorrVersion ;// EMC: choose which version of nenlinearity correction
     106             :   Int_t   fGlobalAltroOffset ;     // Offset used in ALTRO chips in SZ runs
     107             :   Int_t   fGlobalAltroThreshold ;  // Threshold used in ALTRO chips in SZ runs
     108             : 
     109             :   Float_t fCPVClusteringThreshold; // CPV: Min.digit energy to start a new cluster, in GeV
     110             :   Float_t fCPVLocMaxCut;           // CPV: Min.energy difference between two local maxima, in GeV
     111             :   Float_t fCPVMinE;                // CPV: Min.E in the digits list associated with rec.point, in GeV
     112             :   Float_t fCPVW0;                  // CPV: Log.weight to evaluate a local coordinate of rec.point
     113             :   Bool_t  fCPVUnfold;              // CPV: true if overlapped clusters should be unfolded
     114             : 
     115             :   static TObjArray* fgkMaps;       // ALTRO mappings for RCU0..RCU3
     116             :   static TObject* fgkTrigParams;   // PHOS trigger parameters
     117             : 
     118          58 :   ClassDef(AliPHOSRecoParam,13)
     119             : };
     120             : 
     121             : #endif

Generated by: LCOV version 1.11