#include "AliFemtoShareQualityPairCut.h"
#include <string>
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoShareQualityPairCut)
#endif
AliFemtoShareQualityPairCut::AliFemtoShareQualityPairCut():
fNPairsPassed(0),
fNPairsFailed(0),
fShareQualityMax(1.0),
fShareFractionMax(1.0),
fRemoveSameLabel(0)
{
}
AliFemtoShareQualityPairCut::~AliFemtoShareQualityPairCut(){
}
AliFemtoShareQualityPairCut& AliFemtoShareQualityPairCut::operator=(const AliFemtoShareQualityPairCut& cut)
{
if (this != &cut) {
AliFemtoPairCut::operator=(cut);
fNPairsPassed = 0;
fNPairsFailed = 0;
fShareQualityMax = cut.fShareQualityMax;
fShareFractionMax = cut.fShareFractionMax;
fRemoveSameLabel = cut.fRemoveSameLabel;
}
return *this;
}
bool AliFemtoShareQualityPairCut::Pass(const AliFemtoPair* pair){
bool temp;
Int_t nh = 0;
Int_t an = 0;
Int_t ns = 0;
if ((fShareFractionMax >= 1.0) && ( fShareQualityMax >= 1.0)) {
temp = true;
}
else {
for (unsigned int imap=0; imap<pair->Track1()->Track()->TPCclusters().GetNbits(); imap++) {
if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap) &&
pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
if (pair->Track1()->Track()->TPCsharing().TestBitNumber(imap) &&
pair->Track2()->Track()->TPCsharing().TestBitNumber(imap))
{
an++;
nh+=2;
ns+=2;
}
else {
an--;
nh+=2;
}
}
else if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap) ||
pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
an++;
nh++;
}
}
Float_t hsmval = 0.0;
Float_t hsfval = 0.0;
if (nh >0) {
hsmval = an*1.0/nh;
hsfval = ns*1.0/nh;
}
if( (fShareQualityMax < 1) && (fShareFractionMax < 1) )
temp = (hsmval < fShareQualityMax) && (hsfval < fShareFractionMax);
else if (fShareQualityMax < 1)
temp = (hsmval < fShareQualityMax);
else if (fShareFractionMax < 1)
temp = (hsmval < fShareFractionMax);
else temp = false;
}
if (fRemoveSameLabel) {
if (abs(pair->Track1()->Track()->Label()) == abs(pair->Track2()->Track()->Label())) {
temp = kFALSE;
}
}
temp ? fNPairsPassed++ : fNPairsFailed++;
return temp;
}
AliFemtoString AliFemtoShareQualityPairCut::Report(){
string stemp = "AliFemtoShareQuality Pair Cut - remove shared and split pairs\n"; char ctemp[100];
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;}
void AliFemtoShareQualityPairCut::SetShareQualityMax(Double_t aShareQualityMax) {
fShareQualityMax = aShareQualityMax;
}
Double_t AliFemtoShareQualityPairCut::GetAliFemtoShareQualityMax() const {
return fShareQualityMax;
}
void AliFemtoShareQualityPairCut::SetShareFractionMax(Double_t aShareFractionMax) {
fShareFractionMax = aShareFractionMax;
}
Double_t AliFemtoShareQualityPairCut::GetAliFemtoShareFractionMax() const {
return fShareFractionMax;
}
TList *AliFemtoShareQualityPairCut::ListSettings()
{
TList *tListSetttings = new TList();
char buf[200];
snprintf(buf, 200, "AliFemtoShareQualityPairCut.sharequalitymax=%f", fShareQualityMax);
snprintf(buf, 200, "AliFemtoShareQualityPairCut.sharefractionmax=%f", fShareFractionMax);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
void AliFemtoShareQualityPairCut::SetRemoveSameLabel(Bool_t aRemove)
{
fRemoveSameLabel = aRemove;
}
AliFemtoShareQualityPairCut.cxx:1 AliFemtoShareQualityPairCut.cxx:2 AliFemtoShareQualityPairCut.cxx:3 AliFemtoShareQualityPairCut.cxx:4 AliFemtoShareQualityPairCut.cxx:5 AliFemtoShareQualityPairCut.cxx:6 AliFemtoShareQualityPairCut.cxx:7 AliFemtoShareQualityPairCut.cxx:8 AliFemtoShareQualityPairCut.cxx:9 AliFemtoShareQualityPairCut.cxx:10 AliFemtoShareQualityPairCut.cxx:11 AliFemtoShareQualityPairCut.cxx:12 AliFemtoShareQualityPairCut.cxx:13 AliFemtoShareQualityPairCut.cxx:14 AliFemtoShareQualityPairCut.cxx:15 AliFemtoShareQualityPairCut.cxx:16 AliFemtoShareQualityPairCut.cxx:17 AliFemtoShareQualityPairCut.cxx:18 AliFemtoShareQualityPairCut.cxx:19 AliFemtoShareQualityPairCut.cxx:20 AliFemtoShareQualityPairCut.cxx:21 AliFemtoShareQualityPairCut.cxx:22 AliFemtoShareQualityPairCut.cxx:23 AliFemtoShareQualityPairCut.cxx:24 AliFemtoShareQualityPairCut.cxx:25 AliFemtoShareQualityPairCut.cxx:26 AliFemtoShareQualityPairCut.cxx:27 AliFemtoShareQualityPairCut.cxx:28 AliFemtoShareQualityPairCut.cxx:29 AliFemtoShareQualityPairCut.cxx:30 AliFemtoShareQualityPairCut.cxx:31 AliFemtoShareQualityPairCut.cxx:32 AliFemtoShareQualityPairCut.cxx:33 AliFemtoShareQualityPairCut.cxx:34 AliFemtoShareQualityPairCut.cxx:35 AliFemtoShareQualityPairCut.cxx:36 AliFemtoShareQualityPairCut.cxx:37 AliFemtoShareQualityPairCut.cxx:38 AliFemtoShareQualityPairCut.cxx:39 AliFemtoShareQualityPairCut.cxx:40 AliFemtoShareQualityPairCut.cxx:41 AliFemtoShareQualityPairCut.cxx:42 AliFemtoShareQualityPairCut.cxx:43 AliFemtoShareQualityPairCut.cxx:44 AliFemtoShareQualityPairCut.cxx:45 AliFemtoShareQualityPairCut.cxx:46 AliFemtoShareQualityPairCut.cxx:47 AliFemtoShareQualityPairCut.cxx:48 AliFemtoShareQualityPairCut.cxx:49 AliFemtoShareQualityPairCut.cxx:50 AliFemtoShareQualityPairCut.cxx:51 AliFemtoShareQualityPairCut.cxx:52 AliFemtoShareQualityPairCut.cxx:53 AliFemtoShareQualityPairCut.cxx:54 AliFemtoShareQualityPairCut.cxx:55 AliFemtoShareQualityPairCut.cxx:56 AliFemtoShareQualityPairCut.cxx:57 AliFemtoShareQualityPairCut.cxx:58 AliFemtoShareQualityPairCut.cxx:59 AliFemtoShareQualityPairCut.cxx:60 AliFemtoShareQualityPairCut.cxx:61 AliFemtoShareQualityPairCut.cxx:62 AliFemtoShareQualityPairCut.cxx:63 AliFemtoShareQualityPairCut.cxx:64 AliFemtoShareQualityPairCut.cxx:65 AliFemtoShareQualityPairCut.cxx:66 AliFemtoShareQualityPairCut.cxx:67 AliFemtoShareQualityPairCut.cxx:68 AliFemtoShareQualityPairCut.cxx:69 AliFemtoShareQualityPairCut.cxx:70 AliFemtoShareQualityPairCut.cxx:71 AliFemtoShareQualityPairCut.cxx:72 AliFemtoShareQualityPairCut.cxx:73 AliFemtoShareQualityPairCut.cxx:74 AliFemtoShareQualityPairCut.cxx:75 AliFemtoShareQualityPairCut.cxx:76 AliFemtoShareQualityPairCut.cxx:77 AliFemtoShareQualityPairCut.cxx:78 AliFemtoShareQualityPairCut.cxx:79 AliFemtoShareQualityPairCut.cxx:80 AliFemtoShareQualityPairCut.cxx:81 AliFemtoShareQualityPairCut.cxx:82 AliFemtoShareQualityPairCut.cxx:83 AliFemtoShareQualityPairCut.cxx:84 AliFemtoShareQualityPairCut.cxx:85 AliFemtoShareQualityPairCut.cxx:86 AliFemtoShareQualityPairCut.cxx:87 AliFemtoShareQualityPairCut.cxx:88 AliFemtoShareQualityPairCut.cxx:89 AliFemtoShareQualityPairCut.cxx:90 AliFemtoShareQualityPairCut.cxx:91 AliFemtoShareQualityPairCut.cxx:92 AliFemtoShareQualityPairCut.cxx:93 AliFemtoShareQualityPairCut.cxx:94 AliFemtoShareQualityPairCut.cxx:95 AliFemtoShareQualityPairCut.cxx:96 AliFemtoShareQualityPairCut.cxx:97 AliFemtoShareQualityPairCut.cxx:98 AliFemtoShareQualityPairCut.cxx:99 AliFemtoShareQualityPairCut.cxx:100 AliFemtoShareQualityPairCut.cxx:101 AliFemtoShareQualityPairCut.cxx:102 AliFemtoShareQualityPairCut.cxx:103 AliFemtoShareQualityPairCut.cxx:104 AliFemtoShareQualityPairCut.cxx:105 AliFemtoShareQualityPairCut.cxx:106 AliFemtoShareQualityPairCut.cxx:107 AliFemtoShareQualityPairCut.cxx:108 AliFemtoShareQualityPairCut.cxx:109 AliFemtoShareQualityPairCut.cxx:110 AliFemtoShareQualityPairCut.cxx:111 AliFemtoShareQualityPairCut.cxx:112 AliFemtoShareQualityPairCut.cxx:113 AliFemtoShareQualityPairCut.cxx:114 AliFemtoShareQualityPairCut.cxx:115 AliFemtoShareQualityPairCut.cxx:116 AliFemtoShareQualityPairCut.cxx:117 AliFemtoShareQualityPairCut.cxx:118 AliFemtoShareQualityPairCut.cxx:119 AliFemtoShareQualityPairCut.cxx:120 AliFemtoShareQualityPairCut.cxx:121 AliFemtoShareQualityPairCut.cxx:122 AliFemtoShareQualityPairCut.cxx:123 AliFemtoShareQualityPairCut.cxx:124 AliFemtoShareQualityPairCut.cxx:125 AliFemtoShareQualityPairCut.cxx:126 AliFemtoShareQualityPairCut.cxx:127 AliFemtoShareQualityPairCut.cxx:128 AliFemtoShareQualityPairCut.cxx:129 AliFemtoShareQualityPairCut.cxx:130 AliFemtoShareQualityPairCut.cxx:131 AliFemtoShareQualityPairCut.cxx:132 AliFemtoShareQualityPairCut.cxx:133 AliFemtoShareQualityPairCut.cxx:134 AliFemtoShareQualityPairCut.cxx:135 AliFemtoShareQualityPairCut.cxx:136 AliFemtoShareQualityPairCut.cxx:137 AliFemtoShareQualityPairCut.cxx:138 AliFemtoShareQualityPairCut.cxx:139 AliFemtoShareQualityPairCut.cxx:140 AliFemtoShareQualityPairCut.cxx:141 AliFemtoShareQualityPairCut.cxx:142 AliFemtoShareQualityPairCut.cxx:143 AliFemtoShareQualityPairCut.cxx:144 AliFemtoShareQualityPairCut.cxx:145 AliFemtoShareQualityPairCut.cxx:146 AliFemtoShareQualityPairCut.cxx:147 AliFemtoShareQualityPairCut.cxx:148 AliFemtoShareQualityPairCut.cxx:149 AliFemtoShareQualityPairCut.cxx:150 AliFemtoShareQualityPairCut.cxx:151 AliFemtoShareQualityPairCut.cxx:152 AliFemtoShareQualityPairCut.cxx:153 AliFemtoShareQualityPairCut.cxx:154 AliFemtoShareQualityPairCut.cxx:155 AliFemtoShareQualityPairCut.cxx:156 AliFemtoShareQualityPairCut.cxx:157 AliFemtoShareQualityPairCut.cxx:158 AliFemtoShareQualityPairCut.cxx:159 AliFemtoShareQualityPairCut.cxx:160 AliFemtoShareQualityPairCut.cxx:161 AliFemtoShareQualityPairCut.cxx:162 AliFemtoShareQualityPairCut.cxx:163 AliFemtoShareQualityPairCut.cxx:164 AliFemtoShareQualityPairCut.cxx:165 AliFemtoShareQualityPairCut.cxx:166 AliFemtoShareQualityPairCut.cxx:167 AliFemtoShareQualityPairCut.cxx:168 AliFemtoShareQualityPairCut.cxx:169 AliFemtoShareQualityPairCut.cxx:170 AliFemtoShareQualityPairCut.cxx:171 AliFemtoShareQualityPairCut.cxx:172 AliFemtoShareQualityPairCut.cxx:173 AliFemtoShareQualityPairCut.cxx:174 AliFemtoShareQualityPairCut.cxx:175 AliFemtoShareQualityPairCut.cxx:176