#include "AliFemtoQAEventCut.h"
#ifdef __ROOT__
ClassImp(AliFemtoQAEventCut)
#endif
AliFemtoQAEventCut::AliFemtoQAEventCut() :
AliFemtoEventCut(),
fEventMult(),
fVertZPos(),
fAcceptBadVertex(false),
fNEventsPassed(0),
fNEventsFailed(0),
fHighOrLowSwitch(0),
fEventMultQASwitch(kFALSE),
fEventZPosQASwitch(kFALSE)
{
fEventMult[0] = 0;
fEventMult[1] = 100000;
fVertZPos[0] = -100.0;
fVertZPos[1] = 100.0;
fHighOrLowSwitch = 1;
fEventMultQASwitch = false;
fEventZPosQASwitch = false;
fEventMultQAExclusionZone[0] = 0;
fEventMultQAExclusionZone[1] = 100000;
fEventZPosQAExclusionZone[0] = -100.0;
fEventZPosQAExclusionZone[1] = 100.0;
}
AliFemtoQAEventCut::~AliFemtoQAEventCut(){
}
AliFemtoQAEventCut& AliFemtoQAEventCut::operator=(AliFemtoQAEventCut& c)
{
if (this != &c) {
fEventMult[0] = c.fEventMult[0];
fEventMult[1] = c.fEventMult[1];
fVertZPos[0] = c.fVertZPos[0];
fVertZPos[1] = c.fVertZPos[1];
fHighOrLowSwitch = c.fHighOrLowSwitch;
fEventMultQASwitch = c.fEventMultQASwitch;
fEventZPosQASwitch = c.fEventZPosQASwitch;
fEventMultQAExclusionZone[0] = c.fEventMultQAExclusionZone[0];
fEventMultQAExclusionZone[1] = c.fEventMultQAExclusionZone[1];
fEventZPosQAExclusionZone[0] = c.fEventZPosQAExclusionZone[0];
fEventZPosQAExclusionZone[1] = c.fEventZPosQAExclusionZone[1];
}
return *this;
}
bool AliFemtoQAEventCut::Pass(const AliFemtoEvent* event){
int mult = event->NumberOfTracks();
double vertexZPos = event->PrimVertPos().z();
cout << "AliFemtoQAEventCut:: mult: " << fEventMult[0] << " < " << mult << " < " << fEventMult[1] << endl;
cout << "AliFemtoQAEventCut:: VertexZPos: " << fVertZPos[0] << " < " << vertexZPos << " < " << fVertZPos[1] << endl;
bool goodEvent;
if (fEventMultQASwitch) {
goodEvent =
( (((mult < fEventMultQAExclusionZone[0]) && (fHighOrLowSwitch > 0)) ||
((mult > fEventMultQAExclusionZone[1]) && (fHighOrLowSwitch < 0))) &&
(mult > fEventMult[0]) &&
(mult < fEventMult[1]) &&
(vertexZPos > fVertZPos[0]) &&
(vertexZPos < fVertZPos[1]) &&
(fAcceptBadVertex || (event->PrimVertCov()[4] > -1000.0)));
}
else if (fEventZPosQASwitch) {
goodEvent =
((((vertexZPos < fEventZPosQAExclusionZone[0]) && (fHighOrLowSwitch > 0)) ||
((vertexZPos > fEventZPosQAExclusionZone[1]) && (fHighOrLowSwitch < 0))) &&
(mult > fEventMult[0]) &&
(mult < fEventMult[1]) &&
(vertexZPos > fVertZPos[0]) &&
(vertexZPos < fVertZPos[1]) &&
(fAcceptBadVertex || (event->PrimVertCov()[4] > -1000.0)));
}
else {
goodEvent =
((mult > fEventMult[0]) &&
(mult < fEventMult[1]) &&
(vertexZPos > fVertZPos[0]) &&
(vertexZPos < fVertZPos[1]) &&
(fAcceptBadVertex || (event->PrimVertCov()[4] > -1000.0)));
}
if (goodEvent) fHighOrLowSwitch *= -1;
goodEvent ? fNEventsPassed++ : fNEventsFailed++ ;
return (goodEvent);
}
AliFemtoString AliFemtoQAEventCut::Report(){
string stemp;
char ctemp[100];
snprintf(ctemp , 100, "\nMultiplicity:\t %d-%d",fEventMult[0],fEventMult[1]);
stemp = ctemp;
snprintf(ctemp , 100, "\nVertex Z-position:\t %E-%E",fVertZPos[0],fVertZPos[1]);
stemp += ctemp;
snprintf(ctemp , 100, "\nNumber of events which passed:\t%ld Number which failed:\t%ld",fNEventsPassed,fNEventsFailed);
stemp += ctemp;
AliFemtoString returnThis = stemp;
return returnThis;
}
void AliFemtoQAEventCut::SetAcceptBadVertex(bool b)
{
fAcceptBadVertex = b;
}
bool AliFemtoQAEventCut::GetAcceptBadVertex()
{
return fAcceptBadVertex;
}
AliFemtoQAEventCut.cxx:10 AliFemtoQAEventCut.cxx:11 AliFemtoQAEventCut.cxx:12 AliFemtoQAEventCut.cxx:13 AliFemtoQAEventCut.cxx:14 AliFemtoQAEventCut.cxx:15 AliFemtoQAEventCut.cxx:16 AliFemtoQAEventCut.cxx:17 AliFemtoQAEventCut.cxx:18 AliFemtoQAEventCut.cxx:19 AliFemtoQAEventCut.cxx:20 AliFemtoQAEventCut.cxx:21 AliFemtoQAEventCut.cxx:22 AliFemtoQAEventCut.cxx:23 AliFemtoQAEventCut.cxx:24 AliFemtoQAEventCut.cxx:25 AliFemtoQAEventCut.cxx:26 AliFemtoQAEventCut.cxx:27 AliFemtoQAEventCut.cxx:28 AliFemtoQAEventCut.cxx:29 AliFemtoQAEventCut.cxx:30 AliFemtoQAEventCut.cxx:31 AliFemtoQAEventCut.cxx:32 AliFemtoQAEventCut.cxx:33 AliFemtoQAEventCut.cxx:34 AliFemtoQAEventCut.cxx:35 AliFemtoQAEventCut.cxx:36 AliFemtoQAEventCut.cxx:37 AliFemtoQAEventCut.cxx:38 AliFemtoQAEventCut.cxx:39 AliFemtoQAEventCut.cxx:40 AliFemtoQAEventCut.cxx:41 AliFemtoQAEventCut.cxx:42 AliFemtoQAEventCut.cxx:43 AliFemtoQAEventCut.cxx:44 AliFemtoQAEventCut.cxx:45 AliFemtoQAEventCut.cxx:46 AliFemtoQAEventCut.cxx:47 AliFemtoQAEventCut.cxx:48 AliFemtoQAEventCut.cxx:49 AliFemtoQAEventCut.cxx:50 AliFemtoQAEventCut.cxx:51 AliFemtoQAEventCut.cxx:52 AliFemtoQAEventCut.cxx:53 AliFemtoQAEventCut.cxx:54 AliFemtoQAEventCut.cxx:55 AliFemtoQAEventCut.cxx:56 AliFemtoQAEventCut.cxx:57 AliFemtoQAEventCut.cxx:58 AliFemtoQAEventCut.cxx:59 AliFemtoQAEventCut.cxx:60 AliFemtoQAEventCut.cxx:61 AliFemtoQAEventCut.cxx:62 AliFemtoQAEventCut.cxx:63 AliFemtoQAEventCut.cxx:64 AliFemtoQAEventCut.cxx:65 AliFemtoQAEventCut.cxx:66 AliFemtoQAEventCut.cxx:67 AliFemtoQAEventCut.cxx:68 AliFemtoQAEventCut.cxx:69 AliFemtoQAEventCut.cxx:70 AliFemtoQAEventCut.cxx:71 AliFemtoQAEventCut.cxx:72 AliFemtoQAEventCut.cxx:73 AliFemtoQAEventCut.cxx:74 AliFemtoQAEventCut.cxx:75 AliFemtoQAEventCut.cxx:76 AliFemtoQAEventCut.cxx:77 AliFemtoQAEventCut.cxx:78 AliFemtoQAEventCut.cxx:79 AliFemtoQAEventCut.cxx:80 AliFemtoQAEventCut.cxx:81 AliFemtoQAEventCut.cxx:82 AliFemtoQAEventCut.cxx:83 AliFemtoQAEventCut.cxx:84 AliFemtoQAEventCut.cxx:85 AliFemtoQAEventCut.cxx:86 AliFemtoQAEventCut.cxx:87 AliFemtoQAEventCut.cxx:88 AliFemtoQAEventCut.cxx:89 AliFemtoQAEventCut.cxx:90 AliFemtoQAEventCut.cxx:91 AliFemtoQAEventCut.cxx:92 AliFemtoQAEventCut.cxx:93 AliFemtoQAEventCut.cxx:94 AliFemtoQAEventCut.cxx:95 AliFemtoQAEventCut.cxx:96 AliFemtoQAEventCut.cxx:97 AliFemtoQAEventCut.cxx:98 AliFemtoQAEventCut.cxx:99 AliFemtoQAEventCut.cxx:100 AliFemtoQAEventCut.cxx:101 AliFemtoQAEventCut.cxx:102 AliFemtoQAEventCut.cxx:103 AliFemtoQAEventCut.cxx:104 AliFemtoQAEventCut.cxx:105 AliFemtoQAEventCut.cxx:106 AliFemtoQAEventCut.cxx:107 AliFemtoQAEventCut.cxx:108 AliFemtoQAEventCut.cxx:109 AliFemtoQAEventCut.cxx:110 AliFemtoQAEventCut.cxx:111 AliFemtoQAEventCut.cxx:112 AliFemtoQAEventCut.cxx:113 AliFemtoQAEventCut.cxx:114 AliFemtoQAEventCut.cxx:115 AliFemtoQAEventCut.cxx:116 AliFemtoQAEventCut.cxx:117 AliFemtoQAEventCut.cxx:118 AliFemtoQAEventCut.cxx:119 AliFemtoQAEventCut.cxx:120 AliFemtoQAEventCut.cxx:121 AliFemtoQAEventCut.cxx:122 AliFemtoQAEventCut.cxx:123 AliFemtoQAEventCut.cxx:124 AliFemtoQAEventCut.cxx:125 AliFemtoQAEventCut.cxx:126 AliFemtoQAEventCut.cxx:127 AliFemtoQAEventCut.cxx:128 AliFemtoQAEventCut.cxx:129 AliFemtoQAEventCut.cxx:130 AliFemtoQAEventCut.cxx:131 AliFemtoQAEventCut.cxx:132