ROOT logo
AliRoot » EMCAL » AliEMCALSDigitizer

class AliEMCALSDigitizer: public TNamed

 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

 JLK 26-Jun-2008 Added explanation:
 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

 SDigits are written to TreeS, branch "EMCAL"
 AliEMCALSDigitizer with all current parameters is written
 to TreeS branch "AliEMCALSDigitizer".
 Both branches have the same title. If necessary one can produce
 another set of SDigits with different parameters. Two versions
 can be distunguished using titles of the branches.
 User case:
 root [0] AliEMCALSDigitizer * s = new AliEMCALSDigitizer("galice.root")
 Warning in <TDatabasePDG::TDatabasePDG>: object already instantiated
 root [1] s->Digitize()
             // Makes SDigitis for all events stored in galice.root
 root [2] s->SetPedestalParameter(0.001)
             // One can change parameters of digitization
 root [3] s->SetSDigitsBranch("Redestal 0.001")
             // and write them into the new branch
 root [4] s->Digitize("deb all tim")
             // available parameters:
             deb - print # of produced SDigitis
             deb all  - print # and list of produced SDigits
             tim - print benchmarking information

*-- Author : Sahal Yacoob (LBL)
 based on  : AliPHOSSDigitzer

Function Members (Methods)

public:
AliEMCALSDigitizer()
AliEMCALSDigitizer(const AliEMCALSDigitizer& sd)
AliEMCALSDigitizer(const char* alirunFileName, const char* eventFolderName = AliConfig::GetDefaultEventFolderName())
virtual~AliEMCALSDigitizer()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
Float_tCalibrate(Float_t amp) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
Float_tDigitize(Float_t energy) const
virtual voidDigitize(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetSDigitsInRun() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliEMCALSDigitizer&operator=(const AliEMCALSDigitizer& source)
Bool_toperator==(const AliEMCALSDigitizer& sd) const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
voidPrint1(Option_t* option = "all")MENU
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEventFolderName(TString name)
voidSetEventRange(Int_t first = 0, Int_t last = -1)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidInit()
voidInitParameters()
voidPrintSDigits(Option_t* option)
voidUnload() const

Data Members

protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Float_tfAPedestal parameter
Float_tfBSlope Digitizition parameters
Bool_tfDefaultInit! Says if the object was created by defaut ctor (only parameters are initialized)
Float_tfECPrimThresholdTo store primary if EC Shower Elos > threshold
TStringfEventFolderNameevent folder name
Int_tfFirstEventfirst event to process
TClonesArray*fHits-> Temporal array with hits
Bool_tfInit! tells if initialisation went OK, will revent exec if not
Int_tfLastEventlast event to process
Int_tfSDigitsInRun! Total number of sdigits in one run
Float_tfSamplingSee AliEMCALGeometry

Class Charts

Inheritance Chart:
TNamed
AliEMCALSDigitizer

Function documentation

AliEMCALSDigitizer()
 ctor
AliEMCALSDigitizer(const char* alirunFileName, const char* eventFolderName = AliConfig::GetDefaultEventFolderName())
 ctor
AliEMCALSDigitizer(const AliEMCALSDigitizer& sd)
cpy ctor
~AliEMCALSDigitizer()
dtor
void Init()
 Initialization: open root-file, allocate arrays for hits and sdigits

 Initialization can not be done in the default constructor
============================================================= YS
  The initialisation is now done by the getter
void InitParameters()
initialize parameters for sdigitization
void Digitize(Option_t* option = "")
 Collects all hit of the same tower into digits
Float_t Digitize(Float_t energy) const
 Digitize the energy

JLK 26-Jun-2008 EXPLANATION LONG OVERDUE:

We have to digitize the SDigit energy so that it can be stored in
AliEMCALDigit, which has only an ADC amplitude member and
(rightly) no energy member.  This method converts the energy to an
integer which can be re-converted back to an energy with the
Calibrate(energy) method when it is time to create Digits from SDigits

Float_t Calibrate(Float_t amp) const
 Convert the amplitude back to energy in GeV

JLK 26-Jun-2008 EXPLANATION LONG OVERDUE:

We have to digitize the SDigit energy with the method Digitize()
so that it can be stored in AliEMCALDigit, which has only an ADC
amplitude member and (rightly) no energy member.  This method is
just the reverse of Digitize(): it converts the stored amplitude
back to an energy value in GeV so that the SDigit energies can be
summed before adding noise and creating digits out of them

void Print1(Option_t* option = "all")
void Print(Option_t* option = "") const
 Prints parameters of SDigitizer
Bool_t operator==(const AliEMCALSDigitizer& sd) const
 Equal operator.
 SDititizers are equal if their pedestal, slope and threshold are equal
void PrintSDigits(Option_t* option)
Prints list of digits produced at the current pass of AliEMCALDigitizer
void Unload() const
 Unload Hits and SDigits from the folder
void Browse(TBrowser* b)
Int_t GetSDigitsInRun() const
{return fSDigitsInRun ;}
void SetEventFolderName(TString name)
{ fEventFolderName = name ; }
void SetEventRange(Int_t first = 0, Int_t last = -1)
{fFirstEvent=first; fLastEvent=last; }