]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSDigitizer.h
Fix for coverity (AdC)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDigitizer.h
index 9703f3156071ce9c9ced6cf0340ff7c91328388f..bcd7f295dd56aaa827691b83cda89bb691d21471 100644 (file)
@@ -5,6 +5,26 @@
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.37  2007/10/10 09:05:10  schutz
+ * Changing name QualAss to QA
+ *
+ * Revision 1.36  2007/09/30 17:08:20  schutz
+ * Introducing the notion of QA data acquisition cycle (needed by online)
+ *
+ * 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
 
 
 // --- ROOT system ---
-#include "TTask.h"
-#include "TObjString.h"
+//#include "TObjString.h"
 class TArrayI ;
+class TClonesArray ; 
+
 // --- Standard library ---
 
 // --- AliRoot header files ---
 #include "AliDigitizer.h"
-class AliPHOSSDigitizer ;
-class AliRunDigitizer ;
+#include "AliConfig.h"
+#include "AliPHOSPulseGenerator.h"
+class AliDigitizationInput ;
+class AliPHOSCalibData ; 
 
-class AliPHOSDigitizer: public TTask {
+class AliPHOSDigitizer: public AliDigitizer {
 
 public:
   AliPHOSDigitizer() ;          // ctor
-  AliPHOSDigitizer(const char *headerFile, const char * name = "Default") ; 
-  AliPHOSDigitizer(AliRunDigitizer * ard) ;
-  AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) 
-                  {( (AliPHOSDigitizer &)dtizer ).Copy(*this) ;} 
+  AliPHOSDigitizer(TString alirunFileNameFile, TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; 
+  AliPHOSDigitizer(AliDigitizationInput * digInput) ;
   virtual ~AliPHOSDigitizer() ;       
 
-  void    Digitize(const 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; }
-
-  void    SetCPVNoise(Float_t CPVNoise)          {fCPVNoise = CPVNoise;}
-  void    SetCPVThreshold(Float_t CPVThreshold)  {fCPVDigitThreshold= CPVThreshold;}
-  void    SetNCPVchannels(Int_t n)     { fNADCcpv = n; }
-  void    SetCPVchannel(Float_t width) { fADCchanelCpv = width; }
-  void    SetCPVpedestal(Float_t ped)  { fADCpedestalCpv = ped; }
-
+  void    Digitize(Int_t event) ;            // Make Digits from SDigits 
+  void    Digitize(Option_t *option);                  // Supervising method
 
-  //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 ; }
-
-  void   SetEMCThreshold(Float_t EMCThreshold)  {fEMCDigitThreshold = EMCThreshold;}
-  void   SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
-  void   SetNEMCchannels(Int_t n)      { fNADCemc = n; }
-  void   SetEMCchannel(Float_t width)  { fADCchanelEmc = width; }
-  void   SetEMCpedestal(Float_t ped)   { fADCpedestalEmc = ped ; }  
+  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 char* HeaderFile) ; // Add another one file to mix
-  void    Print(Option_t* option)const ;
-  void    Reset() ;   //restarts starts event processing from 0 event(s)
-
-  void    SetSDigitsBranch(const char* file) ;
-
-  AliPHOSDigitizer & operator = (const AliPHOSDigitizer & rvalue)  {
-    // assignement operator requested by coding convention but not needed
-    abort() ;
-    return *this ; 
-  }
+  Int_t   GetDigitsInRun()  const { return fDigitsInRun ;}  
 
+  void    Print(const Option_t * = "")const ;
 private:
+  AliPHOSDigitizer(const AliPHOSDigitizer & dtizer) ;
+  AliPHOSDigitizer & operator = (const AliPHOSDigitizer & /*rvalue*/);
 
-  Bool_t  Init() ; 
+  virtual Bool_t Init() ; 
+  void    InitParameters() ; 
   void    PrintDigits(Option_t * option) ;
-  void    WriteDigits(Int_t evt) ;            // Writes Digits for particular event
-  Float_t TimeOfNoise(void) ;                 // Calculate time signal generated by noise
+  void    Unload() ; 
+  void    WriteDigits() ;                     // Writes Digits for the current event
+  Float_t TimeOfNoise(void) const;            // Calculate time signal generated by noise
+
+  Float_t TimeResolution(Float_t energy) ;    //TOF resolution
+
   //Calculate the time of crossing of the threshold by front edge
-  Float_t FrontEdgeTime(TClonesArray * ticks) ; 
+  //  Float_t FrontEdgeTime(TClonesArray * ticks) const ; 
   //Calculate digitized signal with gived ADC parameters
-  Int_t   DigitizeEnergy(Float_t energy, Int_t absId) ;
+  Float_t Calibrate(Float_t amp, Int_t absId) ;
+  Float_t CalibrateT(Float_t time, Int_t absId) ;
+  void    Decalibrate(AliPHOSDigit * digit);
+  Int_t   DigitizeCPV(Float_t charge, Int_t absId) ;
 
 private:
 
-  AliRunDigitizer * fARD ;          //! Pointer to the Digitization Manager class
-
-  Int_t   fEmcCrystals ;            // Number of EMC crystalls in the given geometry
-
-  Float_t fPinNoise ;               // Electronics noise in EMC
-  Float_t fEMCDigitThreshold  ;     // Threshold for storing digits in EMC
-
-  Float_t fCPVNoise ;               // Noise in CPV
-  Float_t fCPVDigitThreshold  ;     // Threshold for storing digits in CPV
+  Bool_t  fDefaultInit;             //! Says if the task was created by defaut ctor (only parameters are initialized)
+  Int_t   fDigitsInRun ;            //! Total number of digits in one run
+  Bool_t  fInit ;                   //! To avoid overwriting existing files
 
-  Int_t fDigitsInRun ;              //! Total number of digits in one run
+  Int_t   fInput ;                  // Number of files to merge
+  TString * fInputFileNames ;       //[fInput] List of file names to merge 
+  TString * fEventNames ;           //[fInput] List of event names to merge
 
-  Float_t fTimeResolution ;         // Time resolution of FEE electronics
-  Float_t fTimeThreshold ;          // Threshold to start timing for given crystall
-  Float_t fTimeSignalLength ;       // Length of the timing signal 
-
-  Float_t fADCchanelEmc ;           // width of one ADC channel in GeV
-  Float_t fADCpedestalEmc ;         //
-  Int_t   fNADCemc ;                // number of channels in EMC ADC
+  Int_t   fEmcCrystals ;            // Number of EMC crystalls in the given geometry
 
-  Float_t fADCchanelCpv ;           // width of one ADC channel in CPV 'popugais'
-  Float_t fADCpedestalCpv ;         // 
-  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 
+  AliPHOSCalibData* fcdb;           //! Calibration parameters DB
 
+  Int_t fEventCounter ;             //! counts the events processed
 
-  ClassDef(AliPHOSDigitizer,1)  // description 
+  AliPHOSPulseGenerator *fPulse;    //! Pulse shape generator
+  Int_t *fADCValuesLG;              //! Array of low-gain ALTRO samples
+  Int_t *fADCValuesHG;              //! Array of high-gain ALTRO samples
+  
+  ClassDef(AliPHOSDigitizer,5)  // description 
 
 };