StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEEmcEnergyApportionerIU.h
1 
12 #ifndef _ST_EEMC_ENERGY_APPORTIONER_IU_H_
13 #define _ST_EEMC_ENERGY_APPORTIONER_IU_H_
14 
15 #include "StSimpleCluster.h"
16 #include "StEEmcHit.h"
17 #include "StEEmcHitMaker.h"
18 #include "StEEmcTowerClusterFinder.h"
19 #include "StEEmcEnergyApportioner.h"
20 #include "StESMDClustersPerSector.h"
21 
23 
24  public:
25  enum WeightFunction_t { SMD_SUM, SMD_SUM_AND_LEAKAGE };
26 
28  virtual ~StEEmcEnergyApportionerIU_t() { /* */ };
29 
30  virtual void clear(){ /* */ };
31 
33  virtual Int_t find( EEmcEnergy_t* eemcEnergyPtr,
34  const StSimpleClusterVec_t& towerClusterVec,
35  const StESMDClustersVec_t &smdClusterVec,
36  StEEmcHitVec_t& hitVec );
37 
38  // modifier
39  void setWeightFunction( WeightFunction_t funcType );
40  void setCheckTowerBits( Bool_t doCheck ){ mCheckTowerBits = doCheck; };
41 
42  protected:
43  typedef std::map< Int_t, Float_t > sparseVec_t;
44 
45  // option of whether to include towers in the energy which have
46  // fail bits or bad status bits.
47  Bool_t mCheckTowerBits;
48 
49  // geom class
50  EEmcGeomSimple mEEmcGeomSimple;
51 
53  Float_t (StEEmcEnergyApportionerIU_t::*weightFunc)( const StEEmcHit_t &hit, Int_t thisTowerIdx );
54 
56  Float_t smdSumWeightFunc( const StEEmcHit_t &hit, Int_t thisTowerIdx );
57 
59  Float_t smdSumAndLeakageWeightFunc( const StEEmcHit_t &hit, Int_t thisTowerIdx );
60 
61  private:
62  ClassDef( StEEmcEnergyApportionerIU_t, 1 );
63 
64 };
65 
66 #endif
67 
68 /*
69  * $Id: StEEmcEnergyApportionerIU.h,v 1.1 2012/11/26 19:05:54 sgliske Exp $
70  * $Log: StEEmcEnergyApportionerIU.h,v $
71  * Revision 1.1 2012/11/26 19:05:54 sgliske
72  * moved from offline/users/sgliske/StRoot/StEEmcPool/StEEmcHitMaker to StRoot/StEEmcPool/StEEmcHitMaker
73  *
74  *
75  */
virtual void clear()
clear things before doing the finding for the next event
The class.
Definition: StEEmcHit.h:37
EEMC simple geometry.
Float_t(StEEmcEnergyApportionerIU_t::* weightFunc)(const StEEmcHit_t &hit, Int_t thisTowerIdx)
pointer to which function to use for weights
Float_t smdSumAndLeakageWeightFunc(const StEEmcHit_t &hit, Int_t thisTowerIdx)
Use sum of SMD energies times leakage function (spline), i.e. the eeTowerFunction.
Float_t smdSumWeightFunc(const StEEmcHit_t &hit, Int_t thisTowerIdx)
Use just sum of SMD energies.
virtual Int_t find(EEmcEnergy_t *eemcEnergyPtr, const StSimpleClusterVec_t &towerClusterVec, const StESMDClustersVec_t &smdClusterVec, StEEmcHitVec_t &hitVec)
apportion the energy