X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDdigitizer.h;h=4706a2ed8047c815d481136ace75d2eb57f644d1;hb=3551db50bea6c225a5bc024af273b031961d6539;hp=a732c56e51e3f54064e8eb6ab4439a7cd8384a84;hpb=e0d47c25c6de2c1d18508db99a65e77995ef2968;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDdigitizer.h b/TRD/AliTRDdigitizer.h index a732c56e51e..4706a2ed804 100644 --- a/TRD/AliTRDdigitizer.h +++ b/TRD/AliTRDdigitizer.h @@ -64,13 +64,22 @@ class AliTRDdigitizer : public AliDigitizer { AliTRDdigitsManager *Digits() const { return fDigitsManager; }; - Bool_t GetCompress() const { return fCompress; }; - Bool_t GetSDigits() const { return fSDigits; }; - Float_t GetSDigitsScale() const { return fSDigitsScale; }; + Bool_t GetCompress() const { return fCompress; }; + Bool_t GetSDigits() const { return fSDigits; }; + Float_t GetSDigitsScale() const { return fSDigitsScale; }; AliTRDparameter *GetParameter() const { return fPar; }; - Bool_t GetSimple() const { return fSimpleSim; }; + Bool_t GetSimple() const { return fSimpleSim; }; - protected: + virtual Double_t TimeStruct(Float_t vdrift, Double_t time, Double_t z); + + Float_t GetDiffusionT(Float_t vdrift); + Float_t GetDiffusionL(Float_t vdrift); + virtual Int_t Diffusion(Float_t vdrift, Double_t driftlength, Double_t *xyz); + + Float_t GetLorentzFactor(Float_t vdrift); + virtual Int_t ExB(Float_t vdrift, Double_t driftlength, Double_t *xyz); + + protected: //TFile *fInputFile; //! ALIROOT-file AliRunLoader *fRunLoader; //! Local pointer @@ -79,7 +88,7 @@ class AliTRDdigitizer : public AliDigitizer { TList *fSDigitsManagerList; //! List of managers of input s-digits AliTRD *fTRD; //! TRD detector class AliTRDgeometry *fGeo; //! TRD geometry - AliTRDparameter *fPar; // TRD digitization parameter object + AliTRDparameter *fPar; // TRD common parameter object Int_t fEvent; //! Event number Int_t *fMasks; //! Masks for the merging Bool_t fCompress; // Switch to keep only compressed data in memory @@ -90,12 +99,35 @@ class AliTRDdigitizer : public AliDigitizer { Bool_t fSimpleSim; // Switch for the simplified simulation Int_t fSimpleDet; // Detecttor number used in the simplified simulation - private: - + void SampleTimeStruct(Float_t vdrift); + void RecalcDiffusion(Float_t vdrift); + + struct + { + Float_t fLastVdrift; // the structures are valid for fLastVdrift (caching) + Float_t fDiffusionT; + Float_t fDiffusionL; + Float_t fOmegaTau; // Tangens of the Lorentz angle + Float_t fLorentzFactor; // Factor due to Lorentz force + } fDiffusionInfo; + + struct + { + Float_t fLastVdrift; // the structures are valid for fLastVdrift (caching) + Float_t *fTimeStruct1; //! Time Structure of Drift Cells + Float_t *fTimeStruct2; //! Time Structure of Drift Cells + Float_t fVDlo; // Lower drift velocity, for interpolation + Float_t fVDhi; // Higher drift velocity, for interpolation + } fTimeStructInfo; + + private: + + virtual Bool_t Init(); + virtual void DeConvExp(Double_t *source, Double_t *target, Int_t n, Int_t nexp); virtual Bool_t CheckDetector(Int_t plane, Int_t chamber, Int_t sector); - ClassDef(AliTRDdigitizer,7) // Produces TRD-Digits + ClassDef(AliTRDdigitizer,8) // Produces TRD-Digits };