Changes in classes/SortableObject.h [3c46e17:341014c] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
classes/SortableObject.h
r3c46e17 r341014c 26 26 */ 27 27 28 #include "TObject.h" 28 29 #include "TRef.h" 29 #include "TObject.h"30 30 #include "TRefArray.h" 31 31 … … 37 37 { 38 38 public: 39 virtual ~CompBase() { 39 virtual ~CompBase() {} 40 40 virtual Bool_t IsSortable(const TObject *) const { return kTRUE; } 41 41 virtual Int_t Compare(const TObject *obj1, const TObject *obj2) const = 0; … … 47 47 { 48 48 public: 49 50 49 Bool_t IsSortable() const { return GetCompare() ? GetCompare()->IsSortable(this) : kFALSE; } 51 50 Int_t Compare(const TObject *obj) const { return GetCompare()->Compare(this, obj); } … … 64 63 { 65 64 CompE() {} 65 66 66 public: 67 67 static CompE *Instance() … … 73 73 Int_t Compare(const TObject *obj1, const TObject *obj2) const 74 74 { 75 const T *t1 = static_cast<const T *>(obj1);76 const T *t2 = static_cast<const T *>(obj2);75 const T *t1 = static_cast<const T *>(obj1); 76 const T *t2 = static_cast<const T *>(obj2); 77 77 if(t1->E > t2->E) 78 78 return -1; … … 90 90 { 91 91 CompPT() {} 92 92 93 public: 93 94 static CompPT *Instance() … … 99 100 Int_t Compare(const TObject *obj1, const TObject *obj2) const 100 101 { 101 const T *t1 = static_cast<const T *>(obj1);102 const T *t2 = static_cast<const T *>(obj2);102 const T *t1 = static_cast<const T *>(obj1); 103 const T *t2 = static_cast<const T *>(obj2); 103 104 if(t1->PT > t2->PT) 104 105 return -1; … … 116 117 { 117 118 CompMomentumPt() {} 119 118 120 public: 119 121 static CompMomentumPt *Instance() … … 125 127 Int_t Compare(const TObject *obj1, const TObject *obj2) const 126 128 { 127 const T *t1 = static_cast<const T *>(obj1);128 const T *t2 = static_cast<const T *>(obj2);129 const T *t1 = static_cast<const T *>(obj1); 130 const T *t2 = static_cast<const T *>(obj2); 129 131 if(t1->Momentum.Pt() > t2->Momentum.Pt()) 130 132 return -1; … … 142 144 { 143 145 CompET() {} 146 144 147 public: 145 148 static CompET *Instance() … … 151 154 Int_t Compare(const TObject *obj1, const TObject *obj2) const 152 155 { 153 const T *t1 = static_cast<const T *>(obj1);154 const T *t2 = static_cast<const T *>(obj2);156 const T *t1 = static_cast<const T *>(obj1); 157 const T *t2 = static_cast<const T *>(obj2); 155 158 if(t1->ET > t2->ET) 156 159 return -1; … … 168 171 { 169 172 CompSumPT2() {} 173 170 174 public: 171 175 static CompSumPT2 *Instance() … … 177 181 Int_t Compare(const TObject *obj1, const TObject *obj2) const 178 182 { 179 const T *t1 = static_cast<const T *>(obj1);180 const T *t2 = static_cast<const T *>(obj2);183 const T *t1 = static_cast<const T *>(obj1); 184 const T *t2 = static_cast<const T *>(obj2); 181 185 if(t1->SumPT2 > t2->SumPT2) 182 186 return -1; … … 193 197 class CompDeltaR: public CompBase 194 198 { 195 CompDeltaR(const T2 *obj = 0) : fObj(obj) {} 199 CompDeltaR(const T2 *obj = 0) : 200 fObj(obj) {} 196 201 197 202 Double_t DeltaPhi(Double_t phi1, Double_t phi2) 198 203 { 199 204 Double_t phi = TMath::Abs(phi1 - phi2); 200 return (phi <= TMath::Pi()) ? phi : (2.0 *TMath::Pi()) - phi;201 } 202 203 Double_t Sqr(Double_t x) { return x *x; }205 return (phi <= TMath::Pi()) ? phi : (2.0 * TMath::Pi()) - phi; 206 } 207 208 Double_t Sqr(Double_t x) { return x * x; } 204 209 205 210 Double_t SumSqr(Double_t a, Double_t b) … … 207 212 Double_t aAbs = TMath::Abs(a); 208 213 Double_t bAbs = TMath::Abs(b); 209 if(aAbs > bAbs) return aAbs * TMath::Sqrt(1.0 + Sqr(bAbs / aAbs)); 210 else return (bAbs == 0) ? 0.0 : bAbs * TMath::Sqrt(1.0 + Sqr(aAbs / bAbs)); 214 if(aAbs > bAbs) 215 return aAbs * TMath::Sqrt(1.0 + Sqr(bAbs / aAbs)); 216 else 217 return (bAbs == 0) ? 0.0 : bAbs * TMath::Sqrt(1.0 + Sqr(aAbs / bAbs)); 211 218 }; 212 219 … … 214 221 215 222 public: 216 217 { 218 219 223 static CompDeltaR *Instance(const T2 *obj = 0) 224 { 225 static CompDeltaR single(obj); 226 return &single; 220 227 } 221 228 … … 225 232 { 226 233 Double_t eta[3], phi[3], deltaR[2]; 227 const T1 *t1 = static_cast<const T1 *>(obj1);228 const T1 *t2 = static_cast<const T1 *>(obj2);234 const T1 *t1 = static_cast<const T1 *>(obj1); 235 const T1 *t2 = static_cast<const T1 *>(obj2); 229 236 230 237 eta[0] = fObj->Eta; … … 250 257 251 258 #endif // SortableObject_h 252 253
Note:
See TracChangeset
for help on using the changeset viewer.