AliRoot Core  edcc906 (edcc906)
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 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...
 
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 147 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 71 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 97 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 1114 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 1124 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 1137 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 817 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 72 of file AliEMCALUnfolding.h.

virtual Double_t* AliEMCALUnfolding::GetPar6 ( ) const
inlinevirtual

Definition at line 75 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 69 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 126 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 168 of file AliEMCALUnfolding.cxx.

Referenced by AliEMCALClusterizerFixedWindow::Digits2Clusters(), AliEMCALClusterizerv1::Digits2Clusters(), AliEMCALClusterizerNxN::Digits2Clusters(), GetRejectBelowThreshold(), 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 157 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 1097 of file AliEMCALUnfolding.cxx.

Referenced by GetShowerShapeParams().

void AliEMCALUnfolding::SetPar6 ( Double_t *  pars)
virtual

Definition at line 1104 of file AliEMCALUnfolding.cxx.

Referenced by GetPar5().

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 1089 of file AliEMCALUnfolding.cxx.

Referenced by GetRejectBelowThreshold().

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 953 of file AliEMCALUnfolding.cxx.

Referenced by GetRejectBelowThreshold(), 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 592 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 681 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 966 of file AliEMCALUnfolding.cxx.

Referenced by FindFitV2(), and GetRejectBelowThreshold().

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 258 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 86 of file AliEMCALUnfolding.h.

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

AliEMCALGeometry* AliEMCALUnfolding::fGeom
protected

! Pointer to geometry for utilities

Definition at line 89 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 116 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 117 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 114 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 85 of file AliEMCALUnfolding.h.

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

TObjArray* AliEMCALUnfolding::fRecPoints
protected

Array with EMCAL clusters.

Definition at line 90 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 88 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 87 of file AliEMCALUnfolding.h.

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


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