]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/EMCALbase/AliEMCALSDigitizer.h
EMCAL
[u/mrichter/AliRoot.git] / EMCAL / EMCALbase / AliEMCALSDigitizer.h
diff --git a/EMCAL/EMCALbase/AliEMCALSDigitizer.h b/EMCAL/EMCALbase/AliEMCALSDigitizer.h
new file mode 100644 (file)
index 0000000..c53129e
--- /dev/null
@@ -0,0 +1,77 @@
+#ifndef ALIEMCALSDIGITIZER_H
+#define ALIEMCALSDIGITIZER_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+/* $Id$ */
+//_________________________________________________________________________
+// This is a class that makes SDigits out of Hits
+// A Summable Digits is the sum of all hits originating 
+// from one in one tower of the EMCAL 
+// A threshold for assignment of the primary to SDigit is applied 
+//
+// SDigits need to hold the energy sum of the hits, but AliEMCALDigit
+// can (should) only store amplitude.  Therefore, the SDigit energy is
+// "digitized" before being stored and must be "calibrated" back to an
+// energy before SDigits are summed to form true Digits
+//
+//
+//*-- Author: Sahal Yacoob (LBL)
+// based on : AliPHOSSDigitizer
+//_________________________________________________________________________
+// --- ROOT system ---
+#include "TNamed.h"
+class TBrowser;
+
+// --- Standard library ---
+
+// --- AliRoot header files ---
+#include "AliConfig.h"
+
+class AliEMCALSDigitizer: public TNamed {
+
+public:
+  AliEMCALSDigitizer() ;          // ctor
+  AliEMCALSDigitizer(const char * alirunFileName, const char * eventFolderName = AliConfig::GetDefaultEventFolderName()) ; 
+  AliEMCALSDigitizer(const AliEMCALSDigitizer & sd) ;
+  AliEMCALSDigitizer& operator = (const AliEMCALSDigitizer& source) ;
+  virtual ~AliEMCALSDigitizer(); // dtor
+
+  Float_t       Digitize(Float_t energy)const; //convert energy in GeV to int amplitude
+  Float_t       Calibrate(Float_t amp)const;  //opposite of Digitize()
+
+  virtual void  Digitize(Option_t *option=""); 
+  Int_t         GetSDigitsInRun() const {return fSDigitsInRun ;}  
+  virtual void  Print(Option_t *option="") const;
+  void          Print1(Option_t *option="all");  // *MENU*
+  void          SetEventFolderName(TString name) { fEventFolderName = name ; }
+  void          SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
+
+  Bool_t operator == (const AliEMCALSDigitizer & sd) const ;
+
+  virtual void Browse(TBrowser* b);
+
+private:
+  void     Init() ;
+  void     InitParameters() ; 
+  void     PrintSDigits(Option_t * option) ;
+  void     Unload() const ;
+
+private:
+  Float_t fA ;                     // Pedestal parameter
+  Float_t fB ;                     // Slope Digitizition parameters
+  Float_t fECPrimThreshold ;       // To store primary if EC Shower Elos > threshold
+  Bool_t  fDefaultInit;            //! Says if the object was created by defaut ctor (only parameters are initialized)
+  TString fEventFolderName;        // event folder name
+  Bool_t  fInit ;                  //! tells if initialisation went OK, will revent exec if not
+  Int_t   fSDigitsInRun ;          //! Total number of sdigits in one run
+  Int_t   fFirstEvent;             // first event to process
+  Int_t   fLastEvent;              // last  event to process
+  Float_t fSampling;               // See AliEMCALGeometry
+  TClonesArray* fHits;             //-> Temporal array with hits
+       
+  ClassDef(AliEMCALSDigitizer,8)  // description 
+};
+
+#endif // AliEMCALSDIGITIZER_H
+