StEEmcPointFitMaker Class Reference

A class for finding EEMC points. More...

Inheritance diagram for StEEmcPointFitMaker:

StEEmcPointMaker StMaker StMaker

List of all members.

Public Member Functions

 StEEmcPointFitMaker (const Char_t *n)
virtual Int_t Init ()
 Initialize.
virtual Int_t Make ()
 Process event.
Int_t FitSector (Int_t s)
 Fit the specified sector.
virtual void Clear (Option_t *opts="")
 Clear the maker.
EEmcSectorFitfit (Int_t sec)
 Return the sector fit for the specified sector.
const EEmcSectorFitfit (Int_t sec) const
void doPermutations (Bool_t p)
void print () const
 Print summary.
void limit (Int_t lim)

Protected Member Functions

 ClassDef (StEEmcPointFitMaker, 1)

Protected Attributes

EEmcSectorFitmSectorFit [12]
 Fits.
Bool_t mPermutations
 Do or don't do permutations.
Int_t mClusterId
Int_t mLimitFits
 Maximum number of points to fit per sector.


Detailed Description

A class for finding EEMC points.

This class find EEMC points using a fitting algorithm. The fit is driven by the EEmcSectorFit class, which implements a simultaneous fit to both the U and V smd planes.

The single-plane shower-shape is implemented in the function eeSinglePeak. This shape is fairly standard, i.e. a double-gaussian with constrained mean and constrainded widths. For this algorithm, the relative amplitudes of the two gaussians are fixed. The narrow-component gaussian has a relative amplitude of 0.8, and the wide-component gaussian has a relative amplitude of 0.2. Furthermore we constrain the width of the wide-component to be 3.5 times the width of the narrow component.

In the two-plane simultaneous fit, we fit only three four parameters:

1. A total yield [nmips]

2. A common width [nstrips]

3. A mean U position

4. A mean V position

In order to start the fit to a new photon, we scan both SMD planes for the largest residual energy deposit summed over five consecutive smd strips (the residual energy deposit is simply the energy of the strips in question minus the energy predicted by the fit to the current number of photons). We require that this maximum U,V pair appears beneath an active tower (or a tower with a fail bit set).

Once the maximum in each plane is found, we initialize the fit, using the 5-strip energy, mean and widths to set the initial parameters of the fit. This procedure is repeated until 90% or more of the energy deposited in the smd is accounted for. As each photon is discovered, we try all permutations of one plane versus the other to determine if a better association (although if more than 5 gammas are found, we do not try all permutations as this begins to become too computationally intensive.)

Once we have fit "all" points in an smd plane, we apply a cut -- any point which is w/in 3.5 times the width of the narrow component gaussian must exceed 10% of the energy of the higher-energy point. If it doesn't, then we assume that it is a large angle multiple scatter or a bremstrahlung photon and remove it from consideration.

Author:
Jason C. Webb

Definition at line 8 of file StEEmcPointFitMaker.h.


Member Function Documentation

void StEEmcPointFitMaker::Clear ( Option_t *  opts = ""  )  [virtual]

Clear the maker.

Delete sector fits

Reimplemented from StEEmcPointMaker.

Definition at line 313 of file StEEmcPointFitMaker.cxx.

References mSectorFit.

void StEEmcPointFitMaker::doPermutations ( Bool_t  p  )  [inline]

Parameters:
p,: true=try all reco positions, false=no try

Definition at line 26 of file StEEmcPointFitMaker.h.

References mPermutations.

Int_t StEEmcPointFitMaker::FitSector ( Int_t  s  ) 

Fit the specified sector.

How much energy is in the sector? We will stop finding gammas when we have found 90% of it, or when we can no longer find a good candidate in both planes

Fill histograms for u and v planes

Give the sector fitter pointers to the histograms (note that hU and hV will be deleted with call to ~EEmcSectorFit

we require at least 2 GeV of energy in the sector to continue

scan smd planes for maximum 5-strip residual

punt if no suitable candidates were found

add a candidate photon at this point

perform two plane simultaneous fit

Get the parameters for the last candidate

refit all permutations (up to a point... cpu requirements get too large after 5! (!)

Total energy in fit

array of flags telling us whether a given fit will be spawned as a new point

distance between gamma candidates

Is first gamma a fluctuation of second gamma?

Is second gamma a fluctuation of first gamma?

Now we spawn points at the u,v crossing found by the fits Smd clusters should also be generated and inserted, to make embedding work...

Skip fits if they have been flagged

should examine other permutations

residuals w/in +/- 30 cm

U AND V clusters

Definition at line 112 of file StEEmcPointFitMaker.cxx.

References StEEmcPoint::cluster(), StEEmcPoint::energy(), StEEmcElement::energy(), StEEmcA2EMaker::energy(), StEEmcElement::fail(), EEmcSectorFit::GetCandidate(), EEmcSmdGeom::getIntersection(), EEmcSectorFit::GetLastCandidate(), StEEmcA2EMaker::hitstrip(), StEEmcStrip::index(), StEEmcSmdCluster::key(), kStOK, StEEmcPointMaker::mEEanalysis, StEEmcPointMaker::mEEsmd, mLimitFits, StEEmcPointMaker::mPoints, mSectorFit, EEmcSectorFit::numberOfCandidates(), StEEmcA2EMaker::numberOfHitStrips(), StEEmcPointMaker::point(), StEEmcPoint::position(), EEmcSectorFit::Residual(), StEEmcPoint::residueU(), StEEmcPoint::residueV(), StEEmcPoint::sector(), EEmcSectorFit::SetHistograms(), StEEmcPoint::sigma(), StEEmcPoint::tower(), StEEmcA2EMaker::tower(), StEEmcPoint::u(), and StEEmcPoint::v().

Referenced by Make().

Int_t StEEmcPointFitMaker::Make (  )  [virtual]

Process event.

Create a new sector fit maker

Perform fits to SMD distributions in all 12 sectors

Do energy sharing.

Reimplemented from StEEmcPointMaker.

Definition at line 85 of file StEEmcPointFitMaker.cxx.

References EEmcSectorFit::doPermutations, FitSector(), kStOK, StEEmcPointMaker::mEnergyMode, mPermutations, mSectorFit, StEEmcPointMaker::shareEnergySimple(), and StEEmcPointMaker::shareEnergySmd().


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

Generated on Sat May 26 04:28:15 2012 for StRoot by  doxygen 1.5.9