00001 #ifndef __StEEmc2x2ClusterMaker_h__
00002 #define __StEEmc2x2ClusterMaker_h__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 #include "StEEmcGenericClusterMaker.h"
00062 #include "TTree.h"
00063
00064 #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
00065 #include "StMuDSTMaker/COMMON/StMuDst.h"
00066 #include "StMuDSTMaker/COMMON/StMuEvent.h"
00067 #include "StMuDSTMaker/COMMON/StMuTrack.h"
00068 #include "TString.h"
00069 #include "TFile.h"
00070 #include "TObjArray.h"
00071
00072 #include "TClonesArray.h"
00073
00074 #include "TH1F.h"
00075 #include "TH2F.h"
00076
00077 #include <map>
00078
00079
00080 class StEEmc2x2ClusterParams
00081 {
00082 public:
00083 StEEmc2x2ClusterParams(){ };
00084 ~StEEmc2x2ClusterParams(){ };
00085 };
00086
00087
00088 class StEEmc2x2ClusterMaker : public StEEmcGenericClusterMaker, public StEEmc2x2ClusterParams
00089 {
00090 public:
00091 StEEmc2x2ClusterMaker(const Char_t *name, const StEEmcA2EMaker *a2e, StMuDstMaker * );
00092 virtual ~StEEmc2x2ClusterMaker(){ }
00093
00094 virtual Int_t Make();
00095
00097 void setSmdSeedEnergy( Float_t e, Float_t s=0. ) { seed_threshold=e; seed_slope=s; }
00098
00100 void setSmdMinimumEnergy( Float_t e ) { mSmdMinEnergy = e; }
00101
00103 void setSmdMaximumSize( Int_t m ) { mMaxExtent = m; }
00106 void setSmdTruncationRatio( Float_t t ) { mTruncateRatio = t; }
00108 void setSmdMinimumStrips( Int_t m ) { mMinStrips = m; }
00110 void setDoBreakInflection( Bool_t b ){ mBreakInflection=b; }
00112 void setDoBreakTruncation( Bool_t b ){ mBreakTruncation=b; }
00114 void setDoBreakSize( Bool_t b ){ mBreakSize=b; }
00115
00117 void setEtaCut( Int_t nbins ){ mEtaCut = nbins; }
00119 void setPhiCut( Int_t nbins ){ mPhiCut = nbins; }
00121 void setSeedEnergy( Float_t e, Int_t layer=0 ){ mSeedEnergy[layer]=e; }
00123 void setMinimumEnergy( Float_t e, Int_t layer=0 ){ mMinEnergy[layer]=e; }
00124
00127 void setFloor( Float_t relative_yield, Float_t width ){ mFloorParams[0]=relative_yield; mFloorParams[1]=width; }
00128
00129 virtual const char* GetCVS() const
00130 {static const char cvs[]="Tag $Name: $ $Id: StEEmc2x2ClusterMaker.h,v 1.3 2010/08/26 22:49:25 ogrebeny Exp $ built "__DATE__" "__TIME__; return cvs;}
00131
00132
00133 protected:
00134
00135
00136
00137
00138 Float_t seed_threshold;
00139 Float_t seed_slope;
00140
00141 Float_t mSmdSeedEnergy;
00142 Float_t mSmdMinEnergy;
00144 Int_t mMaxExtent;
00145 Float_t mTruncateRatio;
00146 Int_t mMinStrips;
00148 Int_t mEtaCut;
00149 Int_t mPhiCut;
00151
00152 virtual Int_t buildTowerClusters();
00153
00154 virtual Int_t buildPreshowerClusters();
00155
00156 virtual Int_t buildPostshowerClusters();
00157
00158 virtual Int_t buildSmdClusters();
00159
00160
00161 Int_t buildLayer( Int_t layer );
00162
00163 Float_t mSeedEnergy[6];
00164 Float_t mMinEnergy[6];
00166 Bool_t mBreakSize;
00167 Bool_t mBreakTruncation;
00168 Bool_t mBreakInflection;
00169 Bool_t mUseFloor;
00170 Float_t mFloorParams[2];
00171
00172 ClassDef(StEEmc2x2ClusterMaker,1);
00173 };
00174
00175
00176 #endif