00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef StHltDiElectron_hh
00018 #define StHltDiElectron_hh
00019
00020 #include <Stiostream.h>
00021 #include "StObject.h"
00022 #include "StArray.h"
00023
00024 #include "StHltTrack.h"
00025 #include "StHltBTofHit.h"
00026 #include "StHltBEmcTowerHit.h"
00027 #include "StHltTriggerReasonCapable.h"
00028
00029 class StHltDiElectron : public StHltTriggerReasonCapable {
00030 public:
00031 StHltDiElectron();
00032 ~StHltDiElectron();
00033
00034 float invariantMass() const;
00035 float pt() const;
00036 float psi() const;
00037 float tanl() const;
00038
00039 StHltTrack& daughter1primaryTrack();
00040 const StHltTrack& daughter1primaryTrack() const;
00041 StHltTrack& daughter1globalTrack();
00042 const StHltTrack& daughter1globalTrack() const;
00043 StHltBTofHit& daughter1bTofHit();
00044 const StHltBTofHit& daughter1bTofHit() const;
00045 StHltBEmcTowerHit& daughter1bEmcTowerHit();
00046 const StHltBEmcTowerHit& daughter1bEmcTowerHit() const;
00047 int daughter1SelectionBit() const;
00048 int daughter1globalTrackSN() const;
00049 int daughter1primaryTrackSN() const;
00050 int daughter1tofHitSN() const;
00051 int daughter1emcTowerSN() const;
00052 double daughter1bEmcMatchPhiDiff() const;
00053 double daughter1bEmcMatchZEdge() const;
00054 float daughter1bTofProjChannel() const;
00055 float daughter1bTofCellLocalY() const;
00056 float daughter1bTofCellLocalZ() const;
00057 float daughter1bTofPathLength() const;
00058 float daughter1beta() const;
00059 float daughter1tof() const;
00060
00061 StHltTrack& daughter2primaryTrack();
00062 const StHltTrack& daughter2primaryTrack() const;
00063 StHltTrack& daughter2globalTrack();
00064 const StHltTrack& daughter2globalTrack() const;
00065 StHltBTofHit& daughter2bTofHit();
00066 const StHltBTofHit& daughter2bTofHit() const;
00067 StHltBEmcTowerHit& daughter2bEmcTowerHit();
00068 const StHltBEmcTowerHit& daughter2bEmcTowerHit() const;
00069 int daughter2SelectionBit() const;
00070 int daughter2globalTrackSN() const;
00071 int daughter2primaryTrackSN() const;
00072 int daughter2tofHitSN() const;
00073 int daughter2emcTowerSN() const;
00074 double daughter2bEmcMatchPhiDiff() const;
00075 double daughter2bEmcMatchZEdge() const;
00076 float daughter2bTofProjChannel() const;
00077 float daughter2bTofCellLocalY() const;
00078 float daughter2bTofCellLocalZ() const;
00079 float daughter2bTofPathLength() const;
00080 float daughter2beta() const;
00081 float daughter2tof() const;
00082
00083 void setInvariantMass(float);
00084 void setPt(float);
00085 void setPsi(float);
00086 void setTanl(float);
00087
00088 void setDaughter1GlobalTrack(const StHltTrack &);
00089 void setDaughter1PrimaryTrack(const StHltTrack &);
00090 void setDaughter1BTofHit(const StHltBTofHit &);
00091 void setDaughter1BEmcTowerHit(const StHltBEmcTowerHit &);
00092 void setDaughter1SelectionBit(int);
00093 void setDaughter1GlobalTrackSN(int);
00094 void setDaughter1PrimaryTrackSN(int);
00095 void setDaughter1TofHitSN(int);
00096 void setDaughter1EmcTowerSN(int);
00097 void setDaughter1BEmcMatchPhiDiff(double);
00098 void setDaughter1BEmcMatchZEdge(double);
00099 void setDaughter1BTofProjChannel(float);
00100 void setDaughter1BTofCellLocalY(float);
00101 void setDaughter1BTofCellLocalZ(float);
00102 void setDaughter1BTofPathLength(float);
00103 void setDaughter1Beta(float);
00104 void setDaughter1Tof(float);
00105
00106 void setDaughter2GlobalTrack(const StHltTrack &);
00107 void setDaughter2PrimaryTrack(const StHltTrack &);
00108 void setDaughter2BTofHit(const StHltBTofHit &);
00109 void setDaughter2BEmcTowerHit(const StHltBEmcTowerHit &);
00110 void setDaughter2SelectionBit(int);
00111 void setDaughter2GlobalTrackSN(int);
00112 void setDaughter2PrimaryTrackSN(int);
00113 void setDaughter2TofHitSN(int);
00114 void setDaughter2EmcTowerSN(int);
00115 void setDaughter2BEmcMatchPhiDiff(double);
00116 void setDaughter2BEmcMatchZEdge(double);
00117 void setDaughter2BTofProjChannel(float);
00118 void setDaughter2BTofCellLocalY(float);
00119 void setDaughter2BTofCellLocalZ(float);
00120 void setDaughter2BTofPathLength(float);
00121 void setDaughter2Beta(float);
00122 void setDaughter2Tof(float);
00123
00124 private:
00125
00126 float mInvariantMass;
00127 float mPt;
00128 float mPsi;
00129 float mTanl;
00130
00131 StHltTrack mDaughter1PrimaryTrack;
00132 StHltTrack mDaughter1GlobalTrack;
00133 StHltBTofHit mDaughter1BTofHit;
00134 StHltBEmcTowerHit mDaughter1BEmcTowerHit;
00135 double mDaughter1BEmcMatchPhiDiff;
00136 double mDaughter1BEmcMatchZEdge;
00137 int mDaughter1SelectionBit;
00138 int mDaughter1GlobalTrackSN;
00139 int mDaughter1PrimaryTrackSN;
00140 int mDaughter1TofHitSN;
00141 int mDaughter1EmcTowerSN;
00142 float mDaughter1BTofProjChannel;
00143 float mDaughter1BTofCellLocalY;
00144 float mDaughter1BTofCellLocalZ;
00145 float mDaughter1BTofPathLength;
00146 float mDaughter1Beta;
00147 float mDaughter1Tof;
00148
00149 StHltTrack mDaughter2PrimaryTrack;
00150 StHltTrack mDaughter2GlobalTrack;
00151 StHltBTofHit mDaughter2BTofHit;
00152 StHltBEmcTowerHit mDaughter2BEmcTowerHit;
00153 double mDaughter2BEmcMatchPhiDiff;
00154 double mDaughter2BEmcMatchZEdge;
00155 int mDaughter2SelectionBit;
00156 int mDaughter2GlobalTrackSN;
00157 int mDaughter2PrimaryTrackSN;
00158 int mDaughter2TofHitSN;
00159 int mDaughter2EmcTowerSN;
00160 float mDaughter2BTofProjChannel;
00161 float mDaughter2BTofCellLocalY;
00162 float mDaughter2BTofCellLocalZ;
00163 float mDaughter2BTofPathLength;
00164 float mDaughter2Beta;
00165 float mDaughter2Tof;
00166
00167 ClassDef(StHltDiElectron,1);
00168
00169 };
00170
00171 inline float StHltDiElectron::invariantMass() const {return mInvariantMass;}
00172 inline float StHltDiElectron::pt() const {return mPt; }
00173 inline float StHltDiElectron::psi() const {return mPsi;}
00174 inline float StHltDiElectron::tanl() const {return mTanl;}
00175
00176
00177 ostream& operator<<(ostream&, const StHltDiElectron&);
00178
00179 #endif
00180
00181
00182
00183