StFms
0.0.0
FMS software in the STAR framework
|
#include <StFmsClusterFitter.h>
Public Member Functions | |
StFmsClusterFitter (const StFmsGeometry *geometry, Int_t detectorId) | |
StFmsClusterFitter () | |
~StFmsClusterFitter () | |
TF2 * | showerShapeFunction () |
void | setTowers (StFmsTowerCluster::Towers *towers) |
Double_t | fit (const Double_t *par, const Double_t *step, const Double_t *low, const Double_t *up, PhotonList *photons) |
Int_t | fit2PhotonCluster (const Double_t *para, const Double_t *step, const Double_t *low, const Double_t *up, PhotonList *photons) |
Static Public Member Functions | |
static Double_t | energyDepositionInTower (Double_t *x, Double_t *par) |
static int | maxNFittedPhotons () |
Private Member Functions | |
StFmsClusterFitter (const StFmsClusterFitter &) | |
StFmsClusterFitter & | operator= (const StFmsClusterFitter &) |
Static Private Member Functions | |
static Double_t | energyDepositionDistribution (Double_t *x, Double_t *par) |
static void | minimizationFunctionNPhoton (Int_t &npar, Double_t *grad, Double_t &fval, Double_t *par, Int_t iflag) |
static void | minimizationFunction2Photon (Int_t &nparam, Double_t *grad, Double_t &fval, Double_t *param, Int_t iflag) |
Private Attributes | |
Double_t | mSteps [3 *kMaxNPhotons+1] |
Step size in each fit variable. More... | |
Double_t | mTowerWidth |
width of one lead glass module More... | |
TMinuit | mMinuit |
Minuit fitting interface. More... | |
Static Private Attributes | |
static const Int_t | kMaxNPhotons = 7 |
Maximum number that can be fitted. More... | |
static StFmsTowerCluster::Towers * | mTowers |
List of towers to fit. More... | |
static Float_t | mTowerWidthXY [2] |
glass width X, Y in cm More... | |
Photon shower-shape fitting routine for FMS clusters.
Fits tower clusters with the photon energy-deposition shower-shape distribution function i.e. how a photon hitting the FMS distributes its energy over towers. This serves to:
Definition at line 50 of file StFmsClusterFitter.h.
FMSCluster::StFmsClusterFitter::StFmsClusterFitter | ( | const StFmsGeometry * | geometry, |
Int_t | detectorId | ||
) |
Constructor using detector geometry for a single sub-detector
Definition at line 38 of file StFmsClusterFitter.cxx.
|
inline |
Default constructor.
Definition at line 59 of file StFmsClusterFitter.h.
FMSCluster::StFmsClusterFitter::~StFmsClusterFitter | ( | ) |
Destructor
Definition at line 69 of file StFmsClusterFitter.cxx.
|
private |
Disallow copy construction.
|
staticprivate |
Shower shape helper function.
Evaluates F(x,y) as defined here: https://drupal.star.bnl.gov/STAR/blog/leun/2010/aug/02/fms-meeting-20100802
Used by energyDepositionInTower() to integrate F(x,y) over a tower.
Definition at line 282 of file StFmsClusterFitter.cxx.
|
static |
Energy-deposition shower-shape function, for use with a TF2.
Yields the fraction of energy deposited in a tower by a photon, as a function of the distance from the photon to the tower center. Arguments:
Integrates F(x, y) over a tower, with F(x, y) defined as here: https://drupal.star.bnl.gov/STAR/blog/leun/2010/aug/02/fms-meeting-20100802
Definition at line 258 of file StFmsClusterFitter.cxx.
Double_t FMSCluster::StFmsClusterFitter::fit | ( | const Double_t * | par, |
const Double_t * | step, | ||
const Double_t * | low, | ||
const Double_t * | up, | ||
PhotonList * | photons | ||
) |
Fit photons to the list of towers.
All array arguments are of size 3N+1 for an N-photon fit:
In each 3N+1D array, the first element is the number of photons to fit. Each subsequent triplet is the x position, y position and energy of a photon. e.g.
Returns the χ2 of the fit.
Definition at line 75 of file StFmsClusterFitter.cxx.
Int_t FMSCluster::StFmsClusterFitter::fit2PhotonCluster | ( | const Double_t * | para, |
const Double_t * | step, | ||
const Double_t * | low, | ||
const Double_t * | up, | ||
PhotonList * | photons | ||
) |
Specialized fit function for exactly 2-photon fit.
Argument arrays are as for fit(). However as this is for 2-photon fits only, the input arrays should always have 7 (3 * 2 photons + 1) elements. Additionally each element has a different meaning here:
Returns the χ2 of the fit.
Definition at line 172 of file StFmsClusterFitter.cxx.
|
inlinestatic |
Maximum number of photons that can be fit at once.
Definition at line 126 of file StFmsClusterFitter.h.
|
staticprivate |
Minuit minimization function for fit2PhotonCluster() routine
Also see comments for minimizationFunction().
Definition at line 355 of file StFmsClusterFitter.cxx.
|
staticprivate |
Minuit minimization function for fit() routine.
For the purpose of this function and a description of its arguments see https://wwwasdoc.web.cern.ch/wwwasdoc/minuit/node14.html
For its use in ROOT via TMinuit see http://root.cern.ch/root/htmldoc/TMinuit.html#TMinuit:SetFCN
Definition at line 301 of file StFmsClusterFitter.cxx.
|
private |
Disallow assignment.
|
inline |
Set the tower list to fit when calling fit() or fit2PhotonCluster()
Definition at line 70 of file StFmsClusterFitter.h.
TF2 * FMSCluster::StFmsClusterFitter::showerShapeFunction | ( | ) |
Return the shower shape function.
The shower shape gives the fractional energy deposition by a photon in a tower as a function of the distance of the photon from the tower center.
Definition at line 71 of file StFmsClusterFitter.cxx.
|
staticprivate |
Maximum number that can be fitted.
Definition at line 129 of file StFmsClusterFitter.h.
|
private |
Minuit fitting interface.
Definition at line 167 of file StFmsClusterFitter.h.
|
private |
Step size in each fit variable.
Definition at line 165 of file StFmsClusterFitter.h.
|
staticprivate |
List of towers to fit.
Definition at line 168 of file StFmsClusterFitter.h.
|
private |
width of one lead glass module
Definition at line 166 of file StFmsClusterFitter.h.
|
staticprivate |
glass width X, Y in cm
Definition at line 169 of file StFmsClusterFitter.h.