]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSDigitizer.h
replace hardcoded calls to geometry transformation matrices with calls to the TGeoMan...
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDigitizer.h
index ccb955cd40bae6ed39561e3048d1b7d333be2e18..d47b45b8d6f60fb960e9dd37b21cf32f00003910 100644 (file)
@@ -5,6 +5,20 @@
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.35  2007/08/07 14:12:03  kharlov
+ * Quality assurance added (Yves Schutz)
+ *
+ * Revision 1.34  2006/04/29 20:25:30  hristov
+ * Decalibration is implemented (Yu.Kharlov)
+ *
+ * Revision 1.33  2005/05/28 14:19:04  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
 //_________________________________________________________________________
 //  Task Class for making SDigits in PHOS      
 // Class performs digitization of Summable digits (in the PHOS case this is just
@@ -15,7 +29,7 @@
 
 
 // --- ROOT system ---
-#include "TObjString.h"
+//#include "TObjString.h"
 class TArrayI ;
 class TClonesArray ; 
 
@@ -24,25 +38,26 @@ class TClonesArray ;
 // --- AliRoot header files ---
 #include "AliDigitizer.h"
 class AliPHOSSDigitizer ;
+class AliPHOSQualAssDataMaker ; 
 class AliRunDigitizer ;
 
 class AliPHOSDigitizer: public AliDigitizer {
 
 public:
   AliPHOSDigitizer() ;          // ctor
-  AliPHOSDigitizer(const TString alirunFileNameFile, const TString eventFolderName = AliConfig::fgkDefaultEventFolderName) ; 
+  AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; 
   AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ;
   AliPHOSDigitizer(AliRunDigitizer * manager) ;
   virtual ~AliPHOSDigitizer() ;       
 
-  void    Digitize(const Int_t event) ;            // Make Digits from SDigits 
+  void    Digitize(Int_t event) ;            // Make Digits from SDigits 
   void    Exec(Option_t *option);                  // Supervising method
 
   //CPV parameters
-  const Float_t GetCPVNoise()     const { return fCPVNoise ;}
-  const Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;}
-  const Float_t GetCPVchannel()   const { return fADCchanelCpv; }
-  const Float_t GetCPVpedestal()  const { return fADCpedestalCpv; }
+  Float_t GetCPVNoise()     const { return fCPVNoise ;}
+  Float_t GetCPVThreshold() const { return fCPVDigitThreshold ;}
+  Float_t GetCPVchannel()   const { return fADCchanelCpv; }
+  Float_t GetCPVpedestal()  const { return fADCpedestalCpv; }
 
   void    SetCPVNoise(Float_t CPVNoise)          {fCPVNoise = CPVNoise;}
   void    SetCPVThreshold(Float_t CPVThreshold)  {fCPVDigitThreshold= CPVThreshold;}
@@ -52,11 +67,11 @@ public:
 
 
   //EMC parameters
-  const Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
-  const Float_t GetEMCchannel()   const { return fADCchanelEmc; }
-  const Float_t GetEMCpedestal()  const { return fADCpedestalEmc; }  
-  const Float_t GetPinNoise()     const { return fPinNoise;}
-  const Float_t GetTimeResolution() const { return fTimeResolution ; }
+  Float_t GetEMCThreshold() const { return fEMCDigitThreshold;}
+  Float_t GetEMCchannel()   const { return fADCchanelEmc; }
+  Float_t GetEMCpedestal()  const { return fADCpedestalEmc; }  
+  Float_t GetPinNoise()     const { return fPinNoise;}
+  Float_t GetTimeResolution() const { return fTimeResolution ; }
 
   void   SetEMCThreshold(Float_t EMCThreshold)  {fEMCDigitThreshold = EMCThreshold;}
   void   SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
@@ -65,12 +80,14 @@ public:
   void   SetEMCpedestal(Float_t ped)   { fADCpedestalEmc = ped ; }  
   void   SetEventFolderName(TString name) { fEventFolderName = name ; }
   void   SetTimeResolution(Float_t res){ fTimeResolution = res ; }  
+  void   SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
 
   //General
-  const Int_t   GetDigitsInRun()  const { return fDigitsInRun ;}  
-  void    MixWith(const TString alirunFileName, 
-                 const TString eventFolderName = AliConfig::fgkDefaultEventFolderName) ; // Add another one file to mix
-  void    Print()const ;
+  Int_t   GetDigitsInRun()  const { return fDigitsInRun ;}  
+  void    MixWith(TString alirunFileName, 
+                 TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; // Add another one file to mix
+
+  void    Print(const Option_t * = "")const ;
  
   AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/)  {
     // assignement operator requested by coding convention but not needed
@@ -78,7 +95,9 @@ public:
     return *this ; 
   }
 
+  
 private:
+  AliPHOSQualAssDataMaker * GetQualAssDataMaker() const { return fQADM ; } 
 
   virtual Bool_t Init() ; 
   void    InitParameters() ; 
@@ -90,7 +109,8 @@ private:
   //Calculate the time of crossing of the threshold by front edge
   Float_t FrontEdgeTime(TClonesArray * ticks) const ; 
   //Calculate digitized signal with gived ADC parameters
-  Int_t   DigitizeEnergy(Float_t energy, Int_t absId) ;
+  void    DecalibrateEMC(AliPHOSDigit * digit);
+  Int_t   DigitizeCPV(Float_t charge, Int_t absId) ;
 
 private:
 
@@ -124,8 +144,15 @@ private:
   Int_t   fNADCcpv ;                // number of channels in CPV ADC
 
   TString fEventFolderName;         // skowron: name of EFN to read data from in stand alone mode
+  Int_t   fFirstEvent;              // first event to process
+  Int_t   fLastEvent;               // last  event to process 
+  AliPHOSQualAssDataMaker * fQADM ; //!Quality Assurance Data Maker
+  Int_t fEventCounter ;             //! counts the events processed
   
-  ClassDef(AliPHOSDigitizer,2)  // description 
+  //QA stuff
+  static const Int_t fgkCycles = 9999 ; // QA data accumulation cycle 
+
+  ClassDef(AliPHOSDigitizer,4)  // description 
 
 };