]>
Commit | Line | Data |
---|---|---|
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 | 14 | class AliPHOSRecoParam : public AliDetectorRecoParam { |
58f66025 | 15 | |
16 | public: | |
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(); | |
892b88d6 | 81 | static const TObject* GetTriggerParameters(); |
58f66025 | 82 | |
83 | protected: | |
84 | ||
25312a8e | 85 | TArrayF fNonLinearityParams; // EMC: Array of non-linearity correction parameters |
7e88424f | 86 | Float_t fEMCClusteringThreshold; // EMC: Min.digit energy to start a new cluster, in GeV |
87 | Float_t fEMCLocMaxCut; // EMC: Min.energy difference between two local maxima, in GeV | |
12dd7f10 | 88 | Float_t fEMCRawDigitThreshold; // EMC: Min.amplitude of a digit produced from raw data in ADC |
89 | Float_t fEMCMinE; // EMC: Min.E in the digits list associated with rec.point, in GeV | |
7e88424f | 90 | Float_t fEMCW0; // EMC: Log.weight to evaluate a local coordinate of rec.point |
91 | Float_t fEMCSampleQualityCut; // EMC: Cut on pulse shape fit quality | |
67637327 | 92 | Float_t fTimeGateAmpThresh ; // EMC: Threshold for good/bad time calculation |
93 | Float_t fTimeGateLow ; // EMC: Time difference between cells in PHOS cluster (bad time estimate) | |
94 | Float_t fTimeGateHigh ; // EMC: Time difference between cells in PHOS cluster (good time estimate) | |
7e88424f | 95 | Float_t fEMCEcoreRadius; // EMC: Radius within which the core energy is calculated, in cm |
96 | Bool_t fEMCEcore2ESD; // EMC: true if Ecore is stored in ESD instead of Etot | |
97 | Bool_t fEMCSubtractPedestals; // EMC: true if pedestal should be subtracted (in non-ZS) | |
98 | Bool_t fEMCUnfold; // EMC: true if overlapped clusters should be unfolded | |
71994f35 | 99 | Bool_t fEMCEnergyCorrectionOn; // EMC: if true do non-linear correction of cluster energy |
379c5c09 | 100 | TString fEMCFitterVersion ; // EMC: AliPHOSRawFitter version |
25312a8e | 101 | TString fNonlinearityCorrVersion ;// EMC: choose which version of nenlinearity correction |
aa64ff7a | 102 | Int_t fGlobalAltroOffset ; // Offset used in ALTRO chips in SZ runs |
f78c9781 | 103 | Int_t fGlobalAltroThreshold ; // Threshold used in ALTRO chips in SZ runs |
7e88424f | 104 | |
105 | Float_t fCPVClusteringThreshold; // CPV: Min.digit energy to start a new cluster, in GeV | |
106 | Float_t fCPVLocMaxCut; // CPV: Min.energy difference between two local maxima, in GeV | |
107 | Float_t fCPVMinE; // CPV: Min.E in the digits list associated with rec.point, in GeV | |
108 | Float_t fCPVW0; // CPV: Log.weight to evaluate a local coordinate of rec.point | |
109 | Bool_t fCPVUnfold; // CPV: true if overlapped clusters should be unfolded | |
110 | ||
111 | static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCU3 | |
892b88d6 | 112 | static TObject* fgkTrigParams; // PHOS trigger parameters |
7e88424f | 113 | |
892b88d6 | 114 | ClassDef(AliPHOSRecoParam,12) |
58f66025 | 115 | }; |
116 | ||
117 | #endif |