00001 #ifndef __StMyPointMaker_h__
00002 #define __StMyPointMaker_h__
00003
00044 #include "StEEmcGenericPointMaker.h"
00045
00046 class StMyPointMaker : public StEEmcGenericPointMaker
00047 {
00048 public:
00049
00050 StMyPointMaker(const Char_t *name="EEmcPointMaker", const StEEmcA2EMaker *a2e=NULL, const StEEmcGenericClusterMaker *cl=NULL );
00051 virtual ~StMyPointMaker(){ };
00052
00053 virtual Int_t Init();
00054 virtual Int_t Make();
00055 virtual void Clear(Option_t *opts="");
00056
00057 void setSplit(Bool_t s = true){ mAllowSplitting=s; }
00058 void setSplitMinimumET( Float_t et ){ mSplitMinimumET=et; }
00059
00060 void setSmdMinFraction( Float_t f ){ mSmdMinFrac=f; }
00061
00062 protected:
00063
00064 Bool_t mAllowSplitting;
00065 Float_t mSplitMinimumET;
00066
00067 Float_t mSmdMinFrac;
00069 Int_t mMaxClusterId;
00070
00073 Bool_t split( const StEEmcSmdCluster &in1, const StEEmcSmdCluster &in2, StEEmcSmdCluster &out1, StEEmcSmdCluster &out2, Float_t &chi2 );
00074
00079 Bool_t AssociateClusters( const StEEmcSmdClusterVec_t &c1, StEEmcSmdClusterVec_t &c2 );
00080
00081 Bool_t SplitClusters( StEEmcSmdClusterVec_t &c1, const StEEmcSmdClusterVec_t &c2 );
00082
00084 Float_t energyChi2( const StEEmcSmdCluster &c1, const StEEmcSmdCluster &c2 ) const;
00086 Float_t energyChi2( const StEEmcSmdCluster &c1, const StEEmcSmdCluster &c2, const StEEmcSmdCluster &c3 ) const;
00087
00088 ClassDef(StMyPointMaker,1);
00089
00090 };
00091
00092 #endif