1 /////////////////////////////////////////////////////////////////////////////
3 // AliFemtoKTPairCut - a pair cut which selects pairs based on their //
4 // transverse momentum kT //
6 /////////////////////////////////////////////////////////////////////////////
7 /***************************************************************************
9 * $Id: AliFemtoKTPairCut.cxx,v 1.1.2.2 2007/11/09 11:20:35 akisiel Exp $
11 * Author: Adam Kisiel, Ohio State, kisiel@mps.ohio-state.edu
12 ***************************************************************************
14 * Description: part of STAR HBT Framework: AliFemtoMaker package
15 * a cut to remove "shared" and "split" pairs
17 ***************************************************************************
20 **************************************************************************/
21 #include "AliFemtoKTPairCut.h"
27 ClassImp(AliFemtoKTPairCut)
31 AliFemtoKTPairCut::AliFemtoKTPairCut():
44 AliFemtoKTPairCut::AliFemtoKTPairCut(double lo, double hi) :
55 AliFemtoKTPairCut::AliFemtoKTPairCut(const AliFemtoKTPairCut& c) :
73 AliFemtoKTPairCut::~AliFemtoKTPairCut(){
76 AliFemtoKTPairCut& AliFemtoKTPairCut::operator=(const AliFemtoKTPairCut& c)
90 /*bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair){
93 if (pair->KT() < fKTMin)
96 if (pair->KT() > fKTMax)
102 AliFemtoString AliFemtoKTPairCut::Report(){
103 // Prepare a report from the execution
104 string stemp = "AliFemtoKT Pair Cut \n"; char ctemp[100];
105 snprintf(ctemp , 100, "Accept pair with kT in range %f , %f",fKTMin,fKTMax);
106 snprintf(ctemp , 100, "Accept pair with angle in range %f , %f",fPhiMin,fPhiMax);
108 AliFemtoString returnThis = stemp;
112 TList *AliFemtoKTPairCut::ListSettings()
114 // return a list of settings in a writable form
115 TList *tListSetttings = new TList();
117 snprintf(buf, 200, "AliFemtoKTPairCut.ktmax=%f", fKTMax);
118 tListSetttings->AddLast(new TObjString(buf));
119 snprintf(buf, 200, "AliFemtoKTPairCut.ktmin=%f", fKTMin);
120 tListSetttings->AddLast(new TObjString(buf));
121 snprintf(buf, 200, "AliFemtoKTPairCut.phimax=%f", fPhiMax);
122 tListSetttings->AddLast(new TObjString(buf));
123 snprintf(buf, 200, "AliFemtoKTPairCut.phimin=%f", fPhiMin);
124 tListSetttings->AddLast(new TObjString(buf));
125 snprintf(buf, 200, "AliFemtoKTPairCut.ptmin=%f", fPtMin);
126 tListSetttings->AddLast(new TObjString(buf));
127 snprintf(buf, 200, "AliFemtoKTPairCut.ptmax=%f", fPtMax);
128 tListSetttings->AddLast(new TObjString(buf));
130 return tListSetttings;
133 void AliFemtoKTPairCut::SetKTRange(double ktmin, double ktmax)
139 void AliFemtoKTPairCut::SetPhiRange(double phimin, double phimax)
145 void AliFemtoKTPairCut::SetPTMin(double ptmin, double ptmax)
151 //______________________________________________________
152 bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair)
156 //Taking care of the Kt cut
157 if (pair->KT() < fKTMin)
160 if (pair->KT() > fKTMax)
163 if (!temp) return temp;
165 if ((fPtMin > 0.0) || (fPtMax<1000.0)) {
166 // double px1 = pair->Track1()->Track()->P().x();
167 // double py1 = pair->Track1()->Track()->P().y();
169 // double px2 = pair->Track2()->Track()->P().x();
170 // double py2 = pair->Track2()->Track()->P().y();
172 // double pt1 = TMath::Hypot(px1, py1);
173 // double pt2 = TMath::Hypot(px2, py2);
175 // if ((pt1<fPtMin) || (pt1>fPtMax)) return false;
176 // if ((pt2<fPtMin) || (pt2>fPtMax)) return false;
177 if ((pair->Track1()->Track()->Pt()<fPtMin) || (pair->Track1()->Track()->Pt()>fPtMax)) return false;
178 if ((pair->Track2()->Track()->Pt()<fPtMin) || (pair->Track2()->Track()->Pt()>fPtMax)) return false;
181 //Taking care of the Phi cut
182 // double rpangle = (pair->GetPairAngleEP())*180/TMath::Pi();
183 double rpangle = pair->GetPairAngleEP();
185 if (rpangle > 180.0) rpangle -= 180.0;
186 if (rpangle < 0.0) rpangle += 180.0;
189 if ((rpangle > fPhiMax) && (rpangle < 180.0+fPhiMin))
193 if ((rpangle < fPhiMin) || (rpangle > fPhiMax))
199 //_____________________________________
200 bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair, double aRPAngle)
202 //The same as above, but it is defined with RP Angle as input in all the Correlatin function classes.
204 bool temp = (aRPAngle > 0.);