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