1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include "Pythia8/Pythia.h"
#include "GeneratorInterface/Pythia8Interface/interface/PTFilterHook.h"
using namespace Pythia8;
//--------------------------------------------------------------------------
bool PTFilterHook::initAfterBeams() {
filter_ = settingsPtr->flag("PTFilter:filter");
quark_ = settingsPtr->mode("PTFilter:quarkToFilter");
scale_ = settingsPtr->parm("PTFilter:scaleToFilter");
quarkY_ = settingsPtr->parm("PTFilter:quarkRapidity");
quarkPt_ = settingsPtr->parm("PTFilter:quarkPt");
return true;
}
//--------------------------------------------------------------------------
bool PTFilterHook::checkVetoPT(int iPos, const Pythia8::Event& event) {
if (!filter_ || iPos > 3)
return false;
bool foundQuark = false;
//look for quark
for (int i = 0; i < event.size(); ++i) {
if ((abs(event[i].id()) == quark_) && (abs(event[i].y()) <= quarkY_)) {
if (event[i].pT() >= quarkPt_) {
foundQuark = true;
break;
}
}
}
if (!foundQuark)
return true;
//all criteria satisfied, don't veto
return false;
}
|