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(),
41 AliFemtoPairCutAntiGamma::AliFemtoPairCutAntiGamma(const AliFemtoPairCutAntiGamma& c) :
42 AliFemtoShareQualityPairCut(c),
46 fMaxEEMinv = c.fMaxEEMinv;
47 fMaxDTheta = c.fMaxDTheta;
51 AliFemtoPairCutAntiGamma::~AliFemtoPairCutAntiGamma(){
55 bool AliFemtoPairCutAntiGamma::Pass(const AliFemtoPair* pair){
56 // Accept pairs based on their TPC entrance separation and
57 // quality and sharity
62 if ((pair->Track1()->Track()->Charge() * pair->Track2()->Track()->Charge()) < 0.0) {
63 double theta1 = pair->Track1()->Track()->P().Theta();
64 double theta2 = pair->Track2()->Track()->P().Theta();
65 double dtheta = TMath::Abs(theta1 - theta2);
67 double e1 = TMath::Sqrt(me*me + pair->Track1()->Track()->P().Mag2());
68 double e2 = TMath::Sqrt(me*me + pair->Track2()->Track()->P().Mag2());
70 double minv = 2*me*me + 2*(e1*e2 -
71 pair->Track1()->Track()->P().x()*pair->Track2()->Track()->P().x() -
72 pair->Track1()->Track()->P().y()*pair->Track2()->Track()->P().y() -
73 pair->Track1()->Track()->P().z()*pair->Track2()->Track()->P().z());
75 if ((minv < fMaxEEMinv) && (dtheta < fMaxDTheta)) temp = false;
79 temp = AliFemtoShareQualityPairCut::Pass(pair);
80 if (temp) fNPairsPassed++;
89 AliFemtoString AliFemtoPairCutAntiGamma::Report(){
90 // Prepare a report from the execution
91 string stemp = "AliFemtoPairCutAntiGamma Pair Cut - remove pairs possibly coming from Gamma conversions\n";
94 snprintf(ctemp , 100, "Number of pairs which passed:\t%ld Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
96 AliFemtoString returnThis = stemp;
100 TList *AliFemtoPairCutAntiGamma::ListSettings()
102 // return a list of settings in a writable form
103 TList *tListSetttings = AliFemtoShareQualityPairCut::ListSettings();
105 snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxeeminv=%f", fMaxEEMinv);
106 snprintf(buf, 200, "AliFemtoPairCutAntiGamma.maxdtheta=%f", fMaxDTheta);
107 tListSetttings->AddLast(new TObjString(buf));
109 return tListSetttings;
112 void AliFemtoPairCutAntiGamma::SetMaxEEMinv(Double_t maxeeminv)
114 fMaxEEMinv = maxeeminv;
118 void AliFemtoPairCutAntiGamma::SetMaxThetaDiff(Double_t maxdtheta)
120 fMaxDTheta = maxdtheta;