ROOT logo
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliFemtoShareQualityTPCEntranceSepPairCut - 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: AliFemtoShareQualityTPCEntranceSepPairCut.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 "AliFemtoShareQualityTPCEntranceSepPairCut.h"
#include <string>
#include <cstdio>

#ifdef __ROOT__
ClassImp(AliFemtoShareQualityTPCEntranceSepPairCut)
#endif

//__________________
AliFemtoShareQualityTPCEntranceSepPairCut::AliFemtoShareQualityTPCEntranceSepPairCut():
  AliFemtoShareQualityPairCut(),
  fDTPCMin(0)
{
}
//__________________
AliFemtoShareQualityTPCEntranceSepPairCut::AliFemtoShareQualityTPCEntranceSepPairCut(const AliFemtoShareQualityTPCEntranceSepPairCut& c) : 
  AliFemtoShareQualityPairCut(c),
  fDTPCMin(0)
{ 
  fDTPCMin = c.fDTPCMin;
}

//__________________
AliFemtoShareQualityTPCEntranceSepPairCut::~AliFemtoShareQualityTPCEntranceSepPairCut(){
  /* no-op */
}
//__________________

AliFemtoShareQualityTPCEntranceSepPairCut& AliFemtoShareQualityTPCEntranceSepPairCut::operator=(const AliFemtoShareQualityTPCEntranceSepPairCut& c)
{
  if (this != &c) {
    AliFemtoShareQualityPairCut::operator=(c);
    fDTPCMin = c.fDTPCMin;
  }

  return *this;
}
//__________________
bool AliFemtoShareQualityTPCEntranceSepPairCut::Pass(const AliFemtoPair* pair){
  // Accept pairs based on their TPC entrance separation and
  // quality and sharity
  bool temp = true;
  
  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);

  temp = dist > fDTPCMin;

  if (temp) {
    temp = AliFemtoShareQualityPairCut::Pass(pair);
  }
  else
    fNPairsFailed++;

  return temp;
}
//__________________
AliFemtoString AliFemtoShareQualityTPCEntranceSepPairCut::Report(){
  // Prepare a report from the execution
  string stemp = "AliFemtoShareQualityTPCEntranceSep Pair Cut - remove shared and split pairs and pairs with small separation at the entrance to the TPC\n";  char ctemp[100];
  snprintf(ctemp , 100, "Accept pair with TPC entrance separation more that %f",fDTPCMin);
  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 *AliFemtoShareQualityTPCEntranceSepPairCut::ListSettings()
{
  // return a list of settings in a writable form
  TList *tListSetttings =  AliFemtoShareQualityPairCut::ListSettings();
  char buf[200];
  snprintf(buf, 200, "AliFemtoShareQualityTPCEntranceSepPairCut.tpcentsepmin=%f", fDTPCMin);
  tListSetttings->AddLast(new TObjString(buf));

  return tListSetttings;
}

void AliFemtoShareQualityTPCEntranceSepPairCut::SetTPCEntranceSepMinimum(double dtpc)
{
  fDTPCMin = dtpc;
}
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:1
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:2
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:3
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:4
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:5
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:6
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:7
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:8
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:9
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:10
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:11
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:12
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:13
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:14
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:15
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:16
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:17
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:18
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:19
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:20
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:21
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:22
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:23
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:24
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:25
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:26
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:27
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:28
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:29
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:30
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:31
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:32
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:33
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:34
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:35
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:36
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:37
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:38
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:39
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:40
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:41
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:42
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:43
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:44
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:45
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:46
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:47
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:48
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:49
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:50
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:51
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:52
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:53
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:54
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:55
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:56
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:57
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:58
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:59
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:60
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:61
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:62
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:63
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:64
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:65
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:66
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:67
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:68
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:69
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:70
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:71
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:72
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:73
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:74
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:75
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:76
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:77
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:78
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:79
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:80
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:81
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:82
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:83
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:84
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:85
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:86
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:87
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:88
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:89
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:90
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:91
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:92
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:93
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:94
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:95
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:96
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:97
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:98
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:99
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:100
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:101
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:102
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:103
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:104
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:105
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:106
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:107
 AliFemtoShareQualityTPCEntranceSepPairCut.cxx:108