#include "AliFemtoShareQualityQAPairCut.h"
#include <string>
#include <cstdio>
#ifdef __ROOT__
ClassImp(AliFemtoShareQualityQAPairCut)
#endif
AliFemtoShareQualityQAPairCut::AliFemtoShareQualityQAPairCut():
fNPairsPassed(0),
fNPairsFailed(0),
fShareQualityMax(1.0),
fShareQualitymin(-0.5),
fShareFractionMax(1.0),
fShareFractionmin(0.0),
fRemoveSameLabel(0),
fShareQualityQASwitch(0),
fShareFractionQASwitch(0)
{
fShareQualityQASwitch = false;
fShareQualityQAExclusionZone[0] = -0.5;
fShareQualityQAExclusionZone[1] = 1.0;
fShareFractionQASwitch = false;
fShareFractionQAExclusionZone[0] = 0.0;
fShareFractionQAExclusionZone[1] = 1.0;
}
AliFemtoShareQualityQAPairCut::~AliFemtoShareQualityQAPairCut(){
}
AliFemtoShareQualityQAPairCut& AliFemtoShareQualityQAPairCut::operator=(const AliFemtoShareQualityQAPairCut& cut)
{
if (this != &cut) {
AliFemtoPairCut::operator=(cut);
fNPairsPassed = 0;
fNPairsFailed = 0;
fShareQualityMax = 1.0;
fShareQualitymin = -0.5;
fShareFractionMax = 1.0;
fShareFractionmin = 0.0;
fRemoveSameLabel = 0;
fShareQualityQASwitch = 0;
fShareFractionQASwitch = 0;
fShareQualityQASwitch = cut.fShareQualityQASwitch;
fShareQualityQAExclusionZone[0] = cut.fShareQualityQAExclusionZone[0];
fShareQualityQAExclusionZone[1] = cut.fShareQualityQAExclusionZone[1];
fShareFractionQASwitch = cut.fShareFractionQASwitch;
fShareFractionQAExclusionZone[0] = cut.fShareFractionQAExclusionZone[0];
fShareFractionQAExclusionZone[1] = cut.fShareFractionQAExclusionZone[1];
}
return *this;
}
bool AliFemtoShareQualityQAPairCut::Pass(const AliFemtoPair* pair){
bool pass;
Int_t nh = 0;
Int_t an = 0;
Int_t ns = 0;
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 (fShareQualityQASwitch) {
pass = (((hsmval >= fShareQualitymin) && (hsmval < fShareQualityQAExclusionZone[0])) ||
((hsmval >= fShareQualityQAExclusionZone[1]) && (hsmval < fShareQualityMax))) &&
(hsfval >= fShareFractionmin) && (hsfval < fShareFractionMax);
}
else if (fShareFractionQASwitch) {
pass = (((hsfval >= fShareFractionmin) && (hsfval < fShareFractionQAExclusionZone[0])) ||
((hsfval >= fShareFractionQAExclusionZone[1]) && (hsfval < fShareFractionMax))) &&
(hsmval >= fShareQualitymin) && (hsmval < fShareQualityMax);
}
else {
pass = (hsmval >= fShareQualitymin) && (hsmval < fShareQualityMax) &&
(hsfval >= fShareFractionmin) && (hsfval < fShareFractionMax);
}
if (fRemoveSameLabel) {
if (abs(pair->Track1()->Track()->Label()) == abs(pair->Track2()->Track()->Label())) {
cout << "Found a pair with same label " << pair->Track1()->Track()->Label() << endl;
cout << "Quality Sharity Passed " << hsmval << " " << hsfval << " " << pair->QInv() << " " << pass << endl;
pass = kFALSE;
}
}
pass ? fNPairsPassed++ : fNPairsFailed++;
return pass;
}
AliFemtoString AliFemtoShareQualityQAPairCut::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 AliFemtoShareQualityQAPairCut::SetShareQualityMax(Double_t aShareQualityMax) {
fShareQualityMax = aShareQualityMax;
}
void AliFemtoShareQualityQAPairCut::SetShareQualitymin(Double_t aShareQualitymin) {
fShareQualitymin = aShareQualitymin;
}
void AliFemtoShareQualityQAPairCut::SetShareQualityQASwitch(bool aSwitch) {
fShareQualityQASwitch = aSwitch;
}
void AliFemtoShareQualityQAPairCut::SetShareQualityQAExclusionZone(Double_t lo, Double_t hi) {
fShareQualityQAExclusionZone[0] = lo;
fShareQualityQAExclusionZone[1] = hi;
}
Double_t AliFemtoShareQualityQAPairCut::GetAliFemtoShareQualityMax() const {
return fShareQualityMax;
}
void AliFemtoShareQualityQAPairCut::SetShareFractionMax(Double_t aShareFractionMax) {
fShareFractionMax = aShareFractionMax;
}
void AliFemtoShareQualityQAPairCut::SetShareFractionmin(Double_t aShareFractionmin) {
fShareFractionmin = aShareFractionmin;
}
void AliFemtoShareQualityQAPairCut::SetShareFractionQASwitch(bool aSwitch) {
fShareFractionQASwitch = aSwitch;
}
void AliFemtoShareQualityQAPairCut::SetShareFractionQAExclusionZone(Double_t lo, Double_t hi) {
fShareFractionQAExclusionZone[0] = lo;
fShareFractionQAExclusionZone[1] = hi;
}
Double_t AliFemtoShareQualityQAPairCut::GetAliFemtoShareFractionMax() const {
return fShareFractionMax;
}
TList *AliFemtoShareQualityQAPairCut::ListSettings()
{
TList *tListSetttings = new TList();
char buf[200];
snprintf(buf, 200, "AliFemtoShareQualityQAPairCut.sharequalitymax=%f", fShareQualityMax);
snprintf(buf, 200, "AliFemtoShareQualityQAPairCut.sharefractionmax=%f", fShareFractionMax);
tListSetttings->AddLast(new TObjString(buf));
return tListSetttings;
}
void AliFemtoShareQualityQAPairCut::SetRemoveSameLabel(Bool_t aRemove)
{
fRemoveSameLabel = aRemove;
}
AliFemtoShareQualityQAPairCut.cxx:1 AliFemtoShareQualityQAPairCut.cxx:2 AliFemtoShareQualityQAPairCut.cxx:3 AliFemtoShareQualityQAPairCut.cxx:4 AliFemtoShareQualityQAPairCut.cxx:5 AliFemtoShareQualityQAPairCut.cxx:6 AliFemtoShareQualityQAPairCut.cxx:7 AliFemtoShareQualityQAPairCut.cxx:8 AliFemtoShareQualityQAPairCut.cxx:9 AliFemtoShareQualityQAPairCut.cxx:10 AliFemtoShareQualityQAPairCut.cxx:11 AliFemtoShareQualityQAPairCut.cxx:12 AliFemtoShareQualityQAPairCut.cxx:13 AliFemtoShareQualityQAPairCut.cxx:14 AliFemtoShareQualityQAPairCut.cxx:15 AliFemtoShareQualityQAPairCut.cxx:16 AliFemtoShareQualityQAPairCut.cxx:17 AliFemtoShareQualityQAPairCut.cxx:18 AliFemtoShareQualityQAPairCut.cxx:19 AliFemtoShareQualityQAPairCut.cxx:20 AliFemtoShareQualityQAPairCut.cxx:21 AliFemtoShareQualityQAPairCut.cxx:22 AliFemtoShareQualityQAPairCut.cxx:23 AliFemtoShareQualityQAPairCut.cxx:24 AliFemtoShareQualityQAPairCut.cxx:25 AliFemtoShareQualityQAPairCut.cxx:26 AliFemtoShareQualityQAPairCut.cxx:27 AliFemtoShareQualityQAPairCut.cxx:28 AliFemtoShareQualityQAPairCut.cxx:29 AliFemtoShareQualityQAPairCut.cxx:30 AliFemtoShareQualityQAPairCut.cxx:31 AliFemtoShareQualityQAPairCut.cxx:32 AliFemtoShareQualityQAPairCut.cxx:33 AliFemtoShareQualityQAPairCut.cxx:34 AliFemtoShareQualityQAPairCut.cxx:35 AliFemtoShareQualityQAPairCut.cxx:36 AliFemtoShareQualityQAPairCut.cxx:37 AliFemtoShareQualityQAPairCut.cxx:38 AliFemtoShareQualityQAPairCut.cxx:39 AliFemtoShareQualityQAPairCut.cxx:40 AliFemtoShareQualityQAPairCut.cxx:41 AliFemtoShareQualityQAPairCut.cxx:42 AliFemtoShareQualityQAPairCut.cxx:43 AliFemtoShareQualityQAPairCut.cxx:44 AliFemtoShareQualityQAPairCut.cxx:45 AliFemtoShareQualityQAPairCut.cxx:46 AliFemtoShareQualityQAPairCut.cxx:47 AliFemtoShareQualityQAPairCut.cxx:48 AliFemtoShareQualityQAPairCut.cxx:49 AliFemtoShareQualityQAPairCut.cxx:50 AliFemtoShareQualityQAPairCut.cxx:51 AliFemtoShareQualityQAPairCut.cxx:52 AliFemtoShareQualityQAPairCut.cxx:53 AliFemtoShareQualityQAPairCut.cxx:54 AliFemtoShareQualityQAPairCut.cxx:55 AliFemtoShareQualityQAPairCut.cxx:56 AliFemtoShareQualityQAPairCut.cxx:57 AliFemtoShareQualityQAPairCut.cxx:58 AliFemtoShareQualityQAPairCut.cxx:59 AliFemtoShareQualityQAPairCut.cxx:60 AliFemtoShareQualityQAPairCut.cxx:61 AliFemtoShareQualityQAPairCut.cxx:62 AliFemtoShareQualityQAPairCut.cxx:63 AliFemtoShareQualityQAPairCut.cxx:64 AliFemtoShareQualityQAPairCut.cxx:65 AliFemtoShareQualityQAPairCut.cxx:66 AliFemtoShareQualityQAPairCut.cxx:67 AliFemtoShareQualityQAPairCut.cxx:68 AliFemtoShareQualityQAPairCut.cxx:69 AliFemtoShareQualityQAPairCut.cxx:70 AliFemtoShareQualityQAPairCut.cxx:71 AliFemtoShareQualityQAPairCut.cxx:72 AliFemtoShareQualityQAPairCut.cxx:73 AliFemtoShareQualityQAPairCut.cxx:74 AliFemtoShareQualityQAPairCut.cxx:75 AliFemtoShareQualityQAPairCut.cxx:76 AliFemtoShareQualityQAPairCut.cxx:77 AliFemtoShareQualityQAPairCut.cxx:78 AliFemtoShareQualityQAPairCut.cxx:79 AliFemtoShareQualityQAPairCut.cxx:80 AliFemtoShareQualityQAPairCut.cxx:81 AliFemtoShareQualityQAPairCut.cxx:82 AliFemtoShareQualityQAPairCut.cxx:83 AliFemtoShareQualityQAPairCut.cxx:84 AliFemtoShareQualityQAPairCut.cxx:85 AliFemtoShareQualityQAPairCut.cxx:86 AliFemtoShareQualityQAPairCut.cxx:87 AliFemtoShareQualityQAPairCut.cxx:88 AliFemtoShareQualityQAPairCut.cxx:89 AliFemtoShareQualityQAPairCut.cxx:90 AliFemtoShareQualityQAPairCut.cxx:91 AliFemtoShareQualityQAPairCut.cxx:92 AliFemtoShareQualityQAPairCut.cxx:93 AliFemtoShareQualityQAPairCut.cxx:94 AliFemtoShareQualityQAPairCut.cxx:95 AliFemtoShareQualityQAPairCut.cxx:96 AliFemtoShareQualityQAPairCut.cxx:97 AliFemtoShareQualityQAPairCut.cxx:98 AliFemtoShareQualityQAPairCut.cxx:99 AliFemtoShareQualityQAPairCut.cxx:100 AliFemtoShareQualityQAPairCut.cxx:101 AliFemtoShareQualityQAPairCut.cxx:102 AliFemtoShareQualityQAPairCut.cxx:103 AliFemtoShareQualityQAPairCut.cxx:104 AliFemtoShareQualityQAPairCut.cxx:105 AliFemtoShareQualityQAPairCut.cxx:106 AliFemtoShareQualityQAPairCut.cxx:107 AliFemtoShareQualityQAPairCut.cxx:108 AliFemtoShareQualityQAPairCut.cxx:109 AliFemtoShareQualityQAPairCut.cxx:110 AliFemtoShareQualityQAPairCut.cxx:111 AliFemtoShareQualityQAPairCut.cxx:112 AliFemtoShareQualityQAPairCut.cxx:113 AliFemtoShareQualityQAPairCut.cxx:114 AliFemtoShareQualityQAPairCut.cxx:115 AliFemtoShareQualityQAPairCut.cxx:116 AliFemtoShareQualityQAPairCut.cxx:117 AliFemtoShareQualityQAPairCut.cxx:118 AliFemtoShareQualityQAPairCut.cxx:119 AliFemtoShareQualityQAPairCut.cxx:120 AliFemtoShareQualityQAPairCut.cxx:121 AliFemtoShareQualityQAPairCut.cxx:122 AliFemtoShareQualityQAPairCut.cxx:123 AliFemtoShareQualityQAPairCut.cxx:124 AliFemtoShareQualityQAPairCut.cxx:125 AliFemtoShareQualityQAPairCut.cxx:126 AliFemtoShareQualityQAPairCut.cxx:127 AliFemtoShareQualityQAPairCut.cxx:128 AliFemtoShareQualityQAPairCut.cxx:129 AliFemtoShareQualityQAPairCut.cxx:130 AliFemtoShareQualityQAPairCut.cxx:131 AliFemtoShareQualityQAPairCut.cxx:132 AliFemtoShareQualityQAPairCut.cxx:133 AliFemtoShareQualityQAPairCut.cxx:134 AliFemtoShareQualityQAPairCut.cxx:135 AliFemtoShareQualityQAPairCut.cxx:136 AliFemtoShareQualityQAPairCut.cxx:137 AliFemtoShareQualityQAPairCut.cxx:138 AliFemtoShareQualityQAPairCut.cxx:139 AliFemtoShareQualityQAPairCut.cxx:140 AliFemtoShareQualityQAPairCut.cxx:141 AliFemtoShareQualityQAPairCut.cxx:142 AliFemtoShareQualityQAPairCut.cxx:143 AliFemtoShareQualityQAPairCut.cxx:144 AliFemtoShareQualityQAPairCut.cxx:145 AliFemtoShareQualityQAPairCut.cxx:146 AliFemtoShareQualityQAPairCut.cxx:147 AliFemtoShareQualityQAPairCut.cxx:148 AliFemtoShareQualityQAPairCut.cxx:149 AliFemtoShareQualityQAPairCut.cxx:150 AliFemtoShareQualityQAPairCut.cxx:151 AliFemtoShareQualityQAPairCut.cxx:152 AliFemtoShareQualityQAPairCut.cxx:153 AliFemtoShareQualityQAPairCut.cxx:154 AliFemtoShareQualityQAPairCut.cxx:155 AliFemtoShareQualityQAPairCut.cxx:156 AliFemtoShareQualityQAPairCut.cxx:157 AliFemtoShareQualityQAPairCut.cxx:158 AliFemtoShareQualityQAPairCut.cxx:159 AliFemtoShareQualityQAPairCut.cxx:160 AliFemtoShareQualityQAPairCut.cxx:161 AliFemtoShareQualityQAPairCut.cxx:162 AliFemtoShareQualityQAPairCut.cxx:163 AliFemtoShareQualityQAPairCut.cxx:164 AliFemtoShareQualityQAPairCut.cxx:165 AliFemtoShareQualityQAPairCut.cxx:166 AliFemtoShareQualityQAPairCut.cxx:167 AliFemtoShareQualityQAPairCut.cxx:168 AliFemtoShareQualityQAPairCut.cxx:169 AliFemtoShareQualityQAPairCut.cxx:170 AliFemtoShareQualityQAPairCut.cxx:171 AliFemtoShareQualityQAPairCut.cxx:172 AliFemtoShareQualityQAPairCut.cxx:173 AliFemtoShareQualityQAPairCut.cxx:174 AliFemtoShareQualityQAPairCut.cxx:175 AliFemtoShareQualityQAPairCut.cxx:176 AliFemtoShareQualityQAPairCut.cxx:177 AliFemtoShareQualityQAPairCut.cxx:178 AliFemtoShareQualityQAPairCut.cxx:179 AliFemtoShareQualityQAPairCut.cxx:180 AliFemtoShareQualityQAPairCut.cxx:181 AliFemtoShareQualityQAPairCut.cxx:182 AliFemtoShareQualityQAPairCut.cxx:183 AliFemtoShareQualityQAPairCut.cxx:184 AliFemtoShareQualityQAPairCut.cxx:185 AliFemtoShareQualityQAPairCut.cxx:186 AliFemtoShareQualityQAPairCut.cxx:187 AliFemtoShareQualityQAPairCut.cxx:188 AliFemtoShareQualityQAPairCut.cxx:189 AliFemtoShareQualityQAPairCut.cxx:190 AliFemtoShareQualityQAPairCut.cxx:191 AliFemtoShareQualityQAPairCut.cxx:192 AliFemtoShareQualityQAPairCut.cxx:193 AliFemtoShareQualityQAPairCut.cxx:194 AliFemtoShareQualityQAPairCut.cxx:195 AliFemtoShareQualityQAPairCut.cxx:196 AliFemtoShareQualityQAPairCut.cxx:197 AliFemtoShareQualityQAPairCut.cxx:198 AliFemtoShareQualityQAPairCut.cxx:199 AliFemtoShareQualityQAPairCut.cxx:200 AliFemtoShareQualityQAPairCut.cxx:201 AliFemtoShareQualityQAPairCut.cxx:202 AliFemtoShareQualityQAPairCut.cxx:203 AliFemtoShareQualityQAPairCut.cxx:204 AliFemtoShareQualityQAPairCut.cxx:205 AliFemtoShareQualityQAPairCut.cxx:206 AliFemtoShareQualityQAPairCut.cxx:207 AliFemtoShareQualityQAPairCut.cxx:208 AliFemtoShareQualityQAPairCut.cxx:209 AliFemtoShareQualityQAPairCut.cxx:210 AliFemtoShareQualityQAPairCut.cxx:211 AliFemtoShareQualityQAPairCut.cxx:212 AliFemtoShareQualityQAPairCut.cxx:213 AliFemtoShareQualityQAPairCut.cxx:214 AliFemtoShareQualityQAPairCut.cxx:215 AliFemtoShareQualityQAPairCut.cxx:216 AliFemtoShareQualityQAPairCut.cxx:217 AliFemtoShareQualityQAPairCut.cxx:218 AliFemtoShareQualityQAPairCut.cxx:219 AliFemtoShareQualityQAPairCut.cxx:220 AliFemtoShareQualityQAPairCut.cxx:221 AliFemtoShareQualityQAPairCut.cxx:222 AliFemtoShareQualityQAPairCut.cxx:223 AliFemtoShareQualityQAPairCut.cxx:224 AliFemtoShareQualityQAPairCut.cxx:225 AliFemtoShareQualityQAPairCut.cxx:226 AliFemtoShareQualityQAPairCut.cxx:227 AliFemtoShareQualityQAPairCut.cxx:228 AliFemtoShareQualityQAPairCut.cxx:229 AliFemtoShareQualityQAPairCut.cxx:230