CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
MultiUserHook Class Reference

#include <MultiUserHook.h>

Inheritance diagram for MultiUserHook:

Public Member Functions

void addHook (Pythia8::UserHooks *hook)
 
double biasedSelectionWeight () override
 
double biasSelectionBy (const Pythia8::SigmaProcess *sigmaProcessPtr, const Pythia8::PhaseSpace *phaseSpacePtr, bool inEvent) override
 
bool canBiasSelection () override
 
bool canChangeFragPar () override
 
bool canEnhanceEmission () override
 
bool canEnhanceTrial () override
 
bool canModifySigma () override
 
bool canReconnectResonanceSystems () override
 
bool canSetResonanceScale () override
 
bool canVetoFSREmission () override
 
bool canVetoISREmission () override
 
bool canVetoMPIEmission () override
 
bool canVetoMPIStep () override
 
bool canVetoPartonLevel () override
 
bool canVetoPartonLevelEarly () override
 
bool canVetoProcessLevel () override
 
bool canVetoPT () override
 
bool canVetoResonanceDecays () override
 
bool canVetoStep () override
 
bool doChangeFragPar (Pythia8::StringFlav *flavPtr, Pythia8::StringZ *zPtr, Pythia8::StringPT *pTPtr, int idEnd, double m2Had, std::vector< int > iParton, const Pythia8::StringEnd *SE) override
 
bool doReconnectResonanceSystems (int oldSizeEvt, Pythia8::Event &event) override
 
bool doVetoFragmentation (Pythia8::Particle part, const Pythia8::StringEnd *SE) override
 
bool doVetoFSREmission (int sizeOld, const Pythia8::Event &event, int iSys, bool inResonance=false) override
 
bool doVetoISREmission (int sizeOld, const Pythia8::Event &event, int iSys) override
 
bool doVetoMPIEmission (int sizeOld, const Pythia8::Event &event) override
 
bool doVetoMPIStep (int nMPI, const Pythia8::Event &event) override
 
bool doVetoPartonLevel (const Pythia8::Event &event) override
 
bool doVetoPartonLevelEarly (const Pythia8::Event &event) override
 
bool doVetoProcessLevel (Pythia8::Event &event) override
 
bool doVetoPT (int iPos, const Pythia8::Event &event) override
 
bool doVetoResonanceDecays (Pythia8::Event &event) override
 
bool doVetoStep (int iPos, int nISR, int nFSR, const Pythia8::Event &event) override
 
double enhanceFactor (std::string str) override
 
bool initAfterBeams () override
 
double multiplySigmaBy (const Pythia8::SigmaProcess *sigmaProcessPtr, const Pythia8::PhaseSpace *phaseSpacePtr, bool inEvent) override
 
 MultiUserHook ()
 
unsigned int nHooks () const
 
int numberVetoMPIStep () override
 
int numberVetoStep () override
 
bool retryPartonLevel () override
 
double scaleResonance (int iRes, const Pythia8::Event &event) override
 
double scaleVetoPT () override
 
double vetoProbability (std::string str) override
 

Private Attributes

std::vector< Pythia8::UserHooks * > hooks_
 

Detailed Description

Definition at line 6 of file MultiUserHook.h.

Constructor & Destructor Documentation

MultiUserHook::MultiUserHook ( )
inline

Definition at line 9 of file MultiUserHook.h.

9 {}

Member Function Documentation

void MultiUserHook::addHook ( Pythia8::UserHooks *  hook)
inline

Definition at line 12 of file MultiUserHook.h.

References hooks_.

12 { hooks_.push_back(hook); }
std::vector< Pythia8::UserHooks * > hooks_
double MultiUserHook::biasedSelectionWeight ( )
inlineoverride

Definition at line 129 of file MultiUserHook.h.

References DQMScaleToClient_cfi::factor, and hooks_.

129  {
130  double factor = 1.;
131  for (Pythia8::UserHooks *hook : hooks_) {
132  if (hook->canBiasSelection())
133  factor *= hook->biasedSelectionWeight();
134  }
135  return factor;
136  };
std::vector< Pythia8::UserHooks * > hooks_
double MultiUserHook::biasSelectionBy ( const Pythia8::SigmaProcess *  sigmaProcessPtr,
const Pythia8::PhaseSpace *  phaseSpacePtr,
bool  inEvent 
)
inlineoverride

Definition at line 117 of file MultiUserHook.h.

References DQMScaleToClient_cfi::factor, and hooks_.

119  {
120  double factor = 1.;
121  for (Pythia8::UserHooks *hook : hooks_) {
122  if (hook->canBiasSelection())
123  factor *= hook->biasSelectionBy(sigmaProcessPtr, phaseSpacePtr, inEvent);
124  }
125  return factor;
126  };
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canBiasSelection ( )
inlineoverride

Definition at line 108 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

108  {
109  bool test = false;
110  for (Pythia8::UserHooks *hook : hooks_) {
111  test |= hook->canBiasSelection();
112  }
113  return test;
114  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canChangeFragPar ( )
inlineoverride

Definition at line 467 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

467  {
468  bool test = false;
469  for (Pythia8::UserHooks *hook : hooks_) {
470  test |= hook->canChangeFragPar();
471  }
472  return test;
473  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canEnhanceEmission ( )
inlineoverride

Definition at line 432 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

432  {
433  bool test = false;
434  for (Pythia8::UserHooks *hook : hooks_) {
435  test |= hook->canEnhanceEmission();
436  }
437  return test;
438  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canEnhanceTrial ( )
inlineoverride

Definition at line 442 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

442  {
443  bool test = false;
444  for (Pythia8::UserHooks *hook : hooks_) {
445  test |= hook->canEnhanceTrial();
446  }
447  return test;
448  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canModifySigma ( )
inlineoverride

Definition at line 87 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

87  {
88  bool test = false;
89  for (Pythia8::UserHooks *hook : hooks_) {
90  test |= hook->canModifySigma();
91  }
92  return test;
93  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canReconnectResonanceSystems ( )
inlineoverride

Definition at line 409 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

409  {
410  bool test = false;
411  for (Pythia8::UserHooks *hook : hooks_) {
412  test |= hook->canReconnectResonanceSystems();
413  }
414  return test;
415  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canSetResonanceScale ( )
inlineoverride

Definition at line 321 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

321  {
322  bool test = false;
323  for (Pythia8::UserHooks *hook : hooks_) {
324  test |= hook->canSetResonanceScale();
325  }
326  return test;
327  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoFSREmission ( )
inlineoverride

Definition at line 364 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

364  {
365  bool test = false;
366  for (Pythia8::UserHooks *hook : hooks_) {
367  test |= hook->canVetoFSREmission();
368  }
369  return test;
370  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoISREmission ( )
inlineoverride

Definition at line 342 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

342  {
343  bool test = false;
344  for (Pythia8::UserHooks *hook : hooks_) {
345  test |= hook->canVetoISREmission();
346  }
347  return test;
348  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoMPIEmission ( )
inlineoverride

Definition at line 388 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

388  {
389  bool test = false;
390  for (Pythia8::UserHooks *hook : hooks_) {
391  test |= hook->canVetoMPIEmission();
392  }
393  return test;
394  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoMPIStep ( )
inlineoverride

Definition at line 241 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

241  {
242  bool test = false;
243  for (Pythia8::UserHooks *hook : hooks_) {
244  test |= hook->canVetoMPIStep();
245  }
246  return test;
247  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoPartonLevel ( )
inlineoverride

Definition at line 301 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

301  {
302  bool test = false;
303  for (Pythia8::UserHooks *hook : hooks_) {
304  test |= hook->canVetoPartonLevel();
305  }
306  return test;
307  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoPartonLevelEarly ( )
inlineoverride

Definition at line 270 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

270  {
271  bool test = false;
272  for (Pythia8::UserHooks *hook : hooks_) {
273  test |= hook->canVetoPartonLevelEarly();
274  }
275  return test;
276  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoProcessLevel ( )
inlineoverride

Definition at line 139 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

139  {
140  bool test = false;
141  for (Pythia8::UserHooks *hook : hooks_) {
142  test |= hook->canVetoProcessLevel();
143  }
144  return test;
145  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoPT ( )
inlineoverride

Definition at line 180 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

180  {
181  bool test = false;
182  for (Pythia8::UserHooks *hook : hooks_) {
183  test |= hook->canVetoPT();
184  }
185  return test;
186  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoResonanceDecays ( )
inlineoverride

Definition at line 159 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

159  {
160  bool test = false;
161  for (Pythia8::UserHooks *hook : hooks_) {
162  test |= hook->canVetoResonanceDecays();
163  }
164  return test;
165  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::canVetoStep ( )
inlineoverride

Definition at line 211 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

211  {
212  bool test = false;
213  for (Pythia8::UserHooks *hook : hooks_) {
214  test |= hook->canVetoStep();
215  }
216  return test;
217  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::doChangeFragPar ( Pythia8::StringFlav *  flavPtr,
Pythia8::StringZ *  zPtr,
Pythia8::StringPT *  pTPtr,
int  idEnd,
double  m2Had,
std::vector< int >  iParton,
const Pythia8::StringEnd *  SE 
)
inlineoverride

Definition at line 477 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

483  {
484  bool test = true;
485  for (Pythia8::UserHooks *hook : hooks_) {
486  if (hook->canChangeFragPar())
487  test &= hook->doChangeFragPar(flavPtr, zPtr, pTPtr, idEnd, m2Had, iParton, SE);
488  }
489  return test;
490  }
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::doReconnectResonanceSystems ( int  oldSizeEvt,
Pythia8::Event &  event 
)
inlineoverride

Definition at line 422 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

422  {
423  bool test = true;
424  for (Pythia8::UserHooks *hook : hooks_) {
425  if (hook->canReconnectResonanceSystems())
426  test &= hook->doReconnectResonanceSystems(oldSizeEvt, event);
427  }
428  return test;
429  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoFragmentation ( Pythia8::Particle  part,
const Pythia8::StringEnd *  SE 
)
inlineoverride

Definition at line 493 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

493  {
494  bool test = false;
495  for (Pythia8::UserHooks *hook : hooks_) {
496  if (hook->canChangeFragPar())
497  test |= hook->doVetoFragmentation(part, SE);
498  }
499  return test;
500  }
std::vector< Pythia8::UserHooks * > hooks_
part
Definition: HCALResponse.h:20
bool MultiUserHook::doVetoFSREmission ( int  sizeOld,
const Pythia8::Event &  event,
int  iSys,
bool  inResonance = false 
)
inlineoverride

Definition at line 378 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

378  {
379  bool test = false;
380  for (Pythia8::UserHooks *hook : hooks_) {
381  if (hook->canVetoFSREmission())
382  test |= hook->doVetoFSREmission(sizeOld, event, iSys, inResonance);
383  }
384  return test;
385  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoISREmission ( int  sizeOld,
const Pythia8::Event &  event,
int  iSys 
)
inlineoverride

Definition at line 354 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

354  {
355  bool test = false;
356  for (Pythia8::UserHooks *hook : hooks_) {
357  if (hook->canVetoISREmission())
358  test |= hook->doVetoISREmission(sizeOld, event, iSys);
359  }
360  return test;
361  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoMPIEmission ( int  sizeOld,
const Pythia8::Event &  event 
)
inlineoverride

Definition at line 399 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

399  {
400  bool test = false;
401  for (Pythia8::UserHooks *hook : hooks_) {
402  if (hook->canVetoMPIEmission())
403  test |= hook->doVetoMPIEmission(sizeOld, event);
404  }
405  return test;
406  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoMPIStep ( int  nMPI,
const Pythia8::Event &  event 
)
inlineoverride

Definition at line 260 of file MultiUserHook.h.

References hooks_.

260  {
261  for (Pythia8::UserHooks *hook : hooks_) {
262  if (hook->canVetoMPIStep())
263  return hook->doVetoMPIStep(nMPI, event);
264  }
265  return false;
266  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoPartonLevel ( const Pythia8::Event &  event)
inlineoverride

Definition at line 311 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

311  {
312  bool test = false;
313  for (Pythia8::UserHooks *hook : hooks_) {
314  if (hook->canVetoPartonLevel())
315  test |= hook->doVetoPartonLevel(event);
316  }
317  return test;
318  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoPartonLevelEarly ( const Pythia8::Event &  event)
inlineoverride

Definition at line 280 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

280  {
281  bool test = false;
282  for (Pythia8::UserHooks *hook : hooks_) {
283  if (hook->canVetoPartonLevelEarly())
284  test |= hook->doVetoPartonLevelEarly(event);
285  }
286  return test;
287  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoProcessLevel ( Pythia8::Event &  event)
inlineoverride

Definition at line 149 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

149  {
150  bool test = false;
151  for (Pythia8::UserHooks *hook : hooks_) {
152  if (hook->canVetoProcessLevel())
153  test |= hook->doVetoProcessLevel(event);
154  }
155  return test;
156  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoPT ( int  iPos,
const Pythia8::Event &  event 
)
inlineoverride

Definition at line 201 of file MultiUserHook.h.

References hooks_.

201  {
202  for (Pythia8::UserHooks *hook : hooks_) {
203  if (hook->canVetoPT())
204  return hook->doVetoPT(iPos, event);
205  }
206  return false;
207  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoResonanceDecays ( Pythia8::Event &  event)
inlineoverride

Definition at line 169 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

169  {
170  bool test = false;
171  for (Pythia8::UserHooks *hook : hooks_) {
172  if (hook->canVetoResonanceDecays())
173  test |= hook->doVetoResonanceDecays(event);
174  }
175  return test;
176  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
bool MultiUserHook::doVetoStep ( int  iPos,
int  nISR,
int  nFSR,
const Pythia8::Event &  event 
)
inlineoverride

Definition at line 231 of file MultiUserHook.h.

References hooks_.

231  {
232  for (Pythia8::UserHooks *hook : hooks_) {
233  if (hook->canVetoStep())
234  return hook->doVetoStep(iPos, nISR, nFSR, event);
235  }
236  return false;
237  }
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
double MultiUserHook::enhanceFactor ( std::string  str)
inlineoverride

Definition at line 450 of file MultiUserHook.h.

References hooks_.

450  {
451  for (Pythia8::UserHooks *hook : hooks_) {
452  if (hook->canEnhanceEmission() || hook->canEnhanceTrial())
453  return hook->enhanceFactor(str);
454  }
455  return 1.;
456  };
std::vector< Pythia8::UserHooks * > hooks_
#define str(s)
bool MultiUserHook::initAfterBeams ( )
inlineoverride

Definition at line 15 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

15  {
16  bool test = true;
17  for (Pythia8::UserHooks *hook : hooks_) {
18  hook->initPtr(infoPtr,
19  settingsPtr,
20  particleDataPtr,
21  rndmPtr,
22  beamAPtr,
23  beamBPtr,
24  beamPomAPtr,
25  beamPomBPtr,
26  coupSMPtr,
27  partonSystemsPtr,
28  sigmaTotPtr);
29  test &= hook->initAfterBeams();
30  }
31 
32  //Certain types of hooks can only be handled by one UserHook at a time.
33  //Check for this and return an error if needed
34  int nCanVetoPT = 0;
35  int nCanVetoStep = 0;
36  int nCanVetoMPIStep = 0;
37  int nCanSetResonanceScale = 0;
38  int nCanEnhance = 0;
39  for (Pythia8::UserHooks *hook : hooks_) {
40  if (hook->canVetoPT())
41  ++nCanVetoPT;
42  if (hook->canVetoStep())
43  ++nCanVetoStep;
44  if (hook->canVetoMPIStep())
45  ++nCanVetoMPIStep;
46  if (hook->canSetResonanceScale())
47  ++nCanSetResonanceScale;
48  if (hook->canEnhanceEmission() || hook->canEnhanceTrial())
49  ++nCanEnhance;
50  }
51 
52  if (nCanVetoPT > 1) {
53  infoPtr->errorMsg(
54  "Error in MultiUserHook::initAfterBeams "
55  "multiple UserHooks with canVetoPT() not allowed");
56  test = false;
57  }
58  if (nCanVetoStep > 1) {
59  infoPtr->errorMsg(
60  "Error in MultiUserHook::initAfterBeams "
61  "multiple UserHooks with canVetoStep() not allowed");
62  test = false;
63  }
64  if (nCanVetoMPIStep > 1) {
65  infoPtr->errorMsg(
66  "Error in MultiUserHook::initAfterBeams "
67  "multiple UserHooks with canVetoMPIStep() not allowed");
68  test = false;
69  }
70  if (nCanSetResonanceScale > 1) {
71  infoPtr->errorMsg(
72  "Error in MultiUserHook::initAfterBeams "
73  "multiple UserHooks with canSetResonanceScale() not allowed");
74  test = false;
75  }
76  if (nCanEnhance > 1) {
77  infoPtr->errorMsg(
78  "Error in MultiUserHook::initAfterBeams "
79  "multiple UserHooks with canEnhanceEmission() or canEnhanceTrial() not allowed");
80  test = false;
81  }
82 
83  return test;
84  }
std::vector< Pythia8::UserHooks * > hooks_
double MultiUserHook::multiplySigmaBy ( const Pythia8::SigmaProcess *  sigmaProcessPtr,
const Pythia8::PhaseSpace *  phaseSpacePtr,
bool  inEvent 
)
inlineoverride

Definition at line 96 of file MultiUserHook.h.

References DQMScaleToClient_cfi::factor, and hooks_.

98  {
99  double factor = 1.;
100  for (Pythia8::UserHooks *hook : hooks_) {
101  if (hook->canModifySigma())
102  factor *= hook->multiplySigmaBy(sigmaProcessPtr, phaseSpacePtr, inEvent);
103  }
104  return factor;
105  }
std::vector< Pythia8::UserHooks * > hooks_
unsigned int MultiUserHook::nHooks ( ) const
inline

Definition at line 11 of file MultiUserHook.h.

References hooks_.

11 { return hooks_.size(); }
std::vector< Pythia8::UserHooks * > hooks_
int MultiUserHook::numberVetoMPIStep ( )
inlineoverride

Definition at line 250 of file MultiUserHook.h.

References hooks_.

250  {
251  for (Pythia8::UserHooks *hook : hooks_) {
252  if (hook->canVetoMPIStep())
253  return hook->numberVetoMPIStep();
254  }
255  return 1;
256  };
std::vector< Pythia8::UserHooks * > hooks_
int MultiUserHook::numberVetoStep ( )
inlineoverride

Definition at line 220 of file MultiUserHook.h.

References hooks_.

220  {
221  for (Pythia8::UserHooks *hook : hooks_) {
222  if (hook->canVetoStep())
223  return hook->numberVetoStep();
224  }
225  return 1;
226  };
std::vector< Pythia8::UserHooks * > hooks_
bool MultiUserHook::retryPartonLevel ( )
inlineoverride

Definition at line 292 of file MultiUserHook.h.

References hooks_, and ctpps_dqm_sourceclient-live_cfg::test.

292  {
293  bool test = false;
294  for (Pythia8::UserHooks *hook : hooks_) {
295  test |= hook->retryPartonLevel();
296  }
297  return test;
298  }
std::vector< Pythia8::UserHooks * > hooks_
double MultiUserHook::scaleResonance ( int  iRes,
const Pythia8::Event &  event 
)
inlineoverride

Definition at line 333 of file MultiUserHook.h.

References hooks_.

333  {
334  for (Pythia8::UserHooks *hook : hooks_) {
335  if (hook->canSetResonanceScale())
336  return hook->scaleResonance(iRes, event);
337  }
338  return 0.;
339  };
std::vector< Pythia8::UserHooks * > hooks_
Definition: event.py:1
double MultiUserHook::scaleVetoPT ( )
inlineoverride

Definition at line 189 of file MultiUserHook.h.

References hooks_.

189  {
190  for (Pythia8::UserHooks *hook : hooks_) {
191  if (hook->canVetoPT())
192  return hook->scaleVetoPT();
193  }
194  return 0.;
195  };
std::vector< Pythia8::UserHooks * > hooks_
double MultiUserHook::vetoProbability ( std::string  str)
inlineoverride

Definition at line 458 of file MultiUserHook.h.

References hooks_.

458  {
459  for (Pythia8::UserHooks *hook : hooks_) {
460  if (hook->canEnhanceEmission() || hook->canEnhanceTrial())
461  return hook->vetoProbability(str);
462  }
463  return 0.;
464  };
std::vector< Pythia8::UserHooks * > hooks_
#define str(s)

Member Data Documentation

std::vector<Pythia8::UserHooks *> MultiUserHook::hooks_
private