X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALRecParam.h;h=48af05747856cfbe4c778755a9c704f746ae419e;hb=e3b21c347e0747bff0ec90f4e84dd9dd0ca4715b;hp=243c664682d09feefd4320afa07b042881b2c8bd;hpb=8ba062b1052031b270484ede751b5e2de8205ddd;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALRecParam.h b/EMCAL/AliEMCALRecParam.h index 243c664682d..48af0574785 100644 --- a/EMCAL/AliEMCALRecParam.h +++ b/EMCAL/AliEMCALRecParam.h @@ -8,40 +8,65 @@ //----------------------------------------------------------------------------- // Container of EMCAL reconstruction parameters // The purpose of this object is to store it to OCDB -// and retrieve it in AliEMCALClusterizerv1, AliEMCALPID and AliEMCALTracker +// and retrieve it in AliEMCALClusterizerv1, AliEMCALPID, +// AliEMCALTracker and use it to configure AliEMCALRawUtils +// +// // Author: Yuri Kharlov //----------------------------------------------------------------------------- // --- ROOT system --- -#include "TObject.h" +#include "AliDetectorRecoParam.h" +#include "AliLog.h" -class AliEMCALRecParam : public TObject +class AliEMCALRecParam : public AliDetectorRecoParam { -public: + public: AliEMCALRecParam() ; + AliEMCALRecParam(const AliEMCALRecParam& recParam); + AliEMCALRecParam& operator = (const AliEMCALRecParam& recParam); virtual ~AliEMCALRecParam() {} - - //Clustering - Float_t GetClusteringThreshold() const {return fClusteringThreshold;} - Float_t GetW0 () const {return fW0 ;} - Float_t GetMinECut () const {return fMinECut ;} - void SetClusteringThreshold(Float_t thrsh) {fClusteringThreshold = thrsh;} - void SetW0 (Float_t w0) {fW0 = w0 ;} - void SetMinECut (Float_t minEcut) {fMinECut = minEcut ;} - + + //Clustering (Unfolding : Cynthia) + Float_t GetClusteringThreshold() const {return fClusteringThreshold ;} + Float_t GetW0 () const {return fW0 ;} + Float_t GetMinECut () const {return fMinECut ;} + Float_t GetLocMaxCut () const {return fLocMaxCut ;} + Float_t GetTimeCut () const {return fTimeCut ;} + Float_t GetTimeMin () const {return fTimeMin ;} + Float_t GetTimeMax () const {return fTimeMax ;} + Bool_t GetUnfold () const {return fUnfold ;} + + void SetClusteringThreshold(Float_t thrsh) {fClusteringThreshold = thrsh;} + void SetW0 (Float_t w0) {fW0 = w0 ;} + void SetMinECut (Float_t ecut) {fMinECut = ecut ;} + void SetLocMaxCut (Float_t locMaxCut) {fLocMaxCut = locMaxCut ;} + void SetTimeCut (Float_t t) {fTimeCut = t ;} + void SetTimeMin (Float_t t) {fTimeMin = t ;} + void SetTimeMax (Float_t t) {fTimeMax = t ;} + void SetUnfold (Bool_t unfold) {fUnfold = unfold ; if(fUnfold) AliWarning("Cluster Unfolding ON. Implementing only for eta=0 case!!!");} + //PID (Guenole) - Double_t GetGamma(Int_t i, Int_t j) const {return fGamma[i][j];} - Double_t GetHadron(Int_t i, Int_t j) const {return fHadron[i][j];} - Double_t GetPiZero5to10(Int_t i, Int_t j) const {return fPiZero5to10[i][j];} - Double_t GetPiZero10to60(Int_t i, Int_t j) const {return fPiZero10to60[i][j];} - - void SetGamma(Int_t i, Int_t j,Double_t param ) {fGamma[i][j]=param;} - void SetHadron(Int_t i, Int_t j,Double_t param ) {fHadron[i][j]=param;} - void SetPiZero5to10(Int_t i, Int_t j,Double_t param) {fPiZero5to10[i][j]=param;} - void SetPiZero10to60(Int_t i, Int_t j,Double_t param) {fPiZero10to60[i][j]=param;} - + Double_t GetGamma(Int_t i, Int_t j) const {return fGamma[i][j];} + Double_t GetGammaEnergyProb(Int_t i) const {return fGammaEnergyProb[i];} + Double_t GetGamma1to10(Int_t i, Int_t j) const {return fGamma1to10[i][j];} // not used + Double_t GetHadron(Int_t i, Int_t j) const {return fHadron[i][j];} + Double_t GetHadron1to10(Int_t i, Int_t j) const {return fHadron1to10[i][j];} // not used + Double_t GetHadronEnergyProb(Int_t i) const {return fHadronEnergyProb[i];} + Double_t GetPiZero(Int_t i, Int_t j) const {return fPiZero[i][j];} + Double_t GetPiZeroEnergyProb(Int_t i) const {return fPiZeroEnergyProb[i];} + + void SetGamma(Int_t i, Int_t j,Double_t param ) {fGamma[i][j]=param;} + void SetGammaEnergyProb(Int_t i, Double_t param ) {fGammaEnergyProb[i]=param;} + void SetGamma1to10(Int_t i, Int_t j,Double_t param ) {fGamma1to10[i][j]=param;} + void SetHadron(Int_t i, Int_t j,Double_t param ) {fHadron[i][j]=param;} + void SetHadron1to10(Int_t i, Int_t j,Double_t param ) {fHadron1to10[i][j]=param;} + void SetHadronEnergyProb(Int_t i,Double_t param ) {fHadronEnergyProb[i]=param;} + void SetPiZero(Int_t i, Int_t j,Double_t param) {fPiZero[i][j]=param;} + void SetPiZeroEnergyProb(Int_t i,Double_t param) {fPiZeroEnergyProb[i]=param;} + //Track Matching (Alberto) /* track matching cut setters */ void SetTrkCutX(Double_t value) {fTrkCutX = value;} @@ -51,6 +76,8 @@ public: void SetTrkCutAlphaMin(Double_t value) {fTrkCutAlphaMin = value;} void SetTrkCutAlphaMax(Double_t value) {fTrkCutAlphaMax = value;} void SetTrkCutAngle(Double_t value) {fTrkCutAngle = value;} + void SetTrkCutNITS(Double_t value) {fTrkCutNITS = value;} + void SetTrkCutNTPC(Double_t value) {fTrkCutNTPC = value;} /* track matching cut getters */ Double_t GetTrkCutX() const {return fTrkCutX;} Double_t GetTrkCutY() const {return fTrkCutY;} @@ -59,22 +86,65 @@ public: Double_t GetTrkCutAlphaMin() const {return fTrkCutAlphaMin;} Double_t GetTrkCutAlphaMax() const {return fTrkCutAlphaMax;} Double_t GetTrkCutAngle() const {return fTrkCutAngle;} - - virtual void Print(Option_t * option="") const ; - - -private: + Double_t GetTrkCutNITS() const {return fTrkCutNITS;} + Double_t GetTrkCutNTPC() const {return fTrkCutNTPC;} + + //Raw signal fitting (Jenn) + /* raw signal setters */ + void SetHighLowGainFactor(Double_t value) {fHighLowGainFactor = value;} + void SetOrderParameter(Int_t value) {fOrderParameter = value;} + void SetTau(Double_t value) {fTau = value;} + void SetNoiseThreshold(Int_t value) {fNoiseThreshold = value;} + void SetNPedSamples(Int_t value) {fNPedSamples = value;} + void SetRemoveBadChannels(Bool_t val) {fRemoveBadChannels=val; } + void SetFittingAlgorithm(Int_t val) {fFittingAlgorithm=val; } + void SetFALTROUsage(Bool_t val) {fUseFALTRO=val; } + void SetLEDFit(Bool_t val) {fFitLEDEvents=val; } + + + /* raw signal getters */ + Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;} + Int_t GetOrderParameter() const {return fOrderParameter;} + Double_t GetTau() const {return fTau;} + Int_t GetNoiseThreshold() const {return fNoiseThreshold;} + Int_t GetNPedSamples() const {return fNPedSamples;} + Bool_t GetRemoveBadChannels() const {return fRemoveBadChannels;} + Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; } + Bool_t UseFALTRO() const {return fUseFALTRO; } + Bool_t FitLEDEvents() const {return fFitLEDEvents; } + + virtual void Print(Option_t * option="") const ; + + static AliEMCALRecParam* GetDefaultParameters(); + static AliEMCALRecParam* GetLowFluxParam(); + static AliEMCALRecParam* GetHighFluxParam(); + static AliEMCALRecParam* GetCalibParam(); + static AliEMCALRecParam* GetCosmicParam(); + + static const TObjArray* GetMappings(); + + private: //Clustering - Float_t fClusteringThreshold ; // minimum energy to seed a EC digit in a cluster - Float_t fW0 ; // logarithmic weight for the cluster center of gravity calculation + Float_t fClusteringThreshold ; // Minimum energy to seed a EC digit in a cluster + Float_t fW0 ; // Logarithmic weight for the cluster center of gravity calculation Float_t fMinECut; // Minimum energy for a digit to be a member of a cluster + Bool_t fUnfold; // Flag to perform cluster unfolding + Float_t fLocMaxCut; // Minimum energy difference to consider local maxima in a cluster + Float_t fTimeCut ; // Maximum time of digits with respect to EMC cluster max. + Float_t fTimeMin ; // Minimum time of digits + Float_t fTimeMax ; // Maximum time of digits //PID (Guenole) - Double_t fGamma[6][6]; // Parameter to Compute PID - Double_t fHadron[6][6]; // Parameter to Compute PID - Double_t fPiZero5to10[6][6]; // Parameter to Compute PID - Double_t fPiZero10to60[6][6]; // Parameter to Compute PID - + Double_t fGamma[6][6]; // Parameter to Compute PID for photons + Double_t fGamma1to10[6][6]; // Parameter to Compute PID not used + Double_t fHadron[6][6]; // Parameter to Compute PID for hadrons + Double_t fHadron1to10[6][6]; // Parameter to Compute PID for hadrons between 1 and 10 GeV + Double_t fHadronEnergyProb[6]; // Parameter to Compute PID for energy ponderation for hadrons + Double_t fPiZeroEnergyProb[6]; // Parameter to Compute PID for energy ponderation for Pi0 + Double_t fGammaEnergyProb[6]; // Parameter to Compute PID for energy ponderation for gamma + Double_t fPiZero[6][6]; // Parameter to Compute PID for pi0 + + //Track-Matching (Alberto) Double_t fTrkCutX; // X-difference cut for track matching Double_t fTrkCutY; // Y-difference cut for track matching @@ -83,10 +153,25 @@ private: Double_t fTrkCutAlphaMin; // cut on 'alpha' parameter for track matching (min) Double_t fTrkCutAlphaMax; // cut on 'alpha' parameter for track matching (min) Double_t fTrkCutAngle; // cut on relative angle between different track points for track matching - - ClassDef(AliEMCALRecParam,2) // Reconstruction parameters - -} ; + Double_t fTrkCutNITS; // Number of ITS hits for track matching + Double_t fTrkCutNTPC; // Number of TPC hits for track matching + + //Raw signal fitting parameters (Jenn) + Double_t fHighLowGainFactor; // gain factor to convert between high and low gain + Int_t fOrderParameter; // order parameter for raw signal fit + Double_t fTau; // decay constant for raw signal fit + Int_t fNoiseThreshold; // threshold to consider signal or noise + Int_t fNPedSamples; // number of time samples to use in pedestal calculation + Bool_t fRemoveBadChannels; // select if bad channels are removed before fitting + Int_t fFittingAlgorithm; // select the fitting algorithm + Bool_t fUseFALTRO; // get FALTRO (trigger) and put it on trigger digits. + Bool_t fFitLEDEvents; // fit LED events or not + + static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCUX + + ClassDef(AliEMCALRecParam,12) // Reconstruction parameters + + } ; #endif // ALIEMCALRECPARAM_H