00001
00002
00003 #ifndef STCONEPARS_H
00004 #define STCONEPARS_H
00005
00006 #include "StJetPars.h"
00007
00008 #include <cmath>
00009
00010 class StConePars : public StJetPars {
00011
00012 public:
00013
00014 StConePars()
00015 : mNeta(105)
00016 , mNphi(120)
00017 , mEtaMin(-3.0)
00018 , mEtaMax(3.0)
00019 , mPhiMin(-atan(1.0)*4.0)
00020 , mPhiMax(atan(1.0)*4.0)
00021 , mR(0.7)
00022 , mSeedEtMin(0.5)
00023 , mAssocEtMin(0.1)
00024 , mSplitFraction(0.5)
00025 , mDoMinimization(true)
00026 , mAddMidpoints(true)
00027 , mRequireStableMidpoints(true)
00028 , mDoSplitMerge(true)
00029 , mDebug(false)
00030 { }
00031
00032
00033 virtual StJetFinder* constructJetFinder();
00034
00036 void setGridSpacing(int nEta, double etaMin, double etaMax,
00037 int nPhi, double phiMin, double phiMax)
00038 {
00039 mNeta = nEta; mEtaMin = etaMin; mEtaMax = etaMax;
00040 mNphi = nPhi; mPhiMin = phiMin; mPhiMax = phiMax;
00041 }
00042
00044 void setSeedEtMin(double v) { mSeedEtMin = v; }
00045
00047 void setAssocEtMin(double v) { mAssocEtMin = v; }
00048
00050 void setSplitFraction(double v) { mSplitFraction = v; }
00051
00053 void setPerformMinimization(bool v) {mDoMinimization=v;}
00054
00056 void setAddMidpoints(bool v) {mAddMidpoints=v;}
00057
00059 void setDoSplitMerge(bool v) {mDoSplitMerge=v;}
00060
00062 void setRequireStableMidpoints(bool v) {mRequireStableMidpoints=v;}
00063
00065 void setConeRadius(double v) {mR = v;}
00066
00068 void setDebug(bool v) {mDebug = v;}
00069
00070 int Neta() const { return mNeta; }
00071 int Nphi() const { return mNphi; }
00072 double EtaMin() const { return mEtaMin; }
00073 double EtaMax() const { return mEtaMax; }
00074 double PhiMin() const { return mPhiMin; }
00075 double PhiMax() const { return mPhiMax; }
00076
00077 double coneRadius() const {return mR;}
00078
00079 double seedEtMin() const { return mSeedEtMin; }
00080 double assocEtMin() const { return mAssocEtMin; }
00081
00082 double splitFraction() const { return mSplitFraction; }
00083
00084 bool performMinimization() const {return mDoMinimization;}
00085
00086 bool addMidpoints() const {return mAddMidpoints;}
00087
00088 bool requiredStableMidpoints() const {return mRequireStableMidpoints;}
00089
00090 bool doSplitMerge() const {return mDoSplitMerge;}
00091
00092 bool debug() const {return mDebug;}
00093
00094 double phiWidth() const { return (PhiMax() - PhiMin())/static_cast<double>(Nphi()); }
00095 double etaWidth() const { return (EtaMax() - EtaMin())/static_cast<double>(Neta()); }
00096 int deltaPhi() const { return static_cast<int>(floor(coneRadius()/phiWidth())) + 1; }
00097 int deltaEta() const { return static_cast<int>(floor(coneRadius()/etaWidth())) + 1; }
00098
00099
00100 private:
00101
00102 int mNeta;
00103 int mNphi;
00104 double mEtaMin;
00105 double mEtaMax;
00106 double mPhiMin;
00107 double mPhiMax;
00108 double mR;
00109 double mSeedEtMin;
00110 double mAssocEtMin;
00111 double mSplitFraction;
00112 bool mDoMinimization;
00113 bool mAddMidpoints;
00114 bool mRequireStableMidpoints;
00115 bool mDoSplitMerge;
00116 bool mDebug;
00117
00118 ClassDef(StConePars,1)
00119 };
00120
00121 #endif // STCONEPARS_H