#include "AliFemtoPairCutResonances.h"
#include <string>
#include <cstdio>
#include <TMath.h>
#ifdef __ROOT__
ClassImp(AliFemtoPairCutResonances)
#endif
AliFemtoPairCutResonances::AliFemtoPairCutResonances():
AliFemtoShareQualityPairCut(),
fMaxEEMinv(0.0),
fMaxDTheta(0.0),
fDataType(kAOD),
fSwitchPassFail(0)
{
}
AliFemtoPairCutResonances::AliFemtoPairCutResonances(const AliFemtoPairCutResonances& c) :
AliFemtoShareQualityPairCut(c),
fMaxEEMinv(0.0),
fMaxDTheta(0.0),
fDataType(kAOD),
fSwitchPassFail(0)
{
fMaxEEMinv = c.fMaxEEMinv;
fMaxDTheta = c.fMaxDTheta;
fDataType = c.fDataType;
fSwitchPassFail=c.fSwitchPassFail;
}
AliFemtoPairCutResonances& AliFemtoPairCutResonances::operator=(const AliFemtoPairCutResonances& c)
{
if (this != &c) {
fMaxEEMinv = c.fMaxEEMinv;
fMaxDTheta = c.fMaxDTheta;
fDataType = c.fDataType;
fSwitchPassFail=c.fSwitchPassFail;
}
return *this;
}
AliFemtoPairCutResonances::~AliFemtoPairCutResonances(){
}
bool AliFemtoPairCutResonances::Pass(const AliFemtoPair* pair){
bool temp = true;
if(fDataType==kKine)
return true;
double me = 0.000511;
double mPi = 0.13957018;
double mp = 0.938272046;
double mK0min = 0.00049;
double mK0max = 0.00051;
double mRhomin = 0.000765;
double mRhomax = 0.000785;
double mLmin = 1.095;
double mLmax = 1.135;
if ((pair->Track1()->Track()->Charge() * pair->Track2()->Track()->Charge()) < 0.0) {
double e1 = TMath::Sqrt(me*me + pair->Track1()->Track()->P().Mag2());
double e2 = TMath::Sqrt(me*me + pair->Track2()->Track()->P().Mag2());
double minvGamma = 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 ( minvGamma < fMaxEEMinv )
temp = false;
double pi1 = TMath::Sqrt(mPi*mPi + pair->Track1()->Track()->P().Mag2());
double pi2 = TMath::Sqrt(mPi*mPi + pair->Track2()->Track()->P().Mag2());
double p1 = TMath::Sqrt(mp*mp + pair->Track1()->Track()->P().Mag2());
double p2 = TMath::Sqrt(mp*mp + pair->Track2()->Track()->P().Mag2());
double minv2pi = 2*mPi*mPi + 2*(pi1*pi2 -
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 ( ((minv2pi>mK0min && minv2pi<mK0max) || (minv2pi>mRhomin && minv2pi<mRhomax)) )
temp = false;
double minvpPi = 2*mp*mPi + 2*(p1*pi2 -
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());
double minvPip = 2*mPi*mp + 2*(pi1*p2 -
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( ((minvpPi>mLmin) && (minvpPi<mLmax)) || ((minvPip>mLmin) && (minvPip<mLmax)) )
temp = false;
}
if (fSwitchPassFail)
{
if (!temp) {
temp = AliFemtoShareQualityPairCut::Pass(pair);
if (temp) {fNPairsPassed++;}
else fNPairsFailed++;
return temp;
}
else
{
fNPairsFailed++;
return false;
}
}
else
{
if (temp) {
temp = AliFemtoShareQualityPairCut::Pass(pair);
if (temp) {fNPairsPassed++;}
else fNPairsFailed++;
return temp;
}
else
{
fNPairsFailed++;
return false;
}
}
}
AliFemtoString AliFemtoPairCutResonances::Report(){
string stemp = "AliFemtoPairCutResonances 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 *AliFemtoPairCutResonances::ListSettings()
{
TList *tListSetttings = AliFemtoShareQualityPairCut::ListSettings();
char buf[200];
snprintf(buf, 200, "AliFemtoPairCutResonances.maxeeminv=%f", fMaxEEMinv);
snprintf(buf, 200, "AliFemtoPairCutResonances.maxdtheta=%f", fMaxDTheta);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
void AliFemtoPairCutResonances::SetMaxEEMinv(Double_t maxeeminv)
{
fMaxEEMinv = maxeeminv;
}
void AliFemtoPairCutResonances::SetMaxThetaDiff(Double_t maxdtheta)
{
fMaxDTheta = maxdtheta;
}
void AliFemtoPairCutResonances::SetDataType(AliFemtoDataType type)
{
fDataType = type;
}
void AliFemtoPairCutResonances::SetChooseResonances(bool onlyResonances)
{
fSwitchPassFail = onlyResonances;
}
AliFemtoPairCutResonances.cxx:1 AliFemtoPairCutResonances.cxx:2 AliFemtoPairCutResonances.cxx:3 AliFemtoPairCutResonances.cxx:4 AliFemtoPairCutResonances.cxx:5 AliFemtoPairCutResonances.cxx:6 AliFemtoPairCutResonances.cxx:7 AliFemtoPairCutResonances.cxx:8 AliFemtoPairCutResonances.cxx:9 AliFemtoPairCutResonances.cxx:10 AliFemtoPairCutResonances.cxx:11 AliFemtoPairCutResonances.cxx:12 AliFemtoPairCutResonances.cxx:13 AliFemtoPairCutResonances.cxx:14 AliFemtoPairCutResonances.cxx:15 AliFemtoPairCutResonances.cxx:16 AliFemtoPairCutResonances.cxx:17 AliFemtoPairCutResonances.cxx:18 AliFemtoPairCutResonances.cxx:19 AliFemtoPairCutResonances.cxx:20 AliFemtoPairCutResonances.cxx:21 AliFemtoPairCutResonances.cxx:22 AliFemtoPairCutResonances.cxx:23 AliFemtoPairCutResonances.cxx:24 AliFemtoPairCutResonances.cxx:25 AliFemtoPairCutResonances.cxx:26 AliFemtoPairCutResonances.cxx:27 AliFemtoPairCutResonances.cxx:28 AliFemtoPairCutResonances.cxx:29 AliFemtoPairCutResonances.cxx:30 AliFemtoPairCutResonances.cxx:31 AliFemtoPairCutResonances.cxx:32 AliFemtoPairCutResonances.cxx:33 AliFemtoPairCutResonances.cxx:34 AliFemtoPairCutResonances.cxx:35 AliFemtoPairCutResonances.cxx:36 AliFemtoPairCutResonances.cxx:37 AliFemtoPairCutResonances.cxx:38 AliFemtoPairCutResonances.cxx:39 AliFemtoPairCutResonances.cxx:40 AliFemtoPairCutResonances.cxx:41 AliFemtoPairCutResonances.cxx:42 AliFemtoPairCutResonances.cxx:43 AliFemtoPairCutResonances.cxx:44 AliFemtoPairCutResonances.cxx:45 AliFemtoPairCutResonances.cxx:46 AliFemtoPairCutResonances.cxx:47 AliFemtoPairCutResonances.cxx:48 AliFemtoPairCutResonances.cxx:49 AliFemtoPairCutResonances.cxx:50 AliFemtoPairCutResonances.cxx:51 AliFemtoPairCutResonances.cxx:52 AliFemtoPairCutResonances.cxx:53 AliFemtoPairCutResonances.cxx:54 AliFemtoPairCutResonances.cxx:55 AliFemtoPairCutResonances.cxx:56 AliFemtoPairCutResonances.cxx:57 AliFemtoPairCutResonances.cxx:58 AliFemtoPairCutResonances.cxx:59 AliFemtoPairCutResonances.cxx:60 AliFemtoPairCutResonances.cxx:61 AliFemtoPairCutResonances.cxx:62 AliFemtoPairCutResonances.cxx:63 AliFemtoPairCutResonances.cxx:64 AliFemtoPairCutResonances.cxx:65 AliFemtoPairCutResonances.cxx:66 AliFemtoPairCutResonances.cxx:67 AliFemtoPairCutResonances.cxx:68 AliFemtoPairCutResonances.cxx:69 AliFemtoPairCutResonances.cxx:70 AliFemtoPairCutResonances.cxx:71 AliFemtoPairCutResonances.cxx:72 AliFemtoPairCutResonances.cxx:73 AliFemtoPairCutResonances.cxx:74 AliFemtoPairCutResonances.cxx:75 AliFemtoPairCutResonances.cxx:76 AliFemtoPairCutResonances.cxx:77 AliFemtoPairCutResonances.cxx:78 AliFemtoPairCutResonances.cxx:79 AliFemtoPairCutResonances.cxx:80 AliFemtoPairCutResonances.cxx:81 AliFemtoPairCutResonances.cxx:82 AliFemtoPairCutResonances.cxx:83 AliFemtoPairCutResonances.cxx:84 AliFemtoPairCutResonances.cxx:85 AliFemtoPairCutResonances.cxx:86 AliFemtoPairCutResonances.cxx:87 AliFemtoPairCutResonances.cxx:88 AliFemtoPairCutResonances.cxx:89 AliFemtoPairCutResonances.cxx:90 AliFemtoPairCutResonances.cxx:91 AliFemtoPairCutResonances.cxx:92 AliFemtoPairCutResonances.cxx:93 AliFemtoPairCutResonances.cxx:94 AliFemtoPairCutResonances.cxx:95 AliFemtoPairCutResonances.cxx:96 AliFemtoPairCutResonances.cxx:97 AliFemtoPairCutResonances.cxx:98 AliFemtoPairCutResonances.cxx:99 AliFemtoPairCutResonances.cxx:100 AliFemtoPairCutResonances.cxx:101 AliFemtoPairCutResonances.cxx:102 AliFemtoPairCutResonances.cxx:103 AliFemtoPairCutResonances.cxx:104 AliFemtoPairCutResonances.cxx:105 AliFemtoPairCutResonances.cxx:106 AliFemtoPairCutResonances.cxx:107 AliFemtoPairCutResonances.cxx:108 AliFemtoPairCutResonances.cxx:109 AliFemtoPairCutResonances.cxx:110 AliFemtoPairCutResonances.cxx:111 AliFemtoPairCutResonances.cxx:112 AliFemtoPairCutResonances.cxx:113 AliFemtoPairCutResonances.cxx:114 AliFemtoPairCutResonances.cxx:115 AliFemtoPairCutResonances.cxx:116 AliFemtoPairCutResonances.cxx:117 AliFemtoPairCutResonances.cxx:118 AliFemtoPairCutResonances.cxx:119 AliFemtoPairCutResonances.cxx:120 AliFemtoPairCutResonances.cxx:121 AliFemtoPairCutResonances.cxx:122 AliFemtoPairCutResonances.cxx:123 AliFemtoPairCutResonances.cxx:124 AliFemtoPairCutResonances.cxx:125 AliFemtoPairCutResonances.cxx:126 AliFemtoPairCutResonances.cxx:127 AliFemtoPairCutResonances.cxx:128 AliFemtoPairCutResonances.cxx:129 AliFemtoPairCutResonances.cxx:130 AliFemtoPairCutResonances.cxx:131 AliFemtoPairCutResonances.cxx:132 AliFemtoPairCutResonances.cxx:133 AliFemtoPairCutResonances.cxx:134 AliFemtoPairCutResonances.cxx:135 AliFemtoPairCutResonances.cxx:136 AliFemtoPairCutResonances.cxx:137 AliFemtoPairCutResonances.cxx:138 AliFemtoPairCutResonances.cxx:139 AliFemtoPairCutResonances.cxx:140 AliFemtoPairCutResonances.cxx:141 AliFemtoPairCutResonances.cxx:142 AliFemtoPairCutResonances.cxx:143 AliFemtoPairCutResonances.cxx:144 AliFemtoPairCutResonances.cxx:145 AliFemtoPairCutResonances.cxx:146 AliFemtoPairCutResonances.cxx:147 AliFemtoPairCutResonances.cxx:148 AliFemtoPairCutResonances.cxx:149 AliFemtoPairCutResonances.cxx:150 AliFemtoPairCutResonances.cxx:151 AliFemtoPairCutResonances.cxx:152 AliFemtoPairCutResonances.cxx:153 AliFemtoPairCutResonances.cxx:154 AliFemtoPairCutResonances.cxx:155 AliFemtoPairCutResonances.cxx:156 AliFemtoPairCutResonances.cxx:157 AliFemtoPairCutResonances.cxx:158 AliFemtoPairCutResonances.cxx:159 AliFemtoPairCutResonances.cxx:160 AliFemtoPairCutResonances.cxx:161 AliFemtoPairCutResonances.cxx:162 AliFemtoPairCutResonances.cxx:163 AliFemtoPairCutResonances.cxx:164 AliFemtoPairCutResonances.cxx:165 AliFemtoPairCutResonances.cxx:166 AliFemtoPairCutResonances.cxx:167 AliFemtoPairCutResonances.cxx:168 AliFemtoPairCutResonances.cxx:169 AliFemtoPairCutResonances.cxx:170 AliFemtoPairCutResonances.cxx:171 AliFemtoPairCutResonances.cxx:172 AliFemtoPairCutResonances.cxx:173 AliFemtoPairCutResonances.cxx:174 AliFemtoPairCutResonances.cxx:175 AliFemtoPairCutResonances.cxx:176 AliFemtoPairCutResonances.cxx:177 AliFemtoPairCutResonances.cxx:178 AliFemtoPairCutResonances.cxx:179 AliFemtoPairCutResonances.cxx:180 AliFemtoPairCutResonances.cxx:181 AliFemtoPairCutResonances.cxx:182 AliFemtoPairCutResonances.cxx:183 AliFemtoPairCutResonances.cxx:184 AliFemtoPairCutResonances.cxx:185 AliFemtoPairCutResonances.cxx:186 AliFemtoPairCutResonances.cxx:187 AliFemtoPairCutResonances.cxx:188 AliFemtoPairCutResonances.cxx:189