00001
00002
00003 #ifndef STBET4PMAKER_H
00004 #define STBET4PMAKER_H
00005
00006 class StMuDstMaker;
00007 class StMuPrimaryVertex;
00008 class StjTreeEntryMaker;
00009 class StBET4pMakerImp;
00010
00011 class StjeBemcEnergySumCalculator;
00012
00013 class StjTrackListCut;
00014 class StjTowerEnergyListCut;
00015 class StjeTrackListToStMuTrackFourVecList;
00016 class StjeTowerEnergyListToStMuTrackFourVecList;
00017 class StjAbstractTowerEnergyCorrectionForTracks;
00018
00019 #include "StFourPMaker.h"
00020
00021 class StBET4pMaker : public StFourPMaker {
00022
00023 public:
00024
00025 StBET4pMaker(const char* name, StMuDstMaker* maker, bool doTowerSwapFix = true, StjAbstractTowerEnergyCorrectionForTracks* correctTowerEnergyForTracks = 0);
00026
00027 virtual ~StBET4pMaker() {}
00028
00029 Int_t Init();
00030 Int_t Make();
00031
00032 void Clear(Option_t* opt = "");
00033
00034 const vector<VertexNode>& getVertexNodes() const { return _vertexNodes; }
00035
00036 void setUseTPC(bool v = true) { _useTPC = v; }
00037 void setUseBEMC(bool v = true) { _useBEMC = v; }
00038 void setUseEndcap(bool v = true) { _useEEMC = v; }
00039 void setUse2003Cuts(bool v = true) { _use2003Cuts = v; }
00040 void setUse2005Cuts(bool v = true) { _use2005Cuts = v; }
00041 void setUse2006Cuts(bool v = true) { _use2006Cuts = v; }
00042 void setUse2009Cuts(bool v = true) { _use2009Cuts = v; }
00043 void setUseBEMCEnergySum(bool v = true) { _useBEMCEnergySum = v; }
00044 void setUseBEMCEnergyVariation(bool v = true) { _useBEMCEnergyVariation = v; }
00045 void setBEMCEnergyVariationRatio(double ratio) { _bemcEnergyVariationRatio= ratio; }
00046
00047
00048
00049
00050
00051
00052 void setUseRandomSelector(bool v = true) { _useRandomSelector = v; }
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067 void setRandomSelector(
00068 double newProb = 1.0,
00069 bool newAt = false,
00070 unsigned int newSeed = 0
00071 )
00072 {
00073 _randomSelectorProb = newProb;
00074 _randomSelectorAt = newAt;
00075 _randomSelectorSeed = newSeed;
00076 }
00077
00078 int nDylanPoints() const;
00079 double sumEmcEt() const;
00080
00081 bool bemcCorrupt() const { return isBemcCorrupted(); }
00082
00083 StBET4pMakerImp* GetImp() { return _imp; }
00084
00085 const char* GetCVS() const
00086 {static const char cvs[]="Tag $Name: $ $Id: StBET4pMaker.h,v 1.18 2010/05/24 17:58:33 pibero Exp $ built "__DATE__" "__TIME__; return cvs;}
00087
00088 private:
00089
00090 StjTreeEntryMaker* _entryMaker;
00091
00092 StMuDstMaker* _uDstMaker;
00093 bool _doTowerSwapFix;
00094 StjAbstractTowerEnergyCorrectionForTracks* _correctTowerEnergyForTracks;
00095
00096 bool _useTPC;
00097 bool _useBEMC;
00098 bool _useEEMC;
00099 bool _use2003Cuts;
00100 bool _use2005Cuts;
00101 bool _use2006Cuts;
00102 bool _use2009Cuts;
00103 bool _useBEMCEnergySum;
00104 bool _useRandomSelector;
00105 bool _useBEMCEnergyVariation;
00106 double _bemcEnergyVariationRatio;
00107
00108 StBET4pMakerImp* _imp;
00109 StjeBemcEnergySumCalculator* _bemcEnergySumCalculator;
00110 StjeTrackListToStMuTrackFourVecList& _track2four;
00111 StjeTowerEnergyListToStMuTrackFourVecList& _energy2four;
00112
00113 double _randomSelectorProb;
00114 bool _randomSelectorAt;
00115 unsigned int _randomSelectorSeed;
00116
00117 bool isBemcCorrupted() const;
00118
00119 ClassDef(StBET4pMaker,0)
00120 };
00121
00122 #endif // STBET4PMAKER_H