AliFMDDigitizer.h

Go to the documentation of this file.
00001 #ifndef ALIFMDDIGITIZER_H
00002 #define ALIFMDDIGITIZER_H
00003 /* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
00004  * reserved. 
00005  *
00006  * See cxx source for full Copyright notice                               
00007  */
00008 #ifndef ALIDIGITIZER_H
00009 # include <AliDigitizer.h>
00010 #endif
00011 #ifndef ALIRUNDIGITIZER_H
00012 # include <AliRunDigitizer.h>
00013 #endif
00014 #ifndef ALIFMDEdepMAP_H
00015 # include "AliFMDEdepMap.h"
00016 #endif
00017 #ifndef __UTILITY__
00018 # include <utility>
00019 #endif
00020 // #ifndef ROOT_TArrayF
00021 // # include <TArrayF.h>
00022 // #endif
00023 
00024 //====================================================================
00025 class TClonesArray;
00026 class AliFMD;
00027 class AliLoader;
00028 class AliRunLoader;
00029 class AliFMDDigit;
00030 
00031 
00032 //====================================================================
00140 class AliFMDBaseDigitizer : public AliDigitizer 
00141 {
00142 public:
00144   AliFMDBaseDigitizer();
00147   AliFMDBaseDigitizer(AliRunDigitizer * manager);
00151   AliFMDBaseDigitizer(const Char_t* name, const Char_t* title);
00153   virtual ~AliFMDBaseDigitizer();
00154    
00156   virtual Bool_t Init();
00157 
00168   void     SetShapingTime(Float_t B=10) { fShapingTime = B;  }  
00170   Float_t  GetShapingTime()      const { return fShapingTime; }
00171 protected:
00174   virtual void     SumContributions(AliFMD* fmd);
00179   virtual void     DigitizeHits(AliFMD* fmd) const;
00189   virtual void     ConvertToCount(Float_t   edep, 
00190                                   Float_t   last,
00191                                   UShort_t  detector, 
00192                                   Char_t    ring, 
00193                                   UShort_t  sector, 
00194                                   UShort_t  strip,
00195                                   TArrayI&  counts) const;
00202   virtual UShort_t MakePedestal(UShort_t  detector, 
00203                                 Char_t    ring, 
00204                                 UShort_t  sector, 
00205                                 UShort_t  strip) const;
00207   virtual void     AddNoise(TArrayI&) const {}
00209   virtual void     AddDigit(AliFMD*  /* fmd      */,
00210                             UShort_t /* detector */, 
00211                             Char_t   /* ring     */,
00212                             UShort_t /* sector   */, 
00213                             UShort_t /* strip    */, 
00214                             Float_t  /* edep     */, 
00215                             UShort_t /* count1   */, 
00216                             Short_t  /* count2   */, 
00217                             Short_t  /* count3   */) const {}
00218 
00219   AliRunLoader* fRunLoader;        
00220   AliFMDEdepMap fEdep;             // Cache of Energy from hits 
00221   Float_t       fShapingTime;      // Shaping profile parameter
00222   
00225   AliFMDBaseDigitizer(const AliFMDBaseDigitizer& o) 
00226     : AliDigitizer(o) {}
00229   AliFMDBaseDigitizer& operator=(const AliFMDBaseDigitizer&) { return *this; }
00230   ClassDef(AliFMDBaseDigitizer,2) // Base class for FMD digitizers
00231 };
00232 
00233 //====================================================================
00239 class AliFMDDigitizer : public AliFMDBaseDigitizer 
00240 {
00241 public:
00243   AliFMDDigitizer();
00246   AliFMDDigitizer(AliRunDigitizer * manager);
00248   virtual ~AliFMDDigitizer() {}
00251   virtual void  Exec(Option_t* option=0);
00252 protected:
00263   virtual void     AddDigit(AliFMD*  fmd,
00264                             UShort_t detector, 
00265                             Char_t   ring,
00266                             UShort_t sector, 
00267                             UShort_t strip, 
00268                             Float_t  edep, 
00269                             UShort_t count1, 
00270                             Short_t  count2, 
00271                             Short_t  count3) const;
00278   virtual UShort_t MakePedestal(UShort_t  detector, 
00279                                 Char_t    ring, 
00280                                 UShort_t  sector, 
00281                                 UShort_t  strip) const;
00286   virtual void     CheckDigit(AliFMDDigit*    digit,
00287                               UShort_t        nhits,
00288                               const TArrayI&  counts);
00289   ClassDef(AliFMDDigitizer,1) // Make Digits from Hits
00290 };
00291 
00292 //====================================================================
00298 class AliFMDSDigitizer : public AliFMDBaseDigitizer 
00299 {
00300 public:
00302   AliFMDSDigitizer();
00306   AliFMDSDigitizer(const Char_t* headerFile, const Char_t* sdigFile="");
00308   virtual ~AliFMDSDigitizer();
00311   virtual void  Exec(Option_t* option=0);
00312 protected:
00323   virtual void     AddDigit(AliFMD*  fmd,
00324                             UShort_t detector, 
00325                             Char_t   ring,
00326                             UShort_t sector, 
00327                             UShort_t strip, 
00328                             Float_t  edep, 
00329                             UShort_t count1, 
00330                             Short_t  count2, 
00331                             Short_t  count3) const;
00332   ClassDef(AliFMDSDigitizer,0) // Make Summable Digits from Hits
00333 };
00334 
00335 
00336 
00337 #endif
00338 //____________________________________________________________________
00339 //
00340 // Local Variables:
00341 //   mode: C++
00342 // End:
00343 //
00344 //
00345 // EOF
00346 //
00347 

Generated on Fri Mar 24 17:11:21 2006 for ALICE FMD Off-line by  doxygen 1.4.6