ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/SFrameTools/src/Utils.cxx
(Generate patch)

Comparing UserCode/UHHAnalysis/SFrameTools/src/Utils.cxx (file contents):
Revision 1.1 by peiffer, Fri May 25 09:31:04 2012 UTC vs.
Revision 1.4 by peiffer, Thu Jun 28 15:57:27 2012 UTC

# Line 46 | Line 46 | bool TopTag(TopJet topjet,  double &mjet
46    
47    return true;
48   }
49 +
50 + Jet* nextJet(const Particle *p, std::vector<Jet> *jets){
51 +
52 +  double deltarmin = double_infinity();
53 +  Jet* nextjet=0;
54 +  for(unsigned int i=0; i<jets->size();++i){
55 +    if(jets->at(i).deltaR(*p) < deltarmin){
56 +      deltarmin = jets->at(i).deltaR(*p);
57 +      nextjet = &jets->at(i);
58 +    }
59 +  }
60 +
61 +  return nextjet;
62 + }
63 +
64 + double pTrel(const Particle *p, std::vector<Jet> *jets){
65 +
66 +  double ptrel=0;
67 +
68 +  Jet* nextjet =  nextJet(p,jets);
69 +
70 +  TVector3 p3(p->v4().Px(),p->v4().Py(),p->v4().Pz());
71 +  TVector3 jet3(nextjet->v4().Px(),nextjet->v4().Py(),nextjet->v4().Pz());
72 +
73 +  if(p3.Mag()!=0 && jet3.Mag()!=0){
74 +    double sin_alpha = (p3.Cross(jet3)).Mag()/p3.Mag()/jet3.Mag();
75 +    ptrel = p3.Mag()*sin_alpha;
76 +  }
77 +  else{
78 +    std::cout << "something strange happend in the ptrel calculation: either lepton or jet momentum is 0" <<std::endl;
79 +  }
80 +
81 +  return ptrel;
82 + }
83 +
84 + double deltaRmin(const Particle *p, std::vector<Jet> *jets){
85 +  return nextJet(p,jets)->deltaR(*p);
86 + }
87 +
88 + TVector3 toVector(LorentzVector v4){
89 +
90 +  TVector3 v3(0,0,0);
91 +  v3.SetX(v4.X());
92 +  v3.SetY(v4.Y());
93 +  v3.SetZ(v4.Z());
94 +  return v3;
95 + }
96 +
97 + TVector3 toVector(LorentzVectorXYZE v4){
98 +
99 +  TVector3 v3(0,0,0);
100 +  v3.SetX(v4.X());
101 +  v3.SetY(v4.Y());
102 +  v3.SetZ(v4.Z());
103 +  return v3;
104 + }
105 +
106 + LorentzVectorXYZE toXYZ(LorentzVector v4){
107 +
108 +  LorentzVectorXYZE v4_new(0,0,0,0);
109 +  v4_new.SetPx(v4.Px());
110 +  v4_new.SetPy(v4.Py());
111 +  v4_new.SetPz(v4.Pz());
112 +  v4_new.SetE(v4.E());
113 +  return v4_new;
114 + }
115 +
116 + LorentzVector toPtEtaPhi(LorentzVectorXYZE v4){
117 +
118 +  LorentzVector v4_new(0,0,0,0);
119 +  v4_new.SetPt(v4.Pt());
120 +  v4_new.SetEta(v4.Eta());
121 +  v4_new.SetPhi(v4.Phi());
122 +  v4_new.SetE(v4.E());
123 +  return v4_new;
124 + }
125 +
126 + double deltaR(LorentzVector v1, LorentzVector v2){
127 +
128 +  Particle p1;
129 +  p1.set_v4(v1);
130 +  Particle p2;
131 +  p2.set_v4(v2);
132 +  return p1.deltaR(p2);
133 + }
134 +
135 + double double_infinity(){
136 +  return std::numeric_limits<double>::infinity() ;
137 + }
138 +
139 + int int_infinity(){
140 +  return std::numeric_limits<int>::max() ;
141 + }
142 +
143 + int myPow(int x, unsigned int p) {
144 +  int i = 1;
145 +  for (unsigned int j = 1; j <= p; j++)  i *= x;
146 +  return i;
147 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines