X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FAliEMCALSDigitizer.h;h=c53129e37b6551b5c6e85821faefc60955e469f6;hb=7d6880f2c549805cf3f102af55f41ff4480d544c;hp=d8abbd36c7ea52d40ff911a3188750d9d7ba5f01;hpb=05a92d59aeb65ac1e2f05b1c0600345cea26698b;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/AliEMCALSDigitizer.h b/EMCAL/AliEMCALSDigitizer.h index d8abbd36c7e..c53129e37b6 100644 --- a/EMCAL/AliEMCALSDigitizer.h +++ b/EMCAL/AliEMCALSDigitizer.h @@ -1,73 +1,77 @@ -#ifndef ALIEMCALSDigitizer_H -#define ALIEMCALSDigitizer_H +#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$ */ - //_________________________________________________________________________ -// Task Class for making SDigits in EMCAL -// +// 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 //_________________________________________________________________________ -// -// Modif: -// August 2002 Yves Schutz: clone PHOS as closely as possible and intoduction -// of new IO (à la PHOS) // --- ROOT system --- -#include "TTask.h" -#include "TString.h" +#include "TNamed.h" +class TBrowser; + // --- Standard library --- // --- AliRoot header files --- +#include "AliConfig.h" -class AliEMCALSDigitizer: public TTask { +class AliEMCALSDigitizer: public TNamed { public: AliEMCALSDigitizer() ; // ctor - AliEMCALSDigitizer(const char* headerFile,const char* hdigitsTitle = "Default", const Bool_t toSplit = kFALSE) ; - virtual ~AliEMCALSDigitizer() ; // dtor + 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; } - Float_t Calibrate(Int_t amp)const {return (amp - fA)/fB ; } - Int_t Digitize(Float_t Energy)const { return (Int_t ) ( fA + Energy*fB); } - virtual void Exec(Option_t *option); - const char * GetSDigitsBranch()const{return GetName();} - const Int_t GetSDigitsInRun() const {return fSDigitsInRun ;} - const Float_t GetPedestalParameter()const {return fA;} - const Float_t GetCalibrationParameter()const{return fB;} - virtual void Print(Option_t* option) const ; - void SetSDigitsBranch(const char * title ) ; - void SetPedestalParameter(Float_t A){fA = A ;} - void SetSlopeParameter(Float_t B){fB = B ;} - void UseHitsFrom(const char * filename) ; Bool_t operator == (const AliEMCALSDigitizer & sd) const ; - const Int_t Segment2TowerID(Int_t SegmentID){ - return Layer2TowerID(SegmentID,kFALSE); -} + + virtual void Browse(TBrowser* b); private: void Init() ; void InitParameters() ; void PrintSDigits(Option_t * option) ; - const Int_t Layer2TowerID(Int_t,Bool_t) ; + void Unload() const ; private: Float_t fA ; // Pedestal parameter Float_t fB ; // Slope Digitizition parameters - Float_t fPhotonElectronFactor ; // number of photon electrons per GeV - // should be calculated independently for each layer as : - // LightYield*LightCollectionEfficiency*LightAttenuation*APDPhotoElectronEfficiency*APDGain - Float_t fTowerPrimThreshold ; // To store primary in Tower if Elos > threshold - Float_t fPreShowerPrimThreshold ;// To store primary if Pre Shower Elos > threshold - Bool_t fDefaultInit; //! Says if the task was created by defaut ctor (only parameters are initialized) + 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 - TFile * fSplitFile ; //! file in which SDigits will eventually be stored - Bool_t fToSplit ; //! Says that sigits should be written into splip file - - ClassDef(AliEMCALSDigitizer,2) // description - + 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 +#endif // AliEMCALSDIGITIZER_H +