ROOT logo
AliRoot » EMCAL » AliEMCALRecPoint

class AliEMCALRecPoint: public AliCluster

Function Members (Methods)

public:
AliEMCALRecPoint()
AliEMCALRecPoint(const char* opt)
AliEMCALRecPoint(const AliEMCALRecPoint& rp)
virtual~AliEMCALRecPoint()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddDigit(AliEMCALDigit& digit, const Float_t energy, const Bool_t shared)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tCompare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidDraw(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 voidEvalAll(Float_t logWeight, TClonesArray* digits, const Bool_t justClusters)
voidEvalDistanceToBadChannels(AliCaloCalibPedestal* caloped)
virtual voidEvalGlobalPosition(Float_t logWeight, TClonesArray* digits)
voidEvalLocal2TrackingCSTransform()
virtual voidEvalLocalPosition(Float_t logWeight, TClonesArray* digits)
Bool_tEvalLocalPosition2(TClonesArray* digits, TArrayD& ed)
voidEvalLocalPositionFit(Double_t deff, Double_t w0, Double_t phiSlope, TClonesArray* digits)
Bool_tEvalLocalPositionFromDigits(TClonesArray* digits, TArrayD& ed, TVector3& locPos)
Bool_tEvalLocalPositionFromDigits(const Double_t esum, const Double_t deff, const Double_t w0, TClonesArray* digits, TArrayD& ed, TVector3& locPos)
virtual voidEvalParents(TClonesArray* digits)
virtual voidEvalPrimaries(TClonesArray* digits)
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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_t*GetAbsId() const
Int_tGetAbsId(Int_t i) const
Int_tGetAbsIdMaxDigit() const
virtual Int_tGetClusterType() const
Float_tGetCoreEnergy() const
static voidGetDeffW0(const Double_t esum, Double_t& deff, Double_t& w0)
virtual int*GetDigitsList() const
virtual Int_tGetDigitsMultiplicity() const
virtual Float_tGetDispersion() const
Float_tGetDistanceToBadTower() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual voidGetElipsAxis(Float_t* lambda) const
Float_t*GetEnergiesList() const
virtual Float_tGetEnergy() const
virtual Bool_tAliCluster::GetGlobalCov(Float_t* cov) const
virtual voidGetGlobalPosition(TVector3& gpos) const
virtual Bool_tAliCluster::GetGlobalXYZ(Float_t* xyz) const
virtual const char*TObject::GetIconName() const
Int_tGetIndexInList() const
Int_tGetIndMaxDigit() const
Int_tAliCluster::GetLabel(Int_t i) const
virtual voidGetLocalPosition(TVector3& lpos) const
Float_tGetMaximalEnergy() const
Int_tGetMaximalEnergyIndex() const
Int_tGetMaximumMultiplicity() const
Int_tGetMultiplicity() const
Int_tGetMultiplicityAtLevel(Float_t level) const
virtual const char*TObject::GetName() const
Short_tGetNExMax() const
virtual Int_tGetNumberOfLocalMax(AliEMCALDigit** maxAt, Float_t* maxAtEnergy, Float_t locMaxCut, TClonesArray* digits) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Int_t*GetParents(Int_t& number) const
Double_tGetPointEnergy() const
virtual Int_t*GetPrimaries(Int_t& number) const
Int_tGetPrimaryIndex() const
Float_tAliCluster::GetSigmaY2() const
Float_tAliCluster::GetSigmaYZ() const
Float_tAliCluster::GetSigmaZ2() const
virtual Int_tGetSuperModuleNumber() const
Float_tGetTime() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
UShort_tAliCluster::GetVolumeId() const
Float_tAliCluster::GetX() const
virtual Bool_tAliCluster::GetXAlphaRefPlane(Float_t& x, Float_t& alpha) const
virtual Bool_tAliCluster::GetXRefPlane(Float_t& xref) const
Float_tAliCluster::GetY() const
Float_tAliCluster::GetZ() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
voidAliCluster::IncreaseClusterUsage()
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
Bool_tAliCluster::IsClusterShared() const
Bool_tAliCluster::IsClusterUsed() const
virtual Bool_tIsEmc() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tIsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Bool_tAliCluster::Misalign()
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)
AliEMCALRecPoint&operator=(const AliEMCALRecPoint& rp)
virtual voidPaint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
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 voidSetClusterType(Int_t ver)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetIndexInList(Int_t val)
voidSetIndMaxDigit(const Int_t ind)
voidAliCluster::SetLabel(Int_t lab, Int_t i)
voidSetNExMax(Int_t nmax = 1)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetParents(Int_t nParents, Int_t* parents)
voidSetSharedCluster(Bool_t s)
voidAliCluster::SetSigmaY2(Float_t sigy2)
voidAliCluster::SetSigmaYZ(Float_t sigyz)
voidAliCluster::SetSigmaZ2(Float_t sigz2)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidAliCluster::SetVolumeId(UShort_t id)
voidAliCluster::SetX(Float_t x)
voidAliCluster::SetY(Float_t y)
voidAliCluster::SetZ(Float_t z)
Bool_tSharedCluster() const
virtual voidShowMembers(TMemberInspector&)
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
Double_tTmaxInCm(const Double_t e = 0.0, const Int_t key = 0)
virtual voidAliCluster::Use(Int_t = 0)
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 Bool_tAreNeighbours(AliEMCALDigit* digit1, AliEMCALDigit* digit2) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Float_tEtaToTheta(Float_t arg) const
voidEvalCoreEnergy(Float_t logWeight, TClonesArray* digits)
virtual voidEvalDispersion(Float_t logWeight, TClonesArray* digits)
virtual voidEvalElipsAxis(Float_t logWeight, TClonesArray* digits)
voidEvalTime(TClonesArray* digits)
virtual TGeoHMatrix*AliCluster::GetMatrix(Bool_t original = kFALSE) const
virtual const TGeoHMatrix*AliCluster::GetTracking2LocalMatrix() const
voidTObject::MakeZombie()
Float_tThetaToEta(Float_t arg) const

Data Members

public:
enum AliCluster::[unnamed] { kUsed
kShared
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
Int_t*fAbsIdList[fMulDigit] absId of digits
Float_tfAmpsummed amplitude of digits
Int_tfClusterTypetype of cluster stored: v1
Float_tfCoreEnergyenergy in a shower core
Float_tfCoreRadiusThe radius in which the core energy is evaluated
Float_t*fDEParentsList[fMulParent] list of the parents of the digits
Float_t*fDETracksList[fMulTrack] list of tracks to which the point was assigned
Int_tfDigitIndMaxIndex of digit with max energy in array fAbsIdList
Int_t*fDigitsList[fMulDigit] list of digit's indexes from which the point was reconstructed
Float_tfDispersionshower dispersion
Float_tfDistToBadTowerDistance to nearest bad tower
Float_t*fEnergyList[fMulDigit] energy of digits
AliEMCALGeometry*fGeomPtr! Pointer to geometry for utilities
TVector3fGlobPosglobal position
Int_tfIndexInListthe index of this RecPoint in the
Float_tfLambda[2]shower ellipse axes
TVector3fLocPoslocal position in the sub-detector coordinate
Int_tfMaxDigit! max initial size of digits array (not saved)
Int_tfMaxParentMaximum number of parents allowed
Int_tfMaxTrack! max initial size of tracks array (not saved)
Int_tfMulDigittotal multiplicity of digits
Int_tfMulParentMultiplicity of the parents
Int_tfMulTracktotal multiplicity of tracks
Short_tfNExMaxnumber of (Ex-)maxima before unfolding
Int_t*fParentsList[fMulParent] list of the parents of the digits
Bool_tfSharedClusterStates if cluster is shared by 2 SuperModules in same phi rack (0,1), (2,3) ... (10,11).
Int_tfSuperModuleNumbernumber identifying supermodule containing recpoint, reference is cell with maximum energy.
Float_tfTimeTime of the digit with maximal energy deposition
Int_t*fTracksList[fMulTrack] list of tracks to which the point was assigned

Class Charts

Inheritance Chart:
TObject
AliCluster
AliEMCALRecPoint

Function documentation

AliEMCALRecPoint()
 ctor
AliEMCALRecPoint(const char* opt)
 ctor
AliEMCALRecPoint(const AliEMCALRecPoint& rp)
copy ctor
~AliEMCALRecPoint()
 dtor
AliEMCALRecPoint& operator=(const AliEMCALRecPoint& rp)
 assignment operator
void AddDigit(AliEMCALDigit& digit, const Float_t energy, const Bool_t shared)
 Adds a digit to the RecPoint
 and accumulates the total amplitude and the multiplicity
Bool_t AreNeighbours(AliEMCALDigit* digit1, AliEMCALDigit* digit2) const
 Tells if (true) or not (false) two digits are neighbours
 A neighbour is defined as being two digits which share a corner
 ONLY USED IN CASE OF UNFOLDING
Int_t Compare(const TObject* obj) const
 Compares two RecPoints according to their position in the EMCAL modules
void Draw(Option_t* option = "")
 Draw this AliEMCALRecPoint with its current attributes
void EvalAll(Float_t logWeight, TClonesArray* digits, const Bool_t justClusters)
 Evaluates cluster parameters
void EvalDispersion(Float_t logWeight, TClonesArray* digits)
 Calculates the dispersion of the shower at the origin of the RecPoint
 in cell units - Nov 16,2006
void EvalDistanceToBadChannels(AliCaloCalibPedestal* caloped)
For each EMC rec. point set the distance to the nearest bad channel.
AliInfo(Form("%d bad channel(s) found.\n", caloped->GetDeadTowerCount()));
It is done in cell units and not in global or local position as before (Sept 2010)
void EvalLocalPosition(Float_t logWeight, TClonesArray* digits)
 Calculates the center of gravity in the local EMCAL-module coordinates
  Info("Print", " logWeight %f : cluster energy %f ", logWeight, fAmp); // for testing
void EvalGlobalPosition(Float_t logWeight, TClonesArray* digits)
 Calculates the center of gravity in the global ALICE coordinates
  Info("Print", " logWeight %f : cluster energy %f ", logWeight, fAmp); // for testing
void EvalLocalPositionFit(Double_t deff, Double_t w0, Double_t phiSlope, TClonesArray* digits)
 Evaluates local position of clusters in SM
Bool_t EvalLocalPosition2(TClonesArray* digits, TArrayD& ed)
 Evaluated local position of rec.point using digits
 and parametrisation of w0 and deff
printf(" <I> AliEMCALRecPoint::EvalLocalPosition2() \n");
Bool_t EvalLocalPositionFromDigits(TClonesArray* digits, TArrayD& ed, TVector3& locPos)
 Used when digits should be recalibrated
Bool_t EvalLocalPositionFromDigits(const Double_t esum, const Double_t deff, const Double_t w0, TClonesArray* digits, TArrayD& ed, TVector3& locPos)
Evaluate position of digits in supermodule.
void GetDeffW0(const Double_t esum, Double_t& deff, Double_t& w0)
 Aug 31, 2001
 Applied for simulation data with threshold 3 adc
 Calculate efective distance (deff) and weigh parameter (w0)
 for coordinate calculation; 0.5 GeV < esum <100 GeV.
 Look to:  http://rhic.physics.wayne.edu/~pavlinov/ALICE/SHISHKEBAB/RES/CALIB/GEOMCORR/deffandW0VaEgamma_2.gif

void EvalCoreEnergy(Float_t logWeight, TClonesArray* digits)
 This function calculates energy in the core,
 i.e. within a radius rad = fCoreEnergy around the center. Beyond this radius
 in accordance with shower profile the energy deposition
 should be less than 2%
 Unfinished - Nov 15,2006
 Distance is calculate in (phi,eta) units
void EvalElipsAxis(Float_t logWeight, TClonesArray* digits)
 Calculates the axis of the shower ellipsoid in eta and phi
 in cell units
void EvalPrimaries(TClonesArray* digits)
 Constructs the list of primary particles (tracks) which
 have contributed to this RecPoint and calculate deposited energy
 for each track
void EvalParents(TClonesArray* digits)
 Constructs the list of parent particles (tracks) which have contributed to this RecPoint
void GetLocalPosition(TVector3& lpos) const
 returns the position of the cluster in the local reference system
 of the sub-detector
void GetGlobalPosition(TVector3& gpos) const
 returns the position of the cluster in the global reference system of ALICE
 These are now the Cartesian X, Y and Z
  cout<<" geom "<<geom<<endl;
 fGeomPtr->GetGlobal(fLocPos, gpos, fSuperModuleNumber);
void EvalLocal2TrackingCSTransform()
Evaluates local to "tracking" c.s. transformation (B.P.).
All evaluations should be completed before calling for this
function.
See ALICE PPR Chapter 5 p.18 for "tracking" c.s. definition,
or just ask Jouri Belikov. :)
Float_t GetMaximalEnergy(void)
 Finds the maximum energy in the cluster
Int_t GetMaximalEnergyIndex(void)
 Finds the maximum energy in the cluster
Int_t GetMultiplicityAtLevel(Float_t level) const
 Calculates the multiplicity of digits with energy larger than H*energy
Int_t GetNumberOfLocalMax(AliEMCALDigit** maxAt, Float_t* maxAtEnergy, Float_t locMaxCut, TClonesArray* digits) const
 Calculates the number of local maxima in the cluster using fLocalMaxCut as the minimum
 energy difference between two local maxima
Int_t GetPrimaryIndex() const
 Get the primary track index in TreeK which deposits the most energy
 in Digits which forms RecPoint.
void EvalTime(TClonesArray* digits)
 time is set to the time of the digit with the maximum energy
void Paint(Option_t* option = "")
 Paint this ALiRecPoint as a TMarker  with its current attributes
Double_t TmaxInCm(const Double_t e = 0.0, const Int_t key = 0)
 e energy in GeV)
 key  =  0(gamma, default)
     !=  0(electron)
Float_t EtaToTheta(Float_t arg) const
Converts Theta (Radians) to Eta(Radians)
Float_t ThetaToEta(Float_t arg) const
Converts Eta (Radians) to Theta(Radians)
void Print(Option_t* option = "") const
 Print the list of digits belonging to the cluster
Double_t GetPointEnergy() const
Returns energy ....
void SetClusterType(Int_t ver)
{ fClusterType = ver ; }
Int_t GetClusterType() const
{ return fClusterType; }
Int_t * GetPrimaries(Int_t& number) const
Int_t * GetParents(Int_t& number) const
void SetParents(Int_t nParents, Int_t* parents)
Int_t GetDigitsMultiplicity(void)
{ return fMulDigit ; }
Int_t GetIndexInList() const
{ return fIndexInList ; }
int * GetDigitsList(void)
{ return fDigitsList ; }
Float_t GetEnergy() const
{ return fAmp ; }
Float_t GetCoreEnergy() const
{ return fCoreEnergy ; }
Float_t GetDispersion() const
{ return fDispersion ; }
void GetElipsAxis(Float_t* lambda) const
{lambda[0] = fLambda[0]; lambda[1] = fLambda[1];}
Float_t * GetEnergiesList() const
{ return fEnergyList ; }
Int_t GetMaximumMultiplicity() const
{ return fMaxDigit ; }
Int_t GetMultiplicity(void)
{ return fMulDigit ; }
Int_t * GetAbsId() const
{ return fAbsIdList ; }
Int_t GetAbsId(Int_t i) const
Int_t GetAbsIdMaxDigit() const
{ return GetAbsId(fDigitIndMax) ; }
Int_t GetIndMaxDigit() const
{ return fDigitIndMax ; }
void SetIndMaxDigit(const Int_t ind)
{ fDigitIndMax = ind ; }
void SetIndexInList(Int_t val)
{ fIndexInList = val ; }
Int_t GetSuperModuleNumber(void)
Short_t GetNExMax(void)
 searches for the local maxima
 Number of local maxima found in cluster in unfolding:
 0: no unfolding
-1: unfolding failed
{ return fNExMax ; }
void SetNExMax(Int_t nmax = 1)
{ fNExMax = static_cast<Short_t>(nmax) ;}
Float_t GetTime(void)
{ return fTime ; }
Bool_t SharedCluster(void)
{ return fSharedCluster ; }
void SetSharedCluster(Bool_t s)
{ fSharedCluster = s ; }
Bool_t IsEmc(void)
{ return kTRUE ; }
Bool_t IsSortable() const
{ return kTRUE ; }
Float_t GetDistanceToBadTower() const
{return fDistToBadTower;}