#include "AliFemtoPairCutRadialDistance.h"
#include <string>
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoPairCutRadialDistance)
#endif
AliFemtoPairCutRadialDistance::AliFemtoPairCutRadialDistance():
AliFemtoPairCutAntiGamma(),
fDPhiStarMin(0),
fEtaMin(0),
fMinRad(0.8),
fMaxRad(2.5),
fMagSign(1),
fPhistarmin(kTRUE)
{
}
AliFemtoPairCutRadialDistance::AliFemtoPairCutRadialDistance(const AliFemtoPairCutRadialDistance& c) :
AliFemtoPairCutAntiGamma(c),
fDPhiStarMin(0),
fEtaMin(0),
fMinRad(0.8),
fMaxRad(2.5),
fMagSign(1),
fPhistarmin(kTRUE)
{
fDPhiStarMin = c.fDPhiStarMin;
fEtaMin = c.fEtaMin;
fMinRad = c.fMinRad;
fMaxRad = c.fMaxRad;
fMagSign = c.fMagSign;
fPhistarmin = c.fPhistarmin;
}
AliFemtoPairCutRadialDistance::~AliFemtoPairCutRadialDistance(){
}
AliFemtoPairCutRadialDistance& AliFemtoPairCutRadialDistance::operator=(const AliFemtoPairCutRadialDistance& c)
{
if (this != &c) {
fDPhiStarMin = c.fDPhiStarMin;
fEtaMin = c.fEtaMin;
fMinRad = c.fMinRad;
fMaxRad = c.fMaxRad;
fMagSign = c.fMagSign;
fPhistarmin = c.fPhistarmin;
}
return *this;
}
bool AliFemtoPairCutRadialDistance::Pass(const AliFemtoPair* pair){
double phi1 = pair->Track1()->Track()->P().Phi();
double phi2 = pair->Track2()->Track()->P().Phi();
double chg1 = pair->Track1()->Track()->Charge();
double chg2 = pair->Track2()->Track()->Charge();
double ptv1 = pair->Track1()->Track()->Pt();
double ptv2 = pair->Track2()->Track()->Pt();
double eta1 = pair->Track1()->Track()->P().PseudoRapidity();
double eta2 = pair->Track2()->Track()->P().PseudoRapidity();
AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
Double_t magsign = 0.0;
if (!aodH) {
return false;
}
else {
AliAODEvent *fAOD;
fAOD = aodH->GetEvent();
magsign = fAOD->GetMagneticField();
}
if (magsign > 1)
fMagSign = 1;
else if ( magsign < 1)
fMagSign = -1;
else
fMagSign = magsign;
Double_t rad;
Bool_t pass5 = kTRUE;
rad = fMinRad;
if (fPhistarmin) {
for (rad = fMinRad; rad < fMaxRad; rad += 0.01) {
Double_t dps = (phi2-phi1+(TMath::ASin(-0.075*chg2*fMagSign*rad/ptv2))-(TMath::ASin(-0.075*chg1*fMagSign*rad/ptv1)));
dps = TVector2::Phi_mpi_pi(dps);
Double_t etad = eta2 - eta1;
if (fabs(etad)<fEtaMin && fabs(dps)<fDPhiStarMin) {
pass5 = kFALSE;
break;
}
}
}
else {
double afsi0b = 0.07510020733*chg1*fMagSign*rad/ptv1;
double afsi1b = 0.07510020733*chg2*fMagSign*rad/ptv2;
if (fabs(afsi0b) >=1.) return kTRUE;
if (fabs(afsi1b) >=1.) return kTRUE;
Double_t dps = phi2 - phi1 + TMath::ASin(afsi1b) - TMath::ASin(afsi0b);
dps = TVector2::Phi_mpi_pi(dps);
Double_t etad = eta2 - eta1;
if (fabs(etad)<fEtaMin && fabs(dps)<fDPhiStarMin) {
pass5 = kFALSE;
}
}
if (pass5) {
pass5 = AliFemtoPairCutAntiGamma::Pass(pair);
}
else {
fNPairsFailed++;
}
return pass5;
}
AliFemtoString AliFemtoPairCutRadialDistance::Report(){
string stemp = "AliFemtoRadialDistance Pair Cut - remove shared and split pairs and pairs with small separation at the specified radius\n"; char ctemp[100];
snprintf(ctemp , 100, "Accept pair with separation more that %f",fDPhiStarMin);
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 *AliFemtoPairCutRadialDistance::ListSettings()
{
TList *tListSetttings = AliFemtoPairCutAntiGamma::ListSettings();
char buf[200];
snprintf(buf, 200, "AliFemtoPairCutRadialDistance.phistarsepmin=%f", fDPhiStarMin);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
void AliFemtoPairCutRadialDistance::SetPhiStarDifferenceMinimum(double dtpc)
{
fDPhiStarMin = dtpc;
}
void AliFemtoPairCutRadialDistance::SetEtaDifferenceMinimum(double etpc)
{
fEtaMin = etpc;
}
void AliFemtoPairCutRadialDistance::SetMinimumRadius(double minrad)
{
fMinRad = minrad;
}
void AliFemtoPairCutRadialDistance::SetMaximumRadius(double maxrad)
{
fMaxRad = maxrad;
}
void AliFemtoPairCutRadialDistance::SetMagneticFieldSign(int magsign)
{
if(magsign>1) fMagSign = 1;
else if(magsign<1) fMagSign = -1;
else fMagSign = magsign;
}
void AliFemtoPairCutRadialDistance::SetPhiStarMin(Bool_t phistarmin)
{
fPhistarmin = phistarmin;
}
AliFemtoPairCutRadialDistance.cxx:1 AliFemtoPairCutRadialDistance.cxx:2 AliFemtoPairCutRadialDistance.cxx:3 AliFemtoPairCutRadialDistance.cxx:4 AliFemtoPairCutRadialDistance.cxx:5 AliFemtoPairCutRadialDistance.cxx:6 AliFemtoPairCutRadialDistance.cxx:7 AliFemtoPairCutRadialDistance.cxx:8 AliFemtoPairCutRadialDistance.cxx:9 AliFemtoPairCutRadialDistance.cxx:10 AliFemtoPairCutRadialDistance.cxx:11 AliFemtoPairCutRadialDistance.cxx:12 AliFemtoPairCutRadialDistance.cxx:13 AliFemtoPairCutRadialDistance.cxx:14 AliFemtoPairCutRadialDistance.cxx:15 AliFemtoPairCutRadialDistance.cxx:16 AliFemtoPairCutRadialDistance.cxx:17 AliFemtoPairCutRadialDistance.cxx:18 AliFemtoPairCutRadialDistance.cxx:19 AliFemtoPairCutRadialDistance.cxx:20 AliFemtoPairCutRadialDistance.cxx:21 AliFemtoPairCutRadialDistance.cxx:22 AliFemtoPairCutRadialDistance.cxx:23 AliFemtoPairCutRadialDistance.cxx:24 AliFemtoPairCutRadialDistance.cxx:25 AliFemtoPairCutRadialDistance.cxx:26 AliFemtoPairCutRadialDistance.cxx:27 AliFemtoPairCutRadialDistance.cxx:28 AliFemtoPairCutRadialDistance.cxx:29 AliFemtoPairCutRadialDistance.cxx:30 AliFemtoPairCutRadialDistance.cxx:31 AliFemtoPairCutRadialDistance.cxx:32 AliFemtoPairCutRadialDistance.cxx:33 AliFemtoPairCutRadialDistance.cxx:34 AliFemtoPairCutRadialDistance.cxx:35 AliFemtoPairCutRadialDistance.cxx:36 AliFemtoPairCutRadialDistance.cxx:37 AliFemtoPairCutRadialDistance.cxx:38 AliFemtoPairCutRadialDistance.cxx:39 AliFemtoPairCutRadialDistance.cxx:40 AliFemtoPairCutRadialDistance.cxx:41 AliFemtoPairCutRadialDistance.cxx:42 AliFemtoPairCutRadialDistance.cxx:43 AliFemtoPairCutRadialDistance.cxx:44 AliFemtoPairCutRadialDistance.cxx:45 AliFemtoPairCutRadialDistance.cxx:46 AliFemtoPairCutRadialDistance.cxx:47 AliFemtoPairCutRadialDistance.cxx:48 AliFemtoPairCutRadialDistance.cxx:49 AliFemtoPairCutRadialDistance.cxx:50 AliFemtoPairCutRadialDistance.cxx:51 AliFemtoPairCutRadialDistance.cxx:52 AliFemtoPairCutRadialDistance.cxx:53 AliFemtoPairCutRadialDistance.cxx:54 AliFemtoPairCutRadialDistance.cxx:55 AliFemtoPairCutRadialDistance.cxx:56 AliFemtoPairCutRadialDistance.cxx:57 AliFemtoPairCutRadialDistance.cxx:58 AliFemtoPairCutRadialDistance.cxx:59 AliFemtoPairCutRadialDistance.cxx:60 AliFemtoPairCutRadialDistance.cxx:61 AliFemtoPairCutRadialDistance.cxx:62 AliFemtoPairCutRadialDistance.cxx:63 AliFemtoPairCutRadialDistance.cxx:64 AliFemtoPairCutRadialDistance.cxx:65 AliFemtoPairCutRadialDistance.cxx:66 AliFemtoPairCutRadialDistance.cxx:67 AliFemtoPairCutRadialDistance.cxx:68 AliFemtoPairCutRadialDistance.cxx:69 AliFemtoPairCutRadialDistance.cxx:70 AliFemtoPairCutRadialDistance.cxx:71 AliFemtoPairCutRadialDistance.cxx:72 AliFemtoPairCutRadialDistance.cxx:73 AliFemtoPairCutRadialDistance.cxx:74 AliFemtoPairCutRadialDistance.cxx:75 AliFemtoPairCutRadialDistance.cxx:76 AliFemtoPairCutRadialDistance.cxx:77 AliFemtoPairCutRadialDistance.cxx:78 AliFemtoPairCutRadialDistance.cxx:79 AliFemtoPairCutRadialDistance.cxx:80 AliFemtoPairCutRadialDistance.cxx:81 AliFemtoPairCutRadialDistance.cxx:82 AliFemtoPairCutRadialDistance.cxx:83 AliFemtoPairCutRadialDistance.cxx:84 AliFemtoPairCutRadialDistance.cxx:85 AliFemtoPairCutRadialDistance.cxx:86 AliFemtoPairCutRadialDistance.cxx:87 AliFemtoPairCutRadialDistance.cxx:88 AliFemtoPairCutRadialDistance.cxx:89 AliFemtoPairCutRadialDistance.cxx:90 AliFemtoPairCutRadialDistance.cxx:91 AliFemtoPairCutRadialDistance.cxx:92 AliFemtoPairCutRadialDistance.cxx:93 AliFemtoPairCutRadialDistance.cxx:94 AliFemtoPairCutRadialDistance.cxx:95 AliFemtoPairCutRadialDistance.cxx:96 AliFemtoPairCutRadialDistance.cxx:97 AliFemtoPairCutRadialDistance.cxx:98 AliFemtoPairCutRadialDistance.cxx:99 AliFemtoPairCutRadialDistance.cxx:100 AliFemtoPairCutRadialDistance.cxx:101 AliFemtoPairCutRadialDistance.cxx:102 AliFemtoPairCutRadialDistance.cxx:103 AliFemtoPairCutRadialDistance.cxx:104 AliFemtoPairCutRadialDistance.cxx:105 AliFemtoPairCutRadialDistance.cxx:106 AliFemtoPairCutRadialDistance.cxx:107 AliFemtoPairCutRadialDistance.cxx:108 AliFemtoPairCutRadialDistance.cxx:109 AliFemtoPairCutRadialDistance.cxx:110 AliFemtoPairCutRadialDistance.cxx:111 AliFemtoPairCutRadialDistance.cxx:112 AliFemtoPairCutRadialDistance.cxx:113 AliFemtoPairCutRadialDistance.cxx:114 AliFemtoPairCutRadialDistance.cxx:115 AliFemtoPairCutRadialDistance.cxx:116 AliFemtoPairCutRadialDistance.cxx:117 AliFemtoPairCutRadialDistance.cxx:118 AliFemtoPairCutRadialDistance.cxx:119 AliFemtoPairCutRadialDistance.cxx:120 AliFemtoPairCutRadialDistance.cxx:121 AliFemtoPairCutRadialDistance.cxx:122 AliFemtoPairCutRadialDistance.cxx:123 AliFemtoPairCutRadialDistance.cxx:124 AliFemtoPairCutRadialDistance.cxx:125 AliFemtoPairCutRadialDistance.cxx:126 AliFemtoPairCutRadialDistance.cxx:127 AliFemtoPairCutRadialDistance.cxx:128 AliFemtoPairCutRadialDistance.cxx:129 AliFemtoPairCutRadialDistance.cxx:130 AliFemtoPairCutRadialDistance.cxx:131 AliFemtoPairCutRadialDistance.cxx:132 AliFemtoPairCutRadialDistance.cxx:133 AliFemtoPairCutRadialDistance.cxx:134 AliFemtoPairCutRadialDistance.cxx:135 AliFemtoPairCutRadialDistance.cxx:136 AliFemtoPairCutRadialDistance.cxx:137 AliFemtoPairCutRadialDistance.cxx:138 AliFemtoPairCutRadialDistance.cxx:139 AliFemtoPairCutRadialDistance.cxx:140 AliFemtoPairCutRadialDistance.cxx:141 AliFemtoPairCutRadialDistance.cxx:142 AliFemtoPairCutRadialDistance.cxx:143 AliFemtoPairCutRadialDistance.cxx:144 AliFemtoPairCutRadialDistance.cxx:145 AliFemtoPairCutRadialDistance.cxx:146 AliFemtoPairCutRadialDistance.cxx:147 AliFemtoPairCutRadialDistance.cxx:148 AliFemtoPairCutRadialDistance.cxx:149 AliFemtoPairCutRadialDistance.cxx:150 AliFemtoPairCutRadialDistance.cxx:151 AliFemtoPairCutRadialDistance.cxx:152 AliFemtoPairCutRadialDistance.cxx:153 AliFemtoPairCutRadialDistance.cxx:154 AliFemtoPairCutRadialDistance.cxx:155 AliFemtoPairCutRadialDistance.cxx:156 AliFemtoPairCutRadialDistance.cxx:157 AliFemtoPairCutRadialDistance.cxx:158 AliFemtoPairCutRadialDistance.cxx:159 AliFemtoPairCutRadialDistance.cxx:160 AliFemtoPairCutRadialDistance.cxx:161 AliFemtoPairCutRadialDistance.cxx:162 AliFemtoPairCutRadialDistance.cxx:163 AliFemtoPairCutRadialDistance.cxx:164 AliFemtoPairCutRadialDistance.cxx:165 AliFemtoPairCutRadialDistance.cxx:166 AliFemtoPairCutRadialDistance.cxx:167 AliFemtoPairCutRadialDistance.cxx:168 AliFemtoPairCutRadialDistance.cxx:169 AliFemtoPairCutRadialDistance.cxx:170 AliFemtoPairCutRadialDistance.cxx:171 AliFemtoPairCutRadialDistance.cxx:172 AliFemtoPairCutRadialDistance.cxx:173 AliFemtoPairCutRadialDistance.cxx:174 AliFemtoPairCutRadialDistance.cxx:175 AliFemtoPairCutRadialDistance.cxx:176 AliFemtoPairCutRadialDistance.cxx:177 AliFemtoPairCutRadialDistance.cxx:178 AliFemtoPairCutRadialDistance.cxx:179 AliFemtoPairCutRadialDistance.cxx:180 AliFemtoPairCutRadialDistance.cxx:181 AliFemtoPairCutRadialDistance.cxx:182 AliFemtoPairCutRadialDistance.cxx:183 AliFemtoPairCutRadialDistance.cxx:184 AliFemtoPairCutRadialDistance.cxx:185 AliFemtoPairCutRadialDistance.cxx:186 AliFemtoPairCutRadialDistance.cxx:187 AliFemtoPairCutRadialDistance.cxx:188 AliFemtoPairCutRadialDistance.cxx:189 AliFemtoPairCutRadialDistance.cxx:190 AliFemtoPairCutRadialDistance.cxx:191 AliFemtoPairCutRadialDistance.cxx:192 AliFemtoPairCutRadialDistance.cxx:193 AliFemtoPairCutRadialDistance.cxx:194 AliFemtoPairCutRadialDistance.cxx:195 AliFemtoPairCutRadialDistance.cxx:196 AliFemtoPairCutRadialDistance.cxx:197 AliFemtoPairCutRadialDistance.cxx:198 AliFemtoPairCutRadialDistance.cxx:199 AliFemtoPairCutRadialDistance.cxx:200 AliFemtoPairCutRadialDistance.cxx:201 AliFemtoPairCutRadialDistance.cxx:202 AliFemtoPairCutRadialDistance.cxx:203 AliFemtoPairCutRadialDistance.cxx:204 AliFemtoPairCutRadialDistance.cxx:205 AliFemtoPairCutRadialDistance.cxx:206 AliFemtoPairCutRadialDistance.cxx:207 AliFemtoPairCutRadialDistance.cxx:208 AliFemtoPairCutRadialDistance.cxx:209 AliFemtoPairCutRadialDistance.cxx:210 AliFemtoPairCutRadialDistance.cxx:211 AliFemtoPairCutRadialDistance.cxx:212