]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALDigitizer.h
Correction on new Trigger commit, some casting from float to integer and some arrays...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALDigitizer.h
index 61e2874a0f0ef97a7af0081431d7600dfda76cd6..716933aa37fef9e6ee6e0b83c34a53f3df6dfa7d 100644 (file)
@@ -1,13 +1,22 @@
-#ifndef ALIEMCALDigitizer_H
-#define ALIEMCALDigitizer_H
+#ifndef ALIEMCALDIGITIZER_H
+#define ALIEMCALDIGITIZER_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
 
 //_________________________________________________________________________
-//  Task Class for making Digits in EMCAL      
-//                  
+// Class that performs digitization of Summable digits from simulated data
+//  
+// In addition it performs mixing of summable digits from different events.
+//
+// For each event two branches are created in TreeD:
+//   "EMCAL" - list of digits
+//   "AliEMCALDigitizer" - AliEMCALDigitizer with all parameters used in digitization
+//
+// Note, that one cset title for new digits branch, and repeat digitization with
+// another set of parameters.
+//
 //*-- Author: Sahal Yacoob (LBL)
 // based on : AliPHOSDigit
 // July     2003 Yves Schutz : NewIO 
 
 
 // --- ROOT system ---
-#include "TObjString.h"
-class TArrayI ;
 class TClonesArray ; 
-class TList;
 class TBrowser;
 
 // --- Standard library ---
@@ -27,6 +33,7 @@ class TBrowser;
 // --- AliRoot header files ---
 #include "AliDigitizer.h"
 #include "AliConfig.h"
+class AliEMCALCalibData ;
 class AliEMCALSDigitizer ;
 class AliRunDigitizer ;
 
@@ -42,22 +49,22 @@ public:
   void    Digitize(Int_t event);          // Make Digits from SDigits stored in fSDigits
   void    Exec(Option_t *option);               // Supervising method
 
-  Float_t GetDigitThreshold() const { return fDigitThreshold;}
-  Float_t GetPedestal()       const { return fPedestal; }
+  Int_t   GetDigitThreshold() const { return fDigitThreshold;}
+  //Float_t GetPedestal()       const { return fPedestal; }
   Float_t GetPinNoise()       const { return fPinNoise;}
-  Float_t GetSlope()          const { return fSlope; }
-  Float_t GetTimeResolution() const { return fTimeResolution ; }
+  //Float_t GetSlope()          const { return fSlope; }
+  Double_t GetTimeResolution() const { return fTimeResolution ; }
   Float_t GetECAchannel()     const { return fADCchannelEC ; }
   Float_t GetECApedestal()    const { return fADCpedestalEC ; }
void   SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
-  void    SetDigitThreshold(Float_t EMCThreshold)  {fDigitThreshold = EMCThreshold;}
 void    SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
+  void    SetDigitThreshold(Int_t EMCThreshold)  {fDigitThreshold = EMCThreshold;}
   void    SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
 
   //General
-  Int_t   GetDigitsInRun()  const { return fDigitsInRun; } 
+  Int_t GetDigitsInRun()  const { return fDigitsInRun; } 
   void  MixWith(TString alirunFileName, 
                TString eventFolderName = AliConfig::GetDefaultEventFolderName()) ; // Add another one file to mix
-  void  Print() const ;
+  void  Print(Option_t* option="") const ;
   void  Print1(Option_t * option); // *MENU*
  
   AliEMCALDigitizer & operator = (const AliEMCALDigitizer & /*rvalue*/)  {
@@ -67,13 +74,6 @@ public:
   }
 
   virtual void Browse(TBrowser* b);
-  // hists
-  void   SetControlHists(const Int_t var=0) {fControlHists=var;}
-  Int_t  GetControlHist() const {return fControlHists;}
-  TList *GetListOfHists() {return fHists;}
-  TList* BookControlHists(const int var=0);
-  void   SaveHists(const char* name="RF/TRD1/Digitizations/DigiVar?",
-  Bool_t kSingleKey=kTRUE, const char* opt="RECREATE"); // *MENU*
 
 private:
 
@@ -82,12 +82,17 @@ private:
   void    PrintDigits(Option_t * option) ;
   void    Unload() ; 
   void    WriteDigits() ;         // Writes Digits the current event
+  void    WriteDigits(TClonesArray* digits, const char* branchName = "EMTRG"); //
   Float_t TimeOfNoise(void) ;     // Calculate time signal generated by noise
 
   //Calculate the time of crossing of the threshold by front edge
-  Float_t FrontEdgeTime(TClonesArray * ticks) ;
-  Int_t   DigitizeEnergy(Float_t energy) ;
-
+  //Float_t FrontEdgeTime(TClonesArray * ticks) ;
+       
+  Int_t   DigitizeEnergy(Float_t energy, Int_t AbsId) ;
+  void    Digits2FastOR(TClonesArray*digitsTMP, TClonesArray* digitsTRG);
+  void    DigitalFastOR(Double_t time, Double_t dE, Int_t timeSamples[], Int_t nSamples);
+       
+       
 private:
   
   Bool_t  fDefaultInit;           //! Says if the task was created by defaut ctor (only parameters are initialized)
@@ -98,27 +103,26 @@ private:
   TString * fInputFileNames ;     //[fInput] List of file names to merge 
   TString * fEventNames ;         //[fInput] List of event names to merge
 
-  Float_t fDigitThreshold  ;      // Threshold for storing digits in EMC
+  Int_t   fDigitThreshold  ;      // Threshold for storing digits in EMC, ACD units
   Int_t   fMeanPhotonElectron ;   // number of photon electrons per GeV deposited energy 
-  Float_t fPedestal ;             // Calibration parameters 
-  Float_t fSlope ;                // read from SDigitizer
+  //Float_t fPedestal ;           // Calibration parameters //Not used, remove?
+  //Float_t fSlope ;              // read from SDigitizer   //Not used, remove?
   Float_t fPinNoise ;             // Electronics noise in EMC
-  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 
+  Double_t fTimeResolution ;       // Time resolution of FEE electronics
+  //Float_t fTimeThreshold ;        // Threshold to start timing for given crystall //Not used, remove?
+  //Float_t fTimeSignalLength ;     // Length of the timing signal //Not used, remove?
   Float_t fADCchannelEC ;         // width of one ADC channel in EC section (GeV)
-  Float_t fADCpedestalEC ;        //
+  Float_t fADCpedestalEC ;        // pedestal for one ADC channel
   Int_t   fNADCEC ;               // number of channels in EC section 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
-  // Control hists
-  Int_t   fControlHists;          //!
-  TList  *fHists;                 //!
 
-  ClassDef(AliEMCALDigitizer,5)  // description 
+  AliEMCALCalibData * fCalibData; //Calibration data pointer
+
+  ClassDef(AliEMCALDigitizer,8)  // description 
 };
 
 
-#endif // AliEMCALDigitizer_H
+#endif // AliEMCALDIGITIZER_H