X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDfeeParam.h;h=282483a3ae2b2a89f863e056939735fa91903042;hb=9cbdff2adfc14661f6ae0fae04ad6bfb861fc59a;hp=145ba534a048b2e2d491fa882ba99ed386caec54;hpb=ba84a3e369bc508a436c3925aa9794aea496d7db;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDfeeParam.h b/TRD/AliTRDfeeParam.h index 145ba534a04..282483a3ae2 100644 --- a/TRD/AliTRDfeeParam.h +++ b/TRD/AliTRDfeeParam.h @@ -5,13 +5,16 @@ /* $Id$ */ -////////////////////////////////////////////////// -// // -// TRD front end electronics parameters class // -// Contains all FEE (MCM, TRAP, PASA) related // -// parameters, constants, and mapping. // -// // -////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +// // +// TRD front end electronics parameters class // +// Contains all FEE (MCM, TRAP, PASA) related // +// parameters, constants, and mapping. // +// // +// Author: // +// Ken Oyama (oyama@physi.uni-heidelberg.de) // +// // +//////////////////////////////////////////////////////////////////////////// #include @@ -45,28 +48,37 @@ class AliTRDfeeParam : public TObject virtual Int_t GetColSide(Int_t icol) const; static Float_t GetSamplingFrequency() { return (Float_t)fgkLHCfrequency / 4000000.0; } - static Int_t GetNmcmRob() { return fgkNmcmRob; } + static Int_t GetNmcmRob() { return fgkNmcmRob; } static Int_t GetNmcmRobInRow() { return fgkNmcmRobInRow; } static Int_t GetNmcmRobInCol() { return fgkNmcmRobInCol; } - static Int_t GetNrobC0() { return fgkNrobC0; } - static Int_t GetNrobC1() { return fgkNrobC1; } - static Int_t GetNadcMcm() { return fgkNadcMcm; } - // static Int_t GetNtimebin() { return fgkNtimebin; } - static Int_t GetNcol() { return fgkNcol; } - static Int_t GetNcolMcm() { return fgkNcolMcm; } - static Int_t GetNrowC0() { return fgkNrowC0; } - static Int_t GetNrowC1() { return fgkNrowC1; } - - // static Int_t GetADCpedestal() { return fgkADCpedestal; } - // static Int_t GetADCnoise() { return fgkADCnoise; } - static Int_t GetADCDAC() { return fgkADCDAC; } - - static Bool_t isPFon() { return fgkPFon; } - static Bool_t isGFon() { return fgkGFon; } - static Bool_t isTFon() { return fgkTFon; } - - static Int_t GetPFtimeConstant() { return fgkPFtimeConstant; } - static Int_t GetPFeffectPedestal() { return fgkPFeffectPedestal; } + static Int_t GetNrobC0() { return fgkNrobC0; } + static Int_t GetNrobC1() { return fgkNrobC1; } + static Int_t GetNadcMcm() { return fgkNadcMcm; } + // static Int_t GetNtimebin() { return fgkNtimebin; } + static Int_t GetNcol() { return fgkNcol; } + static Int_t GetNcolMcm() { return fgkNcolMcm; } + static Int_t GetNrowC0() { return fgkNrowC0; } + static Int_t GetNrowC1() { return fgkNrowC1; } + + // static Int_t GetADCpedestal() { return fgkADCpedestal; } + // static Int_t GetADCnoise() { return fgkADCnoise; } + static Int_t GetADCDAC() { return fgkADCDAC; } + + static Bool_t IsPFon() { return fgkPFon; } + static Bool_t IsGFon() { return fgkGFon; } + static Bool_t IsTFon() { return fgkTFon; } + + static Int_t GetPFtimeConstant() { return fgkPFtimeConstant; } + static Int_t GetPFeffectPedestal() { return fgkPFeffectPedestal; } + + //new + static Int_t GetQacc0Start() { return fgkPREPqAcc0Start; } + static Int_t GetQacc0End() { return fgkPREPqAcc0End; } + static Int_t GetQacc1Start() { return fgkPREPqAcc1Start; } + static Int_t GetQacc1End() { return fgkPREPqAcc1End; } + Float_t GetMinClusterCharge() const { return fgkMinClusterCharge; } + static Int_t GetLinearFitStart() { return fgkPREPLinearFitStart; } + static Int_t GetLinearFitEnd() { return fgkPREPLinearFitEnd; } // Float_t GetClusThr() { return fClusThr; }; // Float_t GetPadThr() const { return fPadThr; }; @@ -75,41 +87,49 @@ class AliTRDfeeParam : public TObject //virtual void GetFilterParam(Float_t &r1, Float_t &r2, Float_t &c1, Float_t &c2, Float_t &ped) const; // Int_t GetFilterType() const { return fFilterType; }; - static Int_t GetTFtype() { return fgkTFtype; } - static Int_t GetTFnExp() { return fgkTFnExp; } - Float_t GetTFr1() const { return fTFr1; } - Float_t GetTFr2() const { return fTFr2; } - Float_t GetTFc1() const { return fTFc1; } - Float_t GetTFc2() const { return fTFc2; } + static Int_t GetTFtype() { return fgkTFtype; } + //static Int_t GetTFnExp() { return fgkTFnExp; } + Int_t GetTFnExp() { return fTFnExp; } + Float_t GetTFr1() const { return fTFr1; } + Float_t GetTFr2() const { return fTFr2; } + Float_t GetTFc1() const { return fTFc1; } + Float_t GetTFc2() const { return fTFc2; } - static Float_t GetTFattPar() { return ((Float_t)fgkTFattPar1) / ((Float_t)fgkTFattPar2) ; } - Float_t GetTFf0() const { return 1 + fgkTFon*(-1+GetTFattPar()); } // 1 if TC off + // for tracklets + Bool_t GetTracklet() const { return fgkTracklet; } + Int_t GetMaxNrOfTracklets() const { return fgkMaxNrOfTracklets; } + Bool_t GetMCTrackletOutput() const { return fgkMCTrackletOutput; } + + static Float_t GetTFattPar() { return ((Float_t) fgkTFattPar1) / ((Float_t) fgkTFattPar2); } + Float_t GetTFf0() const { return 1.0 + fgkTFon*(-1.0+GetTFattPar()); } // 1 if TC off void SetEBsglIndThr(Int_t val); - Int_t GetEBsglIndThr() const { return fEBsglIndThr; } + Int_t GetEBsglIndThr() const { return fEBsglIndThr; } void SetEBsumIndThr(Int_t val); - Int_t GetEBsumIndThr() const { return fEBsumIndThr; } + Int_t GetEBsumIndThr() const { return fEBsumIndThr; } void SetEBindLUT(Int_t val); - Int_t GetEBindLUT() const { return fEBindLUT; } + Int_t GetEBindLUT() const { return fEBindLUT; } void SetEBignoreNeighbour(Int_t val); - Int_t GetEBignoreNeighbour() const { return fEBignoreNeighbour; } + Int_t GetEBignoreNeighbour() const { return fEBignoreNeighbour; } // Concerning raw data format - Int_t GetRAWversion(); + Int_t GetRAWversion() const { return fRAWversion; } void SetRAWversion( Int_t rawver ); - Bool_t GetRAWstoreRaw(); - void SetRAWstoreRaw( Bool_t storeraw ); + Bool_t GetRAWstoreRaw() const { return fRAWstoreRaw; } + void SetRAWstoreRaw( Bool_t storeraw ) { fRAWstoreRaw = storeraw; } + + void SetXenon(); + void SetArgon(); protected: - static AliTRDfeeParam *fgInstance; - static Bool_t fgTerminated; // Defines if this class has already been terminated + static AliTRDfeeParam *fgInstance; // Singleton instance + static Bool_t fgTerminated; // Defines if this class has already been terminated - // AliTRDgeometry *fGeo; // TRD geometry class - AliTRDCommonParam *fCP; // TRD common parameters class + AliTRDCommonParam *fCP; // TRD common parameters class // Remark: ISO C++ allows initialization of static const values only for integer. @@ -128,8 +148,6 @@ class AliTRDfeeParam : public TObject static const Int_t fgkNrowC1 = 16; // Number of Rows per C1 chamber (old fgkRowmaxC1) // ADC intrinsic parameters - // static const Int_t fgkADCpedestal = 0; // This is simulation parameter and not the value set in FEE, moved to simParam - // static const Int_t fgkADCnoise = 10; // This is simulation parameter and not the value set in FEE, moved to simParam static const Int_t fgkADCDAC = 0; // 5 bit ADC gain parameter // TRAP filter global setup @@ -138,58 +156,75 @@ class AliTRDfeeParam : public TObject static const Bool_t fgkTFon = kTRUE; // Tail cancelation Filter enable/disable flag (old name fTCOn) // PF setup - static const Int_t fgkPFtimeConstant = 0; // 0 for fastest, 3 for slowest (no effect, probably) - static const Int_t fgkPFeffectPedestal = 10; // [in ADC units] the desired baseline (Additive) + static const Int_t fgkPFtimeConstant = 0; // 0 for fastest, 3 for slowest (no effect, probably) + static const Int_t fgkPFeffectPedestal = 10; // [in ADC units] the desired baseline (Additive) // GF setup - static const Int_t fgkGFnoise = 0; // Noise level increased by gain filter x 100 [in ADC] (to be measured) + static const Int_t fgkGFnoise = 0; // Noise level increased by gain filter x 100 [in ADC] (to be measured) // TF setup - static const Int_t fgkTFtype = 1; // TC type (0=analog, 1=digital, 2=MI) (old name fFilterType) + static const Int_t fgkTFtype = 1; // TC type (0=analog, 1=digital, 2=MI, 3=close to electronics) (old name fFilterType) // OLD TF setup (calculated from above) (valid only for fgkTFsimType = 0 or 1) - static const Int_t fgkTFnExp = 1; // Number of exponential for simType 0 and 1 + //static const Int_t fgkTFnExp = 1; // Number of exponential for simType 0 and 1 + Int_t fTFnExp; // Number of exponential for simType 0 and 1 + + // Tracklet processing on/off + static const Bool_t fgkTracklet = kFALSE; // default should be kFALSE + + // max. nr of tracklet words for one mcm + static const Int_t fgkMaxNrOfTracklets = 4; + + // additional tracklet folder structure output, containing all necessary Monte Carlo information; maybe this should go somewhere else; + static const Bool_t fgkMCTrackletOutput = kTRUE; // default should be kTRUE // following need Instance because initialized in constructor - Float_t fTFr1; // Time constant [us] long (old name fR1) - Float_t fTFr2; // Time constant [us] short(old name fR2) - Float_t fTFc1; // Weight long (old name fC1) - Float_t fTFc2; // Weight short (old name fC2) + Float_t fTFr1; // Time constant [us] long (old name fR1) + Float_t fTFr2; // Time constant [us] short(old name fR2) + Float_t fTFc1; // Weight long (old name fC1) + Float_t fTFc2; // Weight short (old name fC2) // here is for TRAP simulation (not yet used) - static const Int_t fgkTFdecayWeightL = 270; // 0 to 1024 corresponds to 0 to 0.5 - static const Int_t fgkTFdecayParL = 348; // 0 to 511 corresponds to 0.75 to 1 - static const Int_t fgkTFdecayParS = 449; // 0 to 511 correponds to 0.25 to 0.5 - static const Int_t fgkTFattPar1 = 45; // attenuationParameter = fgkTFattenuationParameter1/fgkTFattenuationParameter2 - static const Int_t fgkTFattPar2 = 14; // = -alphaL/ln(lambdaL)-(1-alphaL)/ln(lambdaS) + static const Int_t fgkTFdecayWeightL = 270; // 0 to 1024 corresponds to 0 to 0.5 + static const Int_t fgkTFdecayParL = 348; // 0 to 511 corresponds to 0.75 to 1 + static const Int_t fgkTFdecayParS = 449; // 0 to 511 correponds to 0.25 to 0.5 + static const Int_t fgkTFattPar1 = 45; // attenuationParameter = fgkTFattenuationParameter1/fgkTFattenuationParameter2 + static const Int_t fgkTFattPar2 = 14; // = -alphaL/ln(lambdaL)-(1-alphaL)/ln(lambdaS) // ZS parameters - Int_t fEBsglIndThr; // EBIS in ADC units - Int_t fEBsumIndThr; // EBIT in ADC units - Int_t fEBindLUT; // EBIL lookup table - Int_t fEBignoreNeighbour; // EBIN 0:include neighbor + Int_t fEBsglIndThr; // EBIS in ADC units + Int_t fEBsumIndThr; // EBIT in ADC units + Int_t fEBindLUT; // EBIL lookup table + Int_t fEBignoreNeighbour; // EBIN 0:include neighbor // Charge accumulators - static const Int_t fgkPREPqAcc0Start = 0; // Preprocessor Charge Accumulator 0 Start - static const Int_t fgkPREPqAcc0End = 10; // Preprocessor Charge Accumulator 0 End - static const Int_t fgkPREPqAcc1Start = 11; // Preprocessor Charge Accumulator 1 Start - static const Int_t fgkPREPqAcc1End = 20; // Preprocessor Charge Accumulator 1 End - static const Int_t fgkMinClusterCharge = 20; // Hit detection [in ADC units] + static const Int_t fgkPREPqAcc0Start = 5; // Preprocessor Charge Accumulator 0 Start + static const Int_t fgkPREPqAcc0End = 10; // Preprocessor Charge Accumulator 0 End + static const Int_t fgkPREPqAcc1Start = 11; // Preprocessor Charge Accumulator 1 Start + static const Int_t fgkPREPqAcc1End = 20; // Preprocessor Charge Accumulator 1 End + static const Int_t fgkMinClusterCharge = 20; // Hit detection [in ADC units] + + //new + //time constants for linear fit + static const Int_t fgkPREPLinearFitStart = 5; + static const Int_t fgkPREPLinearFitEnd = 20; + + // OLD TRAP processing parameters calculated from above - //static const Float_t fClusThr; // Cluster threshold - //static const Float_t fPadThr; // Pad threshold + //static const Float_t fClusThr; // Cluster threshold + //static const Float_t fPadThr; // Pad threshold // For raw production - Int_t fRAWversion; // Raw data production version - static const Int_t fgkMaxRAWversion = 3; // Maximum raw version number supported - Bool_t fRAWstoreRaw; // Store unfiltered data for raw data stream + Int_t fRAWversion; // Raw data production version + static const Int_t fgkMaxRAWversion = 3; // Maximum raw version number supported + Bool_t fRAWstoreRaw; // Store unfiltered data for raw data stream private: AliTRDfeeParam(); - ClassDef(AliTRDfeeParam,2) // -}; + ClassDef(AliTRDfeeParam,3) // The TRD front end electronics parameter +}; #endif