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

#ifdef __ROOT__
ClassImp(AliFemtoShareQualityTPCEntranceSepQAPairCut)
#endif

//__________________
AliFemtoShareQualityTPCEntranceSepQAPairCut::AliFemtoShareQualityTPCEntranceSepQAPairCut():
  AliFemtoShareQualityQAPairCut(),
  fDTPCMin(0.0),
  fDTPCMax(1000.0),
  fDTPCQASwitch(0)
{
  fDTPCQASwitch = false;
  fDTPCQAExclusionZone[0] = 0.0;
  fDTPCQAExclusionZone[1] = 1000.0;
}
//__________________
AliFemtoShareQualityTPCEntranceSepQAPairCut::AliFemtoShareQualityTPCEntranceSepQAPairCut(const AliFemtoShareQualityTPCEntranceSepQAPairCut& c) : 
  AliFemtoShareQualityQAPairCut(c),
  fDTPCMin(0),
  fDTPCMax(1000.0),
  fDTPCQASwitch(0)
{ 
  fDTPCMin = c.fDTPCMin;
  fDTPCMax = c.fDTPCMax;
  fDTPCQASwitch = c.fDTPCQASwitch;
  fDTPCQAExclusionZone[0] = c.fDTPCQAExclusionZone[0];
  fDTPCQAExclusionZone[1] = c.fDTPCQAExclusionZone[1];
}

//__________________
AliFemtoShareQualityTPCEntranceSepQAPairCut& AliFemtoShareQualityTPCEntranceSepQAPairCut::operator=(const AliFemtoShareQualityTPCEntranceSepQAPairCut& aCut)
{
  // assignment operator
  if (this == &aCut)
    return *this;

  fDTPCMin = aCut.fDTPCMin;
  fDTPCMax = aCut.fDTPCMax;
  fDTPCQASwitch = aCut.fDTPCQASwitch;
  fDTPCQAExclusionZone[0] = aCut.fDTPCQAExclusionZone[0];
  fDTPCQAExclusionZone[1] = aCut.fDTPCQAExclusionZone[1];

  return *this;
}

//__________________
AliFemtoShareQualityTPCEntranceSepQAPairCut::~AliFemtoShareQualityTPCEntranceSepQAPairCut(){
  /* no-op */
}
//__________________
bool AliFemtoShareQualityTPCEntranceSepQAPairCut::Pass(const AliFemtoPair* pair){
  // Accept pairs based on their TPC entrance separation and
  // quality and sharity
  bool pass = 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);

  if (fDTPCQASwitch) {
    pass = ((dist > fDTPCMin) && (dist < fDTPCQAExclusionZone[0])) ||
           ((dist > fDTPCQAExclusionZone[1]) && (dist < fDTPCMax));
  }
  else {
    pass = (dist > fDTPCMin) && (dist < fDTPCMax);
  }

  if (pass) {
    pass = AliFemtoShareQualityQAPairCut::Pass(pair);
  }
  else
    fNPairsFailed++;

  return pass;
}
//__________________
AliFemtoString AliFemtoShareQualityTPCEntranceSepQAPairCut::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 *AliFemtoShareQualityTPCEntranceSepQAPairCut::ListSettings()
{
  // return a list of settings in a writable form
  TList *tListSetttings =  AliFemtoShareQualityQAPairCut::ListSettings();
  char buf[200];
  snprintf(buf, 200, "AliFemtoShareQualityTPCEntranceSepQAPairCut.tpcentsepmin=%f", fDTPCMin);
  tListSetttings->AddLast(new TObjString(buf));

  return tListSetttings;
}

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

void AliFemtoShareQualityTPCEntranceSepQAPairCut::SetTPCEntranceSepMaximum(double dtpc)
{
  fDTPCMax = dtpc;
}

void AliFemtoShareQualityTPCEntranceSepQAPairCut::SetTPCEntranceSepQASwitch(bool Switch)
{
  fDTPCQASwitch = Switch;
}

void AliFemtoShareQualityTPCEntranceSepQAPairCut::SetTPCEntranceSepQAExclusionZone(double lo, double hi)
{
  fDTPCQAExclusionZone[0] = lo;
  fDTPCQAExclusionZone[1] = hi;
}

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