1 /////////////////////////////////////////////////////////////////////////////
3 // AliFemtoPairCutAntiGamma - a pair cut which checks //
4 // for some pair qualities that attempt to identify slit/doubly //
5 // reconstructed tracks and also selects pairs based on their separation //
6 // at the entrance to the TPC //
8 /////////////////////////////////////////////////////////////////////////////
9 /***************************************************************************
11 * $Id: AliFemtoPairCutAntiGamma.cxx,v 1.1.2.1 2007/10/19 13:35:33 akisiel Exp $
13 * Author: Adam Kisiel, Ohio State, kisiel@mps.ohio-state.edu
14 ***************************************************************************
16 * Description: part of STAR HBT Framework: AliFemtoMaker package
17 * a cut to remove "shared" and "split" pairs
19 ***************************************************************************
22 **************************************************************************/
24 #include "AliFemtoPairCutAntiGamma.h"
30 ClassImp(AliFemtoPairCutAntiGamma)
34 AliFemtoPairCutAntiGamma::AliFemtoPairCutAntiGamma():
35 AliFemtoShareQualityPairCut(),
43 AliFemtoPairCutAntiGamma::AliFemtoPairCutAntiGamma(const AliFemtoPairCutAntiGamma& c) :
44 AliFemtoShareQualityPairCut(c),
50 fMaxEEMinv = c.fMaxEEMinv;
51 fMaxDTheta = c.fMaxDTheta;
52 fDTPCMin = c.fDTPCMin;
56 AliFemtoPairCutAntiGamma& AliFemtoPairCutAntiGamma::operator=(const AliFemtoPairCutAntiGamma& c)
59 fMaxEEMinv = c.fMaxEEMinv;
60 fMaxDTheta = c.fMaxDTheta;
61 fDTPCMin = c.fDTPCMin;
69 AliFemtoPairCutAntiGamma::~AliFemtoPairCutAntiGamma(){
73 bool AliFemtoPairCutAntiGamma::Pass(const AliFemtoPair* pair){
74 // Accept pairs based on their TPC entrance separation and
75 // quality and sharity
80 if ((pair->Track1()->Track()->Charge() * pair->Track2()->Track()->Charge()) < 0.0) {
81 double theta1 = pair->Track1()->Track()->P().Theta();
82 double theta2 = pair->Track2()->Track()->P().Theta();
83 double dtheta = TMath::Abs(theta1 - theta2);
85 double e1 = TMath::Sqrt(me*me + pair->Track1()->Track()->P().Mag2());
86 double e2 = TMath::Sqrt(me*me + pair->Track2()->Track()->P().Mag2());
88 double minv = 2*me*me + 2*(e1*e2 -
89 pair->Track1()->Track()->P().x()*pair->Track2()->Track()->P().x() -
90 pair->Track1()->Track()->P().y()*pair->Track2()->Track()->P().y() -
91 pair->Track1()->Track()->P().z()*pair->Track2()->Track()->P().z());
93 if ((minv < fMaxEEMinv) && (dtheta < fMaxDTheta)) temp = false;
96 bool tempTPCEntrance = true;
100 double distx = pair->Track1()->Track()->NominalTpcEntrancePoint().x() - pair->Track2()->Track()->NominalTpcEntrancePoint().x();
101 double disty = pair->Track1()->Track()->NominalTpcEntrancePoint().y() - pair->Track2()->Track()->NominalTpcEntrancePoint().y();
102 double distz = pair->Track1()->Track()->NominalTpcEntrancePoint().z() - pair->Track2()->Track()->NominalTpcEntrancePoint().z();
103 double dist = sqrt(distx*distx + disty*disty + distz*distz);
105 tempTPCEntrance = dist > fDTPCMin;
109 if (temp && tempTPCEntrance) {
110 temp = AliFemtoShareQualityPairCut::Pass(pair);
111 if (temp) fNPairsPassed++;
112 else fNPairsFailed++;
123 AliFemtoString AliFemtoPairCutAntiGamma::Report(){
124 // Prepare a report from the execution
125 string stemp = "AliFemtoPairCutAntiGamma Pair Cut - remove pairs possibly coming from Gamma conversions\n";
128 snprintf(ctemp , 100, "Number of pairs which passed:\t%ld Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
130 AliFemtoString returnThis = stemp;
134 TList *AliFemtoPairCutAntiGamma::ListSettings()
136 // return a list of settings in a writable form
137 TList *tListSetttings = AliFemtoShareQualityPairCut::ListSettings();
139 snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxeeminv=%f", fMaxEEMinv);
140 snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxdtheta=%f", fMaxDTheta);
141 tListSetttings->AddLast(new TObjString(buf));
143 return tListSetttings;
146 void AliFemtoPairCutAntiGamma::SetMaxEEMinv(Double_t maxeeminv)
148 fMaxEEMinv = maxeeminv;
152 void AliFemtoPairCutAntiGamma::SetMaxThetaDiff(Double_t maxdtheta)
154 fMaxDTheta = maxdtheta;
157 void AliFemtoPairCutAntiGamma::SetTPCEntranceSepMinimum(double dtpc)
162 void AliFemtoPairCutAntiGamma::SetUseAOD(Bool_t UseAOD)