12 #ifndef _ST_EEMC_ENERGY_APPORTIONER_IU_H_
13 #define _ST_EEMC_ENERGY_APPORTIONER_IU_H_
15 #include "StSimpleCluster.h"
16 #include "StEEmcHit.h"
17 #include "StEEmcHitMaker.h"
18 #include "StEEmcTowerClusterFinder.h"
19 #include "StEEmcEnergyApportioner.h"
20 #include "StESMDClustersPerSector.h"
25 enum WeightFunction_t { SMD_SUM, SMD_SUM_AND_LEAKAGE };
34 const StSimpleClusterVec_t& towerClusterVec,
35 const StESMDClustersVec_t &smdClusterVec,
36 StEEmcHitVec_t& hitVec );
39 void setWeightFunction( WeightFunction_t funcType );
40 void setCheckTowerBits( Bool_t doCheck ){ mCheckTowerBits = doCheck; };
43 typedef std::map< Int_t, Float_t > sparseVec_t;
47 Bool_t mCheckTowerBits;
virtual void clear()
clear things before doing the finding for the next event
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