AliRoot Core  3dc7879 (3dc7879)
AliEMCALUnfolding Class Reference

Base class for the cluster unfolding algorithm. More...

#include <AliEMCALUnfolding.h>

Inheritance diagram for AliEMCALUnfolding:

Public Member Functions

 AliEMCALUnfolding ()
 
virtual ~AliEMCALUnfolding ()
 Destructor. More...
 
 AliEMCALUnfolding (AliEMCALGeometry *geometry)
 
 AliEMCALUnfolding (AliEMCALGeometry *geometry, Float_t ECALocMaxCut, Double_t *SSPars, Double_t *Par5, Double_t *Par6)
 
virtual void Init ()
 
virtual void SetInput (Int_t numberOfECAClusters, TObjArray *recPoints, TClonesArray *digitsArr)
 
virtual void SetNumberOfECAClusters (Int_t n)
 
virtual Int_t GetNumberOfECAClusters () const
 
virtual void SetRecPoints (TObjArray *rec)
 
virtual TObjArrayGetRecPoints () const
 
virtual void SetDigitsArr (TClonesArray *digit)
 
virtual TClonesArray * GetDigitsArr () const
 
virtual void SetECALocalMaxCut (Float_t cut)
 
virtual Float_t GetECALocalMaxCut () const
 
virtual void SetThreshold (Float_t energy)
 
virtual Float_t GetThreshold () const
 
virtual void SetRejectBelowThreshold (Bool_t reject)
 
virtual Bool_t GetRejectBelowThreshold () const
 
virtual void SetRange (Float_t range)
 
virtual Float_t GetRange () const
 
virtual void MakeUnfolding ()
 
virtual void SetShowerShapeParams (Double_t *pars)
 
virtual Double_t * GetShowerShapeParams () const
 
virtual void SetPar5 (Double_t *pars)
 
virtual Double_t * GetPar5 () const
 
virtual void SetPar6 (Double_t *pars)
 
virtual Double_t * GetPar6 () const
 
virtual Int_t UnfoldOneCluster (AliEMCALRecPoint *iniTower, Int_t nMax, AliEMCALDigit **maxAt, Float_t *maxAtEnergy, TObjArray *list)
 

Static Public Member Functions

static Double_t ShowerShapeV2 (Double_t x, Double_t y)
 
static void UnfoldingChiSquareV2 (Int_t &nPar, Double_t *Grad, Double_t &fret, Double_t *x, Int_t iflag)
 

Protected Attributes

Int_t fNumberOfECAClusters
 Number of clusters found in EC section. More...
 
Float_t fECALocMaxCut
 Minimum energy difference to distinguish local maxima in a cluster. More...
 
Float_t fThreshold
 Minimum energy for cell to be joined to a cluster. More...
 
Bool_t fRejectBelowThreshold
 Split (false) or reject (true) cell energy below threshold after UF. More...
 
Float_t fRange
 Range (distance from maximum) of application of unfolding. More...
 
AliEMCALGeometryfGeom
 ! Pointer to geometry for utilities More...
 
TObjArrayfRecPoints
 Array with EMCAL clusters. More...
 
TClonesArray * fDigitsArr
 Array with EMCAL digits. More...
 

Private Member Functions

 AliEMCALUnfolding (const AliEMCALUnfolding &)
 
AliEMCALUnfoldingoperator= (const AliEMCALUnfolding &)
 
Bool_t UnfoldClusterV2 (AliEMCALRecPoint *iniEmc, Int_t Nmax, AliEMCALDigit **maxAt, Float_t *maxAtEnergy)
 
Bool_t UnfoldClusterV2old (AliEMCALRecPoint *iniEmc, Int_t Nmax, AliEMCALDigit **maxAt, Float_t *maxAtEnergy)
 
Bool_t FindFitV2 (AliEMCALRecPoint *emcRP, AliEMCALDigit **MaxAt, const Float_t *maxAtEnergy, Int_t NPar, Float_t *FitParametres) const
 

Static Private Member Functions

static void EvalPar5 (Double_t phi)
 
static void EvalPar6 (Double_t phi)
 
static void EvalParsPhiDependence (Int_t absId, const AliEMCALGeometry *geom)
 

Static Private Attributes

static Double_t fgSSPars [8] ={0.9262,3.365,1.548,0.1625,-0.4195,0.,0.,2.332}
 
static Double_t fgPar5 [3] ={12.31,-0.007381,-0.06936}
 UF SSPar nr 5 = p0 + phi*p1 + phi^2 *p2. More...
 
static Double_t fgPar6 [3] ={0.05452,0.0001228,0.001361}
 UF SSPar nr 6 = p0 + phi*p1 + phi^2 *p2. More...
 

Detailed Description

Base class for the cluster unfolding algorithm.

Based on unfolding in clusterizerv1 done by Cynthia Hadjidakis

  • Unfolding for eta~0: Cynthia Hadjidakis - still in AliEMCALCLusterizerv1
  • Unfolding extension for whole EMCAL: Adam Matyja (SUBATECH & INP PAN)

It unfolds the clusters having several local maxima.

Author
Adam Matyja (SUBATECH & INP PAN)

Definition at line 30 of file AliEMCALUnfolding.h.

Constructor & Destructor Documentation

AliEMCALUnfolding::AliEMCALUnfolding ( )

Default Constructor with the indication of the file where header Tree and digits Tree are stored

Definition at line 52 of file AliEMCALUnfolding.cxx.

AliEMCALUnfolding::~AliEMCALUnfolding ( )
virtual

Destructor.

Definition at line 150 of file AliEMCALUnfolding.cxx.

AliEMCALUnfolding::AliEMCALUnfolding ( AliEMCALGeometry geometry)

Constructor with the indication of the file where header Tree and digits Tree are stored use this constructor to avoid usage of Init() which uses runloader change needed by HLT - MP

Parameters
geometrypointer to EMCal geometry

Definition at line 72 of file AliEMCALUnfolding.cxx.

AliEMCALUnfolding::AliEMCALUnfolding ( AliEMCALGeometry geometry,
Float_t  ecaLocMaxCut,
Double_t *  ssPars,
Double_t *  par5,
Double_t *  par6 
)

Constructor with the indication of the file where header Tree and digits Tree are stored use this contructor to avoid usage of Init() which uses runloader change needed by HLT - MP

Parameters
geometrypointer to EMCal geometry
ecaLocMaxCutset fECALocMaxCut, minimum energy difference to distinguish local maxima in a cluster
ssParsset fgSSPars
par5set fgPar5
par6set fgPar6

Definition at line 99 of file AliEMCALUnfolding.cxx.

AliEMCALUnfolding::AliEMCALUnfolding ( const AliEMCALUnfolding )
private

Member Function Documentation

void AliEMCALUnfolding::EvalPar5 ( Double_t  phi)
staticprivate

Evaluate the 5th parameter of the shower shape function

Parameters
phiin degrees range (-10,10)

Definition at line 1199 of file AliEMCALUnfolding.cxx.

Referenced by EvalParsPhiDependence().

void AliEMCALUnfolding::EvalPar6 ( Double_t  phi)
staticprivate

Evaluate the 6th parameter of the shower shape function

Parameters
phiin degrees range (-10,10)

Definition at line 1209 of file AliEMCALUnfolding.cxx.

Referenced by EvalParsPhiDependence().

void AliEMCALUnfolding::EvalParsPhiDependence ( Int_t  absId,
const AliEMCALGeometry geom 
)
staticprivate

Calculate params p5 and p6 depending on the phi angle in global coordinate for the cell with given absId index output phiglob should be in range -10 to 10 degree

Parameters
absIdabsolude cell ID number
geomgeometry pointer

Definition at line 1222 of file AliEMCALUnfolding.cxx.

Referenced by UnfoldClusterV2old(), UnfoldingChiSquareV2(), and UnfoldOneCluster().

Bool_t AliEMCALUnfolding::FindFitV2 ( AliEMCALRecPoint recPoint,
AliEMCALDigit **  maxAt,
const Float_t *  maxAtEnergy,
Int_t  nPar,
Float_t *  fitparameters 
) const
private

Call TMinuit to fit the energy distribution of a cluster with several maxima The initial values for fitting procedure are set equal to the positions of local maxima. Cluster will be fitted as a superposition of nPar/3 electromagnetic showers

Parameters
recPointoriginal cluster recPoint
maxAtcell Id with local maxima
maxAtEnergyenergy of cell with local maxima
nParnumber of local maxima
fitparametersunfolding fit
Returns
true if success

Definition at line 902 of file AliEMCALUnfolding.cxx.

Referenced by UnfoldClusterV2old(), and UnfoldOneCluster().

virtual TClonesArray* AliEMCALUnfolding::GetDigitsArr ( ) const
inlinevirtual

Definition at line 51 of file AliEMCALUnfolding.h.

virtual Float_t AliEMCALUnfolding::GetECALocalMaxCut ( ) const
inlinevirtual

Definition at line 54 of file AliEMCALUnfolding.h.

virtual Int_t AliEMCALUnfolding::GetNumberOfECAClusters ( ) const
inlinevirtual

Definition at line 45 of file AliEMCALUnfolding.h.

virtual Double_t* AliEMCALUnfolding::GetPar5 ( ) const
inlinevirtual

Definition at line 75 of file AliEMCALUnfolding.h.

virtual Double_t* AliEMCALUnfolding::GetPar6 ( ) const
inlinevirtual

Definition at line 78 of file AliEMCALUnfolding.h.

virtual Float_t AliEMCALUnfolding::GetRange ( ) const
inlinevirtual

Definition at line 63 of file AliEMCALUnfolding.h.

virtual TObjArray* AliEMCALUnfolding::GetRecPoints ( ) const
inlinevirtual

Definition at line 48 of file AliEMCALUnfolding.h.

virtual Bool_t AliEMCALUnfolding::GetRejectBelowThreshold ( ) const
inlinevirtual

Definition at line 60 of file AliEMCALUnfolding.h.

virtual Double_t* AliEMCALUnfolding::GetShowerShapeParams ( ) const
inlinevirtual

Definition at line 72 of file AliEMCALUnfolding.h.

virtual Float_t AliEMCALUnfolding::GetThreshold ( ) const
inlinevirtual

Definition at line 57 of file AliEMCALUnfolding.h.

void AliEMCALUnfolding::Init ( void  )
virtual

Make all memory allocations which can not be done in default constructor. Attach the Clusterizer task to the list of EMCAL tasks

Definition at line 129 of file AliEMCALUnfolding.cxx.

Referenced by AliEMCALUnfolding().

void AliEMCALUnfolding::MakeUnfolding ( )
virtual

Unfold clusters using the shape of an ElectroMagnetic shower Perform unfolding of all clusters

Definition at line 171 of file AliEMCALUnfolding.cxx.

Referenced by AliEMCALClusterizerFixedWindow::Digits2Clusters(), AliEMCALClusterizerv1::Digits2Clusters(), AliEMCALClusterizerNxN::Digits2Clusters(), GetRange(), and AliEMCALAfterBurnerUF::UnfoldClusters().

AliEMCALUnfolding& AliEMCALUnfolding::operator= ( const AliEMCALUnfolding )
private
virtual void AliEMCALUnfolding::SetDigitsArr ( TClonesArray *  digit)
inlinevirtual

Definition at line 50 of file AliEMCALUnfolding.h.

Referenced by SetInput().

virtual void AliEMCALUnfolding::SetECALocalMaxCut ( Float_t  cut)
inlinevirtual

Definition at line 53 of file AliEMCALUnfolding.h.

Referenced by AliEMCALAfterBurnerUF::Init().

void AliEMCALUnfolding::SetInput ( Int_t  numberOfECAClusters,
TObjArray recPoints,
TClonesArray *  digitsArr 
)
virtual

Set input for unfolding purposes.

Parameters
numberOfECAClustersset fNumberOfECAClusters
recPointsset fRecPoints
digitsArrset fDigitsArr

Definition at line 160 of file AliEMCALUnfolding.cxx.

Referenced by AliEMCALClusterizerFixedWindow::Digits2Clusters(), AliEMCALClusterizerv1::Digits2Clusters(), AliEMCALClusterizerNxN::Digits2Clusters(), and AliEMCALAfterBurnerUF::UnfoldClusters().

virtual void AliEMCALUnfolding::SetNumberOfECAClusters ( Int_t  n)
inlinevirtual

Definition at line 44 of file AliEMCALUnfolding.h.

Referenced by SetInput().

void AliEMCALUnfolding::SetPar5 ( Double_t *  pars)
virtual

Definition at line 1182 of file AliEMCALUnfolding.cxx.

Referenced by GetShowerShapeParams().

void AliEMCALUnfolding::SetPar6 ( Double_t *  pars)
virtual

Definition at line 1189 of file AliEMCALUnfolding.cxx.

Referenced by GetPar5().

virtual void AliEMCALUnfolding::SetRange ( Float_t  range)
inlinevirtual

Definition at line 62 of file AliEMCALUnfolding.h.

virtual void AliEMCALUnfolding::SetRecPoints ( TObjArray rec)
inlinevirtual

Definition at line 47 of file AliEMCALUnfolding.h.

Referenced by SetInput().

virtual void AliEMCALUnfolding::SetRejectBelowThreshold ( Bool_t  reject)
inlinevirtual

Definition at line 59 of file AliEMCALUnfolding.h.

Referenced by AliEMCALClusterizer::InitClusterUnfolding().

void AliEMCALUnfolding::SetShowerShapeParams ( Double_t *  pars)
virtual

Definition at line 1174 of file AliEMCALUnfolding.cxx.

Referenced by GetRange().

virtual void AliEMCALUnfolding::SetThreshold ( Float_t  energy)
inlinevirtual
Double_t AliEMCALUnfolding::ShowerShapeV2 ( Double_t  x,
Double_t  y 
)
static

Shape of the shower extended to whole EMCAL If you change this function, change also the gradient evaluation in ChiSquare()

Definition at line 1038 of file AliEMCALUnfolding.cxx.

Referenced by GetRange(), UnfoldClusterV2old(), UnfoldingChiSquareV2(), and UnfoldOneCluster().

Bool_t AliEMCALUnfolding::UnfoldClusterV2 ( AliEMCALRecPoint iniTower,
Int_t  nMax,
AliEMCALDigit **  maxAt,
Float_t *  maxAtEnergy 
)
private

Perform unfolding on all the EMCal of a cluster with nMax overlapping showers

Parameters
iniToweroriginal cluster recPoint
nMaxnumber of local maxima
maxAtcell Id with local maxima
maxAtEnergyenergy of cell with local maxima
Returns
true if success (1->several clusters), otherwise false (fit failed)

Definition at line 677 of file AliEMCALUnfolding.cxx.

Referenced by MakeUnfolding().

Bool_t AliEMCALUnfolding::UnfoldClusterV2old ( AliEMCALRecPoint iniTower,
Int_t  nMax,
AliEMCALDigit **  maxAt,
Float_t *  maxAtEnergy 
)
private

Perform unfolding on all the EMCal of a cluster with nMax overlapping showers old version (remove then?)

Parameters
iniToweroriginal cluster recPoint
nMaxnumber of local maxima
maxAtcell Id with local maxima
maxAtEnergyenergy of cell with local maxima
Returns
true if success (1->several clusters), otherwise false (fit failed)

Definition at line 766 of file AliEMCALUnfolding.cxx.

void AliEMCALUnfolding::UnfoldingChiSquareV2 ( Int_t &  nPar,
Double_t *  Grad,
Double_t &  fret,
Double_t *  x,
Int_t  iflag 
)
static

Calculate the Chi square for the cluster unfolding minimization Number of parameters, Gradient, Chi squared, parameters, what to do

Definition at line 1051 of file AliEMCALUnfolding.cxx.

Referenced by FindFitV2(), and GetRange().

Int_t AliEMCALUnfolding::UnfoldOneCluster ( AliEMCALRecPoint iniTower,
Int_t  nMax,
AliEMCALDigit **  maxAt,
Float_t *  maxAtEnergy,
TObjArray list 
)
virtual

Perform unfolding of single cluster and provides list of output clusters

Parameters
iniToweroriginal cluster recPoint
nMaxnumber of local maxima
maxAtcell Id with local maxima
maxAtEnergyenergy of cell with local maxima
listlist of new clusters
Returns
number of clusters, if fit failed or unfolding is not applicable returns 0 and empty list

Definition at line 261 of file AliEMCALUnfolding.cxx.

Referenced by GetPar6(), and UnfoldClusterV2().

Member Data Documentation

TClonesArray* AliEMCALUnfolding::fDigitsArr
protected
Float_t AliEMCALUnfolding::fECALocMaxCut
protected

Minimum energy difference to distinguish local maxima in a cluster.

Definition at line 89 of file AliEMCALUnfolding.h.

Referenced by GetECALocalMaxCut(), MakeUnfolding(), and SetECALocalMaxCut().

AliEMCALGeometry* AliEMCALUnfolding::fGeom
protected

! Pointer to geometry for utilities

Definition at line 93 of file AliEMCALUnfolding.h.

Referenced by AliEMCALUnfolding(), FindFitV2(), Init(), MakeUnfolding(), UnfoldClusterV2old(), and UnfoldOneCluster().

Double_t AliEMCALUnfolding::fgPar5 ={12.31,-0.007381,-0.06936}
staticprivate

UF SSPar nr 5 = p0 + phi*p1 + phi^2 *p2.

Definition at line 120 of file AliEMCALUnfolding.h.

Referenced by AliEMCALUnfolding(), EvalPar5(), GetPar5(), and SetPar5().

Double_t AliEMCALUnfolding::fgPar6 ={0.05452,0.0001228,0.001361}
staticprivate

UF SSPar nr 6 = p0 + phi*p1 + phi^2 *p2.

Definition at line 121 of file AliEMCALUnfolding.h.

Referenced by AliEMCALUnfolding(), EvalPar6(), GetPar6(), and SetPar6().

Double_t AliEMCALUnfolding::fgSSPars ={0.9262,3.365,1.548,0.1625,-0.4195,0.,0.,2.332}
staticprivate

Unfolding shower shape parameters function: f(r)=exp(-(p0*r)^p1 * (1/(p2+p3*(p0*r)^p1)+p4/(1+p6*(p0*r)^p5) ) ) p0,p1,p2,p3,p4 are fixed params p5 and p6 are phi-dependent and set in ShowerShapeV2

Definition at line 118 of file AliEMCALUnfolding.h.

Referenced by AliEMCALUnfolding(), EvalPar5(), EvalPar6(), GetShowerShapeParams(), SetShowerShapeParams(), ShowerShapeV2(), and UnfoldingChiSquareV2().

Int_t AliEMCALUnfolding::fNumberOfECAClusters
protected

Number of clusters found in EC section.

Definition at line 88 of file AliEMCALUnfolding.h.

Referenced by GetNumberOfECAClusters(), MakeUnfolding(), SetNumberOfECAClusters(), UnfoldClusterV2(), UnfoldClusterV2old(), and UnfoldOneCluster().

Float_t AliEMCALUnfolding::fRange
protected

Range (distance from maximum) of application of unfolding.

Definition at line 92 of file AliEMCALUnfolding.h.

Referenced by GetRange(), SetRange(), and UnfoldOneCluster().

TObjArray* AliEMCALUnfolding::fRecPoints
protected

Array with EMCAL clusters.

Definition at line 94 of file AliEMCALUnfolding.h.

Referenced by GetRecPoints(), MakeUnfolding(), SetRecPoints(), UnfoldClusterV2(), and UnfoldClusterV2old().

Bool_t AliEMCALUnfolding::fRejectBelowThreshold
protected

Split (false) or reject (true) cell energy below threshold after UF.

Definition at line 91 of file AliEMCALUnfolding.h.

Referenced by GetRejectBelowThreshold(), SetRejectBelowThreshold(), and UnfoldOneCluster().

Float_t AliEMCALUnfolding::fThreshold
protected

Minimum energy for cell to be joined to a cluster.

Definition at line 90 of file AliEMCALUnfolding.h.

Referenced by GetThreshold(), SetThreshold(), and UnfoldOneCluster().


The documentation for this class was generated from the following files: