ROOT logo
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliFemtoPairCutAntiGamma - a pair cut which checks     //
// for some pair qualities that attempt to identify slit/doubly            //
// reconstructed tracks and also selects pairs based on their separation   //
// at the entrance to the TPC                                              //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
/***************************************************************************
 *
 * $Id: AliFemtoPairCutAntiGamma.cxx,v 1.1.2.1 2007/10/19 13:35:33 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 "AliFemtoPairCutAntiGamma.h"
#include <string>
#include <cstdio>
#include <TMath.h>

#ifdef __ROOT__
ClassImp(AliFemtoPairCutAntiGamma)
#endif

//__________________
AliFemtoPairCutAntiGamma::AliFemtoPairCutAntiGamma():
  AliFemtoShareQualityPairCut(),
  fMaxEEMinv(0.0),
  fMaxDTheta(0.0),
  fDTPCMin(0),
  fDataType(kESD)
{
}
//__________________
AliFemtoPairCutAntiGamma::AliFemtoPairCutAntiGamma(const AliFemtoPairCutAntiGamma& c) : 
  AliFemtoShareQualityPairCut(c),
  fMaxEEMinv(0.0),
  fMaxDTheta(0.0),
  fDTPCMin(0),
  fDataType(kESD)
{ 
  fMaxEEMinv = c.fMaxEEMinv;
  fMaxDTheta = c.fMaxDTheta;
  fDTPCMin = c.fDTPCMin;
  fDataType = c.fDataType;
}

AliFemtoPairCutAntiGamma& AliFemtoPairCutAntiGamma::operator=(const AliFemtoPairCutAntiGamma& c)
{
  if (this != &c) {
    fMaxEEMinv = c.fMaxEEMinv;
    fMaxDTheta = c.fMaxDTheta;
    fDTPCMin = c.fDTPCMin;
    fDataType = c.fDataType;
  }

  return *this;

}
//__________________
AliFemtoPairCutAntiGamma::~AliFemtoPairCutAntiGamma(){
  /* no-op */
}
//__________________
bool AliFemtoPairCutAntiGamma::Pass(const AliFemtoPair* pair){
  // Accept pairs based on their TPC entrance separation and
  // quality and sharity
  bool temp = true;

  if(fDataType==kKine)
    return true;

  double me = 0.000511;

  if ((pair->Track1()->Track()->Charge() * pair->Track2()->Track()->Charge()) < 0.0) {
    double theta1 = pair->Track1()->Track()->P().Theta();
    double theta2 = pair->Track2()->Track()->P().Theta();
    double dtheta = TMath::Abs(theta1 - theta2);
    
    double e1 = TMath::Sqrt(me*me + pair->Track1()->Track()->P().Mag2());
    double e2 = TMath::Sqrt(me*me + pair->Track2()->Track()->P().Mag2());
    
    double minv = 2*me*me + 2*(e1*e2 - 
			       pair->Track1()->Track()->P().x()*pair->Track2()->Track()->P().x() -
			       pair->Track1()->Track()->P().y()*pair->Track2()->Track()->P().y() -
			       pair->Track1()->Track()->P().z()*pair->Track2()->Track()->P().z());
    
    if ((minv < fMaxEEMinv) && (dtheta < fMaxDTheta)) temp = false;
  }

  bool tempTPCEntrance = true;
  
  if(fDataType==kESD || fDataType==kAOD)
    {
      double distx = pair->Track1()->Track()->NominalTpcEntrancePoint().x() - pair->Track2()->Track()->NominalTpcEntrancePoint().x();
      double disty = pair->Track1()->Track()->NominalTpcEntrancePoint().y() - pair->Track2()->Track()->NominalTpcEntrancePoint().y();
      double distz = pair->Track1()->Track()->NominalTpcEntrancePoint().z() - pair->Track2()->Track()->NominalTpcEntrancePoint().z();
      double dist = sqrt(distx*distx + disty*disty + distz*distz);

      tempTPCEntrance = dist > fDTPCMin;
    }
 

  if (temp && tempTPCEntrance) {
    
    temp = AliFemtoShareQualityPairCut::Pass(pair);
    if (temp) {fNPairsPassed++;}
    else fNPairsFailed++;
    return temp;
  }
  else
    {
    fNPairsFailed++;
    return false;
    }

}
//__________________
AliFemtoString AliFemtoPairCutAntiGamma::Report(){
  // Prepare a report from the execution
  string stemp = "AliFemtoPairCutAntiGamma Pair Cut - remove pairs possibly coming from Gamma conversions\n";  
  char ctemp[100];
  stemp += ctemp;
  snprintf(ctemp , 100, "Number of pairs which passed:\t%ld  Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
  stemp += ctemp;
  AliFemtoString returnThis = stemp;
  return returnThis;}
//__________________

TList *AliFemtoPairCutAntiGamma::ListSettings()
{
  // return a list of settings in a writable form
  TList *tListSetttings =  AliFemtoShareQualityPairCut::ListSettings();
  char buf[200];
  snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxeeminv=%f", fMaxEEMinv);
  snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxdtheta=%f", fMaxDTheta);
  tListSetttings->AddLast(new TObjString(buf));

  return tListSetttings;
}

void AliFemtoPairCutAntiGamma::SetMaxEEMinv(Double_t maxeeminv)
{
  fMaxEEMinv = maxeeminv;
}

 
void AliFemtoPairCutAntiGamma::SetMaxThetaDiff(Double_t maxdtheta)
{
  fMaxDTheta = maxdtheta;
}

void AliFemtoPairCutAntiGamma::SetTPCEntranceSepMinimum(double dtpc)
{
  fDTPCMin = dtpc;
}

void AliFemtoPairCutAntiGamma::SetDataType(AliFemtoDataType type)
{
  fDataType = type;
}
 AliFemtoPairCutAntiGamma.cxx:1
 AliFemtoPairCutAntiGamma.cxx:2
 AliFemtoPairCutAntiGamma.cxx:3
 AliFemtoPairCutAntiGamma.cxx:4
 AliFemtoPairCutAntiGamma.cxx:5
 AliFemtoPairCutAntiGamma.cxx:6
 AliFemtoPairCutAntiGamma.cxx:7
 AliFemtoPairCutAntiGamma.cxx:8
 AliFemtoPairCutAntiGamma.cxx:9
 AliFemtoPairCutAntiGamma.cxx:10
 AliFemtoPairCutAntiGamma.cxx:11
 AliFemtoPairCutAntiGamma.cxx:12
 AliFemtoPairCutAntiGamma.cxx:13
 AliFemtoPairCutAntiGamma.cxx:14
 AliFemtoPairCutAntiGamma.cxx:15
 AliFemtoPairCutAntiGamma.cxx:16
 AliFemtoPairCutAntiGamma.cxx:17
 AliFemtoPairCutAntiGamma.cxx:18
 AliFemtoPairCutAntiGamma.cxx:19
 AliFemtoPairCutAntiGamma.cxx:20
 AliFemtoPairCutAntiGamma.cxx:21
 AliFemtoPairCutAntiGamma.cxx:22
 AliFemtoPairCutAntiGamma.cxx:23
 AliFemtoPairCutAntiGamma.cxx:24
 AliFemtoPairCutAntiGamma.cxx:25
 AliFemtoPairCutAntiGamma.cxx:26
 AliFemtoPairCutAntiGamma.cxx:27
 AliFemtoPairCutAntiGamma.cxx:28
 AliFemtoPairCutAntiGamma.cxx:29
 AliFemtoPairCutAntiGamma.cxx:30
 AliFemtoPairCutAntiGamma.cxx:31
 AliFemtoPairCutAntiGamma.cxx:32
 AliFemtoPairCutAntiGamma.cxx:33
 AliFemtoPairCutAntiGamma.cxx:34
 AliFemtoPairCutAntiGamma.cxx:35
 AliFemtoPairCutAntiGamma.cxx:36
 AliFemtoPairCutAntiGamma.cxx:37
 AliFemtoPairCutAntiGamma.cxx:38
 AliFemtoPairCutAntiGamma.cxx:39
 AliFemtoPairCutAntiGamma.cxx:40
 AliFemtoPairCutAntiGamma.cxx:41
 AliFemtoPairCutAntiGamma.cxx:42
 AliFemtoPairCutAntiGamma.cxx:43
 AliFemtoPairCutAntiGamma.cxx:44
 AliFemtoPairCutAntiGamma.cxx:45
 AliFemtoPairCutAntiGamma.cxx:46
 AliFemtoPairCutAntiGamma.cxx:47
 AliFemtoPairCutAntiGamma.cxx:48
 AliFemtoPairCutAntiGamma.cxx:49
 AliFemtoPairCutAntiGamma.cxx:50
 AliFemtoPairCutAntiGamma.cxx:51
 AliFemtoPairCutAntiGamma.cxx:52
 AliFemtoPairCutAntiGamma.cxx:53
 AliFemtoPairCutAntiGamma.cxx:54
 AliFemtoPairCutAntiGamma.cxx:55
 AliFemtoPairCutAntiGamma.cxx:56
 AliFemtoPairCutAntiGamma.cxx:57
 AliFemtoPairCutAntiGamma.cxx:58
 AliFemtoPairCutAntiGamma.cxx:59
 AliFemtoPairCutAntiGamma.cxx:60
 AliFemtoPairCutAntiGamma.cxx:61
 AliFemtoPairCutAntiGamma.cxx:62
 AliFemtoPairCutAntiGamma.cxx:63
 AliFemtoPairCutAntiGamma.cxx:64
 AliFemtoPairCutAntiGamma.cxx:65
 AliFemtoPairCutAntiGamma.cxx:66
 AliFemtoPairCutAntiGamma.cxx:67
 AliFemtoPairCutAntiGamma.cxx:68
 AliFemtoPairCutAntiGamma.cxx:69
 AliFemtoPairCutAntiGamma.cxx:70
 AliFemtoPairCutAntiGamma.cxx:71
 AliFemtoPairCutAntiGamma.cxx:72
 AliFemtoPairCutAntiGamma.cxx:73
 AliFemtoPairCutAntiGamma.cxx:74
 AliFemtoPairCutAntiGamma.cxx:75
 AliFemtoPairCutAntiGamma.cxx:76
 AliFemtoPairCutAntiGamma.cxx:77
 AliFemtoPairCutAntiGamma.cxx:78
 AliFemtoPairCutAntiGamma.cxx:79
 AliFemtoPairCutAntiGamma.cxx:80
 AliFemtoPairCutAntiGamma.cxx:81
 AliFemtoPairCutAntiGamma.cxx:82
 AliFemtoPairCutAntiGamma.cxx:83
 AliFemtoPairCutAntiGamma.cxx:84
 AliFemtoPairCutAntiGamma.cxx:85
 AliFemtoPairCutAntiGamma.cxx:86
 AliFemtoPairCutAntiGamma.cxx:87
 AliFemtoPairCutAntiGamma.cxx:88
 AliFemtoPairCutAntiGamma.cxx:89
 AliFemtoPairCutAntiGamma.cxx:90
 AliFemtoPairCutAntiGamma.cxx:91
 AliFemtoPairCutAntiGamma.cxx:92
 AliFemtoPairCutAntiGamma.cxx:93
 AliFemtoPairCutAntiGamma.cxx:94
 AliFemtoPairCutAntiGamma.cxx:95
 AliFemtoPairCutAntiGamma.cxx:96
 AliFemtoPairCutAntiGamma.cxx:97
 AliFemtoPairCutAntiGamma.cxx:98
 AliFemtoPairCutAntiGamma.cxx:99
 AliFemtoPairCutAntiGamma.cxx:100
 AliFemtoPairCutAntiGamma.cxx:101
 AliFemtoPairCutAntiGamma.cxx:102
 AliFemtoPairCutAntiGamma.cxx:103
 AliFemtoPairCutAntiGamma.cxx:104
 AliFemtoPairCutAntiGamma.cxx:105
 AliFemtoPairCutAntiGamma.cxx:106
 AliFemtoPairCutAntiGamma.cxx:107
 AliFemtoPairCutAntiGamma.cxx:108
 AliFemtoPairCutAntiGamma.cxx:109
 AliFemtoPairCutAntiGamma.cxx:110
 AliFemtoPairCutAntiGamma.cxx:111
 AliFemtoPairCutAntiGamma.cxx:112
 AliFemtoPairCutAntiGamma.cxx:113
 AliFemtoPairCutAntiGamma.cxx:114
 AliFemtoPairCutAntiGamma.cxx:115
 AliFemtoPairCutAntiGamma.cxx:116
 AliFemtoPairCutAntiGamma.cxx:117
 AliFemtoPairCutAntiGamma.cxx:118
 AliFemtoPairCutAntiGamma.cxx:119
 AliFemtoPairCutAntiGamma.cxx:120
 AliFemtoPairCutAntiGamma.cxx:121
 AliFemtoPairCutAntiGamma.cxx:122
 AliFemtoPairCutAntiGamma.cxx:123
 AliFemtoPairCutAntiGamma.cxx:124
 AliFemtoPairCutAntiGamma.cxx:125
 AliFemtoPairCutAntiGamma.cxx:126
 AliFemtoPairCutAntiGamma.cxx:127
 AliFemtoPairCutAntiGamma.cxx:128
 AliFemtoPairCutAntiGamma.cxx:129
 AliFemtoPairCutAntiGamma.cxx:130
 AliFemtoPairCutAntiGamma.cxx:131
 AliFemtoPairCutAntiGamma.cxx:132
 AliFemtoPairCutAntiGamma.cxx:133
 AliFemtoPairCutAntiGamma.cxx:134
 AliFemtoPairCutAntiGamma.cxx:135
 AliFemtoPairCutAntiGamma.cxx:136
 AliFemtoPairCutAntiGamma.cxx:137
 AliFemtoPairCutAntiGamma.cxx:138
 AliFemtoPairCutAntiGamma.cxx:139
 AliFemtoPairCutAntiGamma.cxx:140
 AliFemtoPairCutAntiGamma.cxx:141
 AliFemtoPairCutAntiGamma.cxx:142
 AliFemtoPairCutAntiGamma.cxx:143
 AliFemtoPairCutAntiGamma.cxx:144
 AliFemtoPairCutAntiGamma.cxx:145
 AliFemtoPairCutAntiGamma.cxx:146
 AliFemtoPairCutAntiGamma.cxx:147
 AliFemtoPairCutAntiGamma.cxx:148
 AliFemtoPairCutAntiGamma.cxx:149
 AliFemtoPairCutAntiGamma.cxx:150
 AliFemtoPairCutAntiGamma.cxx:151
 AliFemtoPairCutAntiGamma.cxx:152
 AliFemtoPairCutAntiGamma.cxx:153
 AliFemtoPairCutAntiGamma.cxx:154
 AliFemtoPairCutAntiGamma.cxx:155
 AliFemtoPairCutAntiGamma.cxx:156
 AliFemtoPairCutAntiGamma.cxx:157
 AliFemtoPairCutAntiGamma.cxx:158
 AliFemtoPairCutAntiGamma.cxx:159
 AliFemtoPairCutAntiGamma.cxx:160
 AliFemtoPairCutAntiGamma.cxx:161
 AliFemtoPairCutAntiGamma.cxx:162
 AliFemtoPairCutAntiGamma.cxx:163
 AliFemtoPairCutAntiGamma.cxx:164
 AliFemtoPairCutAntiGamma.cxx:165
 AliFemtoPairCutAntiGamma.cxx:166
 AliFemtoPairCutAntiGamma.cxx:167
 AliFemtoPairCutAntiGamma.cxx:168
 AliFemtoPairCutAntiGamma.cxx:169