ROOT logo
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliFemtoKTPairCut - a pair cut which selects pairs based on their       //
// transverse momentum kT                                                  //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
/***************************************************************************
 *
 * $Id: AliFemtoKTPairCut.cxx,v 1.1.2.2 2007/11/09 11:20:35 akisiel Exp $
 *
 * Author: Adam Kisiel, Ohio State, kisiel@mps.ohio-state.edu
 ***************************************************************************
 *
 * Description: part of STAR HBT Framework: AliFemtoMaker package
 *   a cut to remove "shared" and "split" pairs
 *
 ***************************************************************************
 *
 *
 **************************************************************************/
#include "AliFemtoKTPairCut.h"
#include <string>
#include <cstdio>
#include <TMath.h>

#ifdef __ROOT__
ClassImp(AliFemtoKTPairCut)
#endif

//__________________
AliFemtoKTPairCut::AliFemtoKTPairCut():
  AliFemtoPairCut(),
  fKTMin(0),
  fKTMax(1.0e6),
  fPhiMin(0),
  fPhiMax(360.0),
  fPtMin(0.0),
  fPtMax(1000.0)
{
  fKTMin = 0;
   fKTMax = 1.0e6;
}
//__________________
AliFemtoKTPairCut::AliFemtoKTPairCut(double lo, double hi) :
  AliFemtoPairCut(),
  fKTMin(lo),
  fKTMax(hi),
  fPhiMin(0),
  fPhiMax(360),
  fPtMin(0.0),
  fPtMax(1000.0)
{
}
//__________________
AliFemtoKTPairCut::AliFemtoKTPairCut(const AliFemtoKTPairCut& c) : 
  AliFemtoPairCut(c),
  fKTMin(0),
  fKTMax(1.0e6),
  fPhiMin(0),
  fPhiMax(360),
  fPtMin(0.0),
  fPtMax(1000.0)
{ 
  fKTMin = c.fKTMin;
  fKTMax = c.fKTMax;
  fPhiMin = c.fPhiMin;
  fPhiMax = c.fPhiMax;
  fPtMin = c.fPtMin;
  fPtMax = c.fPtMax;
}

//__________________
AliFemtoKTPairCut::~AliFemtoKTPairCut(){
  /* no-op */
}
AliFemtoKTPairCut& AliFemtoKTPairCut::operator=(const AliFemtoKTPairCut& c)
{
  if (this != &c) {
    fKTMin = c.fKTMin;
    fKTMax = c.fKTMax;
    fPhiMin = c.fPhiMin;
    fPhiMax = c.fPhiMax;
    fPtMin = c.fPtMin;
    fPtMax = c.fPtMax;
  }

  return *this;
}
//__________________
/*bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair){
  bool temp = true;
  
  if (pair->KT() < fKTMin)
    temp = false;

  if (pair->KT() > fKTMax)
    temp = false;

  return temp;
}*/
//__________________
AliFemtoString AliFemtoKTPairCut::Report(){
  // Prepare a report from the execution
  string stemp = "AliFemtoKT Pair Cut \n";  char ctemp[100];
  snprintf(ctemp , 100, "Accept pair with kT in range %f , %f",fKTMin,fKTMax);
  snprintf(ctemp , 100, "Accept pair with angle in range %f , %f",fPhiMin,fPhiMax);
  stemp += ctemp;
  AliFemtoString returnThis = stemp;
  return returnThis;}
//__________________

TList *AliFemtoKTPairCut::ListSettings()
{
  // return a list of settings in a writable form
  TList *tListSetttings =  new TList();
  char buf[200];
  snprintf(buf, 200, "AliFemtoKTPairCut.ktmax=%f", fKTMax);
  tListSetttings->AddLast(new TObjString(buf));
  snprintf(buf, 200, "AliFemtoKTPairCut.ktmin=%f", fKTMin);
  tListSetttings->AddLast(new TObjString(buf));
  snprintf(buf, 200, "AliFemtoKTPairCut.phimax=%f", fPhiMax);
  tListSetttings->AddLast(new TObjString(buf));
  snprintf(buf, 200, "AliFemtoKTPairCut.phimin=%f", fPhiMin);
  tListSetttings->AddLast(new TObjString(buf));
  snprintf(buf, 200, "AliFemtoKTPairCut.ptmin=%f", fPtMin);
  tListSetttings->AddLast(new TObjString(buf));
  snprintf(buf, 200, "AliFemtoKTPairCut.ptmax=%f", fPtMax);
  tListSetttings->AddLast(new TObjString(buf));

  return tListSetttings;
}

void AliFemtoKTPairCut::SetKTRange(double ktmin, double ktmax)
{
  fKTMin = ktmin;
  fKTMax = ktmax;
}

void AliFemtoKTPairCut::SetPhiRange(double phimin, double phimax)
{
  fPhiMin = phimin;
  fPhiMax = phimax;
}

void AliFemtoKTPairCut::SetPTMin(double ptmin, double ptmax)
{
  fPtMin = ptmin;
  fPtMax = ptmax;
}

//______________________________________________________
bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair)
{
  bool temp = true;

//Taking care of the Kt cut
  if (pair->KT() < fKTMin)
    temp = false;

  if (pair->KT() > fKTMax)
    temp = false;

  if (!temp) return temp;

  if ((fPtMin > 0.0) || (fPtMax<1000.0)) {
//     double px1 = pair->Track1()->Track()->P().x();
//     double py1 = pair->Track1()->Track()->P().y();

//     double px2 = pair->Track2()->Track()->P().x();
//     double py2 = pair->Track2()->Track()->P().y();
    
//     double pt1 = TMath::Hypot(px1, py1);
//     double pt2 = TMath::Hypot(px2, py2);
    
//     if ((pt1<fPtMin) || (pt1>fPtMax)) return false;
//     if ((pt2<fPtMin) || (pt2>fPtMax)) return false;
    if ((pair->Track1()->Track()->Pt()<fPtMin) || (pair->Track1()->Track()->Pt()>fPtMax)) return false;
    if ((pair->Track2()->Track()->Pt()<fPtMin) || (pair->Track2()->Track()->Pt()>fPtMax)) return false;
  }

//Taking care of the Phi cut
//   double rpangle = (pair->GetPairAngleEP())*180/TMath::Pi();
  double rpangle = pair->GetPairAngleEP();

  if (rpangle > 180.0) rpangle -= 180.0;
  if (rpangle < 0.0) rpangle += 180.0;
  
  if (fPhiMin < 0) {
    if ((rpangle > fPhiMax) && (rpangle < 180.0+fPhiMin)) 
      temp = false;
  }
  else {
    if ((rpangle < fPhiMin) || (rpangle > fPhiMax))
      temp = false;
  }
  return temp;
}

//_____________________________________
bool AliFemtoKTPairCut::Pass(const AliFemtoPair* pair, double aRPAngle)
{
//The same as above, but it is defined with RP Angle as input in all the Correlatin function classes.

  bool temp = (aRPAngle > 0.);
  aRPAngle = true;
   
  if (!Pass(pair))
	temp = false;

  return temp;
}
 AliFemtoKTPairCut.cxx:1
 AliFemtoKTPairCut.cxx:2
 AliFemtoKTPairCut.cxx:3
 AliFemtoKTPairCut.cxx:4
 AliFemtoKTPairCut.cxx:5
 AliFemtoKTPairCut.cxx:6
 AliFemtoKTPairCut.cxx:7
 AliFemtoKTPairCut.cxx:8
 AliFemtoKTPairCut.cxx:9
 AliFemtoKTPairCut.cxx:10
 AliFemtoKTPairCut.cxx:11
 AliFemtoKTPairCut.cxx:12
 AliFemtoKTPairCut.cxx:13
 AliFemtoKTPairCut.cxx:14
 AliFemtoKTPairCut.cxx:15
 AliFemtoKTPairCut.cxx:16
 AliFemtoKTPairCut.cxx:17
 AliFemtoKTPairCut.cxx:18
 AliFemtoKTPairCut.cxx:19
 AliFemtoKTPairCut.cxx:20
 AliFemtoKTPairCut.cxx:21
 AliFemtoKTPairCut.cxx:22
 AliFemtoKTPairCut.cxx:23
 AliFemtoKTPairCut.cxx:24
 AliFemtoKTPairCut.cxx:25
 AliFemtoKTPairCut.cxx:26
 AliFemtoKTPairCut.cxx:27
 AliFemtoKTPairCut.cxx:28
 AliFemtoKTPairCut.cxx:29
 AliFemtoKTPairCut.cxx:30
 AliFemtoKTPairCut.cxx:31
 AliFemtoKTPairCut.cxx:32
 AliFemtoKTPairCut.cxx:33
 AliFemtoKTPairCut.cxx:34
 AliFemtoKTPairCut.cxx:35
 AliFemtoKTPairCut.cxx:36
 AliFemtoKTPairCut.cxx:37
 AliFemtoKTPairCut.cxx:38
 AliFemtoKTPairCut.cxx:39
 AliFemtoKTPairCut.cxx:40
 AliFemtoKTPairCut.cxx:41
 AliFemtoKTPairCut.cxx:42
 AliFemtoKTPairCut.cxx:43
 AliFemtoKTPairCut.cxx:44
 AliFemtoKTPairCut.cxx:45
 AliFemtoKTPairCut.cxx:46
 AliFemtoKTPairCut.cxx:47
 AliFemtoKTPairCut.cxx:48
 AliFemtoKTPairCut.cxx:49
 AliFemtoKTPairCut.cxx:50
 AliFemtoKTPairCut.cxx:51
 AliFemtoKTPairCut.cxx:52
 AliFemtoKTPairCut.cxx:53
 AliFemtoKTPairCut.cxx:54
 AliFemtoKTPairCut.cxx:55
 AliFemtoKTPairCut.cxx:56
 AliFemtoKTPairCut.cxx:57
 AliFemtoKTPairCut.cxx:58
 AliFemtoKTPairCut.cxx:59
 AliFemtoKTPairCut.cxx:60
 AliFemtoKTPairCut.cxx:61
 AliFemtoKTPairCut.cxx:62
 AliFemtoKTPairCut.cxx:63
 AliFemtoKTPairCut.cxx:64
 AliFemtoKTPairCut.cxx:65
 AliFemtoKTPairCut.cxx:66
 AliFemtoKTPairCut.cxx:67
 AliFemtoKTPairCut.cxx:68
 AliFemtoKTPairCut.cxx:69
 AliFemtoKTPairCut.cxx:70
 AliFemtoKTPairCut.cxx:71
 AliFemtoKTPairCut.cxx:72
 AliFemtoKTPairCut.cxx:73
 AliFemtoKTPairCut.cxx:74
 AliFemtoKTPairCut.cxx:75
 AliFemtoKTPairCut.cxx:76
 AliFemtoKTPairCut.cxx:77
 AliFemtoKTPairCut.cxx:78
 AliFemtoKTPairCut.cxx:79
 AliFemtoKTPairCut.cxx:80
 AliFemtoKTPairCut.cxx:81
 AliFemtoKTPairCut.cxx:82
 AliFemtoKTPairCut.cxx:83
 AliFemtoKTPairCut.cxx:84
 AliFemtoKTPairCut.cxx:85
 AliFemtoKTPairCut.cxx:86
 AliFemtoKTPairCut.cxx:87
 AliFemtoKTPairCut.cxx:88
 AliFemtoKTPairCut.cxx:89
 AliFemtoKTPairCut.cxx:90
 AliFemtoKTPairCut.cxx:91
 AliFemtoKTPairCut.cxx:92
 AliFemtoKTPairCut.cxx:93
 AliFemtoKTPairCut.cxx:94
 AliFemtoKTPairCut.cxx:95
 AliFemtoKTPairCut.cxx:96
 AliFemtoKTPairCut.cxx:97
 AliFemtoKTPairCut.cxx:98
 AliFemtoKTPairCut.cxx:99
 AliFemtoKTPairCut.cxx:100
 AliFemtoKTPairCut.cxx:101
 AliFemtoKTPairCut.cxx:102
 AliFemtoKTPairCut.cxx:103
 AliFemtoKTPairCut.cxx:104
 AliFemtoKTPairCut.cxx:105
 AliFemtoKTPairCut.cxx:106
 AliFemtoKTPairCut.cxx:107
 AliFemtoKTPairCut.cxx:108
 AliFemtoKTPairCut.cxx:109
 AliFemtoKTPairCut.cxx:110
 AliFemtoKTPairCut.cxx:111
 AliFemtoKTPairCut.cxx:112
 AliFemtoKTPairCut.cxx:113
 AliFemtoKTPairCut.cxx:114
 AliFemtoKTPairCut.cxx:115
 AliFemtoKTPairCut.cxx:116
 AliFemtoKTPairCut.cxx:117
 AliFemtoKTPairCut.cxx:118
 AliFemtoKTPairCut.cxx:119
 AliFemtoKTPairCut.cxx:120
 AliFemtoKTPairCut.cxx:121
 AliFemtoKTPairCut.cxx:122
 AliFemtoKTPairCut.cxx:123
 AliFemtoKTPairCut.cxx:124
 AliFemtoKTPairCut.cxx:125
 AliFemtoKTPairCut.cxx:126
 AliFemtoKTPairCut.cxx:127
 AliFemtoKTPairCut.cxx:128
 AliFemtoKTPairCut.cxx:129
 AliFemtoKTPairCut.cxx:130
 AliFemtoKTPairCut.cxx:131
 AliFemtoKTPairCut.cxx:132
 AliFemtoKTPairCut.cxx:133
 AliFemtoKTPairCut.cxx:134
 AliFemtoKTPairCut.cxx:135
 AliFemtoKTPairCut.cxx:136
 AliFemtoKTPairCut.cxx:137
 AliFemtoKTPairCut.cxx:138
 AliFemtoKTPairCut.cxx:139
 AliFemtoKTPairCut.cxx:140
 AliFemtoKTPairCut.cxx:141
 AliFemtoKTPairCut.cxx:142
 AliFemtoKTPairCut.cxx:143
 AliFemtoKTPairCut.cxx:144
 AliFemtoKTPairCut.cxx:145
 AliFemtoKTPairCut.cxx:146
 AliFemtoKTPairCut.cxx:147
 AliFemtoKTPairCut.cxx:148
 AliFemtoKTPairCut.cxx:149
 AliFemtoKTPairCut.cxx:150
 AliFemtoKTPairCut.cxx:151
 AliFemtoKTPairCut.cxx:152
 AliFemtoKTPairCut.cxx:153
 AliFemtoKTPairCut.cxx:154
 AliFemtoKTPairCut.cxx:155
 AliFemtoKTPairCut.cxx:156
 AliFemtoKTPairCut.cxx:157
 AliFemtoKTPairCut.cxx:158
 AliFemtoKTPairCut.cxx:159
 AliFemtoKTPairCut.cxx:160
 AliFemtoKTPairCut.cxx:161
 AliFemtoKTPairCut.cxx:162
 AliFemtoKTPairCut.cxx:163
 AliFemtoKTPairCut.cxx:164
 AliFemtoKTPairCut.cxx:165
 AliFemtoKTPairCut.cxx:166
 AliFemtoKTPairCut.cxx:167
 AliFemtoKTPairCut.cxx:168
 AliFemtoKTPairCut.cxx:169
 AliFemtoKTPairCut.cxx:170
 AliFemtoKTPairCut.cxx:171
 AliFemtoKTPairCut.cxx:172
 AliFemtoKTPairCut.cxx:173
 AliFemtoKTPairCut.cxx:174
 AliFemtoKTPairCut.cxx:175
 AliFemtoKTPairCut.cxx:176
 AliFemtoKTPairCut.cxx:177
 AliFemtoKTPairCut.cxx:178
 AliFemtoKTPairCut.cxx:179
 AliFemtoKTPairCut.cxx:180
 AliFemtoKTPairCut.cxx:181
 AliFemtoKTPairCut.cxx:182
 AliFemtoKTPairCut.cxx:183
 AliFemtoKTPairCut.cxx:184
 AliFemtoKTPairCut.cxx:185
 AliFemtoKTPairCut.cxx:186
 AliFemtoKTPairCut.cxx:187
 AliFemtoKTPairCut.cxx:188
 AliFemtoKTPairCut.cxx:189
 AliFemtoKTPairCut.cxx:190
 AliFemtoKTPairCut.cxx:191
 AliFemtoKTPairCut.cxx:192
 AliFemtoKTPairCut.cxx:193
 AliFemtoKTPairCut.cxx:194
 AliFemtoKTPairCut.cxx:195
 AliFemtoKTPairCut.cxx:196
 AliFemtoKTPairCut.cxx:197
 AliFemtoKTPairCut.cxx:198
 AliFemtoKTPairCut.cxx:199
 AliFemtoKTPairCut.cxx:200
 AliFemtoKTPairCut.cxx:201
 AliFemtoKTPairCut.cxx:202
 AliFemtoKTPairCut.cxx:203
 AliFemtoKTPairCut.cxx:204
 AliFemtoKTPairCut.cxx:205
 AliFemtoKTPairCut.cxx:206
 AliFemtoKTPairCut.cxx:207
 AliFemtoKTPairCut.cxx:208
 AliFemtoKTPairCut.cxx:209
 AliFemtoKTPairCut.cxx:210
 AliFemtoKTPairCut.cxx:211