#ifndef ALIFMDDIGITIZER_H
#define ALIFMDDIGITIZER_H
-/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-#include <AliDigitizer.h>
-#include <AliRunDigitizer.h>
+/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
+ * reserved.
+ *
+ * See cxx source for full Copyright notice
+ */
+// Classses to make Hits into digits and summable 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 <cholm@nbi.dk>
+ @date Mon Mar 27 12:38:26 2006
+ @brief FMD Digitizers declaration
+ @ingroup FMD_sim
+*/
+#ifndef ALIFMDBASEDIGITIZER_H
+# include <AliFMDBaseDigitizer.h>
+#endif
+//====================================================================
class TClonesArray;
-class AliFMDDigitizer : public AliDigitizer {
- public:
-
- AliFMDDigitizer();
- AliFMDDigitizer(AliRunDigitizer * manager);
- virtual ~AliFMDDigitizer();
- virtual Bool_t Init();
-
-
- // Do the main work
- void Exec(Option_t* option=0) ;
- Int_t PutNoise(Int_t charge) {return (Int_t)(gRandom->Gaus(charge,500));}
- TClonesArray *Digits() const {return fDigits;}
- TClonesArray *Hits() const {return fHits;}
+class AliFMD;
+class AliLoader;
+class AliRunLoader;
+class AliFMDDigit;
-
- enum {kBgTag = -1};
-
-
- private:
- TClonesArray *fDigits; // ! array with digits
- TClonesArray *fHits; // List of hits
- AliRunDigitizer* GetManager(){return fManager;}
-
- ClassDef(AliFMDDigitizer,0)
-};
-#endif
+//====================================================================
+/** @class AliFMDDigitizer
+ @brief Concrete digitizer to make digits from hits. See also
+ AliFMDBaseDigitizer documentation.
+ @ingroup FMD_sim
+ */
+class AliFMDDigitizer : public AliFMDBaseDigitizer
+{
+public:
+ /** CTOR */
+ AliFMDDigitizer();
+ /** CTOR
+ @param manager Manager of digitization */
+ AliFMDDigitizer(AliRunDigitizer * manager);
+ /** DTOR */
+ virtual ~AliFMDDigitizer() {}
+ /** Do everything
+ @param option Not used */
+ virtual void Exec(Option_t* option=0);
+protected:
+ /** Add a digit to output.
+ @param fmd Pointer to detector object
+ @param detector Detector #
+ @param ring Ring ID
+ @param sector Sector number
+ @param strip Strip number
+ @param edep Energy deposited (not used)
+ @param count1 ADC count 1
+ @param count2 ADC count 2 (-1 if not used)
+ @param count3 ADC count 3 (-1 if not used) */
+ 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;
+ /** MAke a pedestal
+ @param detector Detector #
+ @param ring Ring ID
+ @param sector Sector number
+ @param strip Strip number
+ @return Random noise */
+ virtual UShort_t MakePedestal(UShort_t detector,
+ Char_t ring,
+ UShort_t sector,
+ UShort_t strip) const;
+ /** Check that digit data is consistent
+ @param digit Digit
+ @param nhits Number of hits
+ @param counts ADC counts */
+ virtual void CheckDigit(AliFMDDigit* digit,
+ UShort_t nhits,
+ const TArrayI& counts);
+ ClassDef(AliFMDDigitizer,1) // Make Digits from Hits
+};
+#endif
+//____________________________________________________________________
+//
+// Local Variables:
+// mode: C++
+// End:
+//
+//
+// EOF
+//
+