X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDDigitizer.h;h=1d9530d69902d8165b85da4def669025441cb016;hb=02bb7b6c6031746819cd10118b43293c5f4c6b96;hp=318ee7304db854bd841b92a8c096690685896908;hpb=e802be3eafd0ff72856d4497226c183f6a363dfc;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDDigitizer.h b/FMD/AliFMDDigitizer.h index 318ee7304db..1d9530d6990 100644 --- a/FMD/AliFMDDigitizer.h +++ b/FMD/AliFMDDigitizer.h @@ -5,152 +5,75 @@ * * See cxx source for full Copyright notice */ -#ifndef ALIDIGITIZER_H -# include -#endif -#ifndef ALIRUNDIGITIZER_H -# include -#endif -#ifndef ALIFMDEdepMAP_H -# include -#endif -#ifndef __UTILITY__ -# include +// Classses to make SDigits into Digits +// +// Digits consists of +// - Detector # +// - Ring ID +// - Sector # +// - Strip # +// - ADC count in this channel +// +// Summable digits consists of +// - Detector # +// - Ring ID +// - Sector # +// - Strip # +// - Total energy deposited in the strip +// - ADC count in this channel +// +/** @file AliFMDDigitizer.h + @author Christian Holm Christensen + @date Mon Mar 27 12:38:26 2006 + @brief FMD Digitizers declaration + @ingroup FMD_sim +*/ +#ifndef ALIFMDBASEDIGITIZER_H +# include #endif -// #ifndef ROOT_TArrayF -// # include -// #endif //==================================================================== class TClonesArray; class AliFMD; class AliLoader; class AliRunLoader; +class AliFMDDigit; -//==================================================================== -class AliFMDBaseDigitizer : public AliDigitizer -{ -public: - AliFMDBaseDigitizer(); - AliFMDBaseDigitizer(AliRunDigitizer * manager); - AliFMDBaseDigitizer(const Char_t* name, const Char_t* title); - virtual ~AliFMDBaseDigitizer(); - - // Do the main work - virtual Bool_t Init(); - - // Extra member functions - void SetVA1MipRange(UShort_t r=20) { fVA1MipRange = r; } - void SetAltroChannelSize(UShort_t s=1024) { fAltroChannelSize = s;} - void SetSampleRate(UShort_t r=1) { fSampleRate = (r>2 ? 2 : r); } - void SetShapingTime(Float_t t=10) { fShapingTime = t; } - - UShort_t GetVA1MipRange() const { return fVA1MipRange; } - UShort_t GetAltroChannelSize() const { return fAltroChannelSize; } - UShort_t GetSampleRate() const { return fSampleRate; } - Float_t GetShapingTime() const { return fShapingTime; } -protected: - virtual void SumContributions(AliFMD* fmd); - virtual void DigitizeHits(AliFMD* fmd) const; - virtual void ConvertToCount(Float_t edep, - Float_t last, - Float_t siThickness, - Float_t siDensity, - TArrayI& counts) const; - virtual UShort_t MakePedestal() const { return 0; } - virtual void AddNoise(TArrayI&) const {} - virtual void AddDigit(AliFMD* /* fmd */, - UShort_t /* detector */, - Char_t /* ring */, - UShort_t /* sector */, - UShort_t /* strip */, - Float_t /* edep */, - UShort_t /* count1 */, - Short_t /* count2 */, - Short_t /* count3 */) const {} - - AliRunLoader* fRunLoader; - AliFMDEdepMap fEdep; // Cache of Energy from hits - UShort_t fVA1MipRange; // How many MIPs the pre-amp can do - UShort_t fAltroChannelSize; // Largest # to store in 1 ADC chan. - UShort_t fSampleRate; // Times the ALTRO samples pre-amp. - Float_t fShapingTime; // Shaping profile parameter - - ClassDef(AliFMDBaseDigitizer,0) // Base class for FMD digitizers -}; //==================================================================== +/** @class AliFMDDigitizer + @brief Concrete digitizer to make digits from hits. See also + AliFMDBaseDigitizer documentation. + @ingroup FMD_sim + */ class AliFMDDigitizer : public AliFMDBaseDigitizer { public: - AliFMDDigitizer(); - AliFMDDigitizer(AliRunDigitizer * manager); + /** CTOR */ + AliFMDDigitizer() : AliFMDBaseDigitizer() {} + /** CTOR + @param manager Manager of digitization */ + AliFMDDigitizer(AliRunDigitizer * manager) + : AliFMDBaseDigitizer(manager) {} + /** DTOR */ virtual ~AliFMDDigitizer() {} - virtual void Exec(Option_t* option=0); - - - // Extra member functions - void SetPedestal(Float_t mean=10, Float_t width=.5); - void GetPedestal(Float_t& mean, Float_t& width) const; -protected: - virtual void AddDigit(AliFMD* fmd, - UShort_t detector, - Char_t ring, - UShort_t sector, - UShort_t strip, - Float_t edep, - UShort_t count1, - Short_t count2, - Short_t count3) const; - virtual UShort_t MakePedestal() const; - virtual void CheckDigit(Float_t edep, - UShort_t nhits, - const TArrayI& counts); - Float_t fPedestal; // Mean of pedestal - Float_t fPedestalWidth; // Width of pedestal - ClassDef(AliFMDDigitizer,0) // Make Digits from Hits -}; -//____________________________________________________________________ -inline void -AliFMDDigitizer::SetPedestal(Float_t mean, Float_t width) -{ - fPedestal = mean; - fPedestalWidth = width; -} - -//____________________________________________________________________ -inline void -AliFMDDigitizer::GetPedestal(Float_t& mean, Float_t& width) const -{ - mean = fPedestal; - width = fPedestalWidth; -} - - -//==================================================================== -class AliFMDSDigitizer : public AliFMDBaseDigitizer -{ -public: - AliFMDSDigitizer(); - AliFMDSDigitizer(const Char_t* headerFile, const Char_t* sdigFile=""); - virtual ~AliFMDSDigitizer(); - virtual void Exec(Option_t* option=0); + /** Initialise */ + virtual Bool_t Init(); + /** Execute this digitizer. + This member function will be called once per event by the passed + AliRunDigitizer manager object. + @param options Not used */ + virtual void Exec(Option_t* option=""); protected: - virtual void AddDigit(AliFMD* fmd, - UShort_t detector, - Char_t ring, - UShort_t sector, - UShort_t strip, - Float_t edep, - UShort_t count1, - Short_t count2, - Short_t count3) const; - ClassDef(AliFMDSDigitizer,0) // Make Summable Digits from Hits + /** Sum contributions from SDigits + @param sdigitsBranch Branch of SDigit data */ + void SumContributions(TBranch* sdigitsBranch); + + ClassDef(AliFMDDigitizer,1) // Make Digits from Hits }; - #endif //____________________________________________________________________ //