CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
JetMatching Class Referenceabstract

#include <JetMatchingPy8Internal.h>

Inheritance diagram for JetMatching:
JetMatchingAlpgen JetMatchingMadgraph JetMatchingAlpgenInputAlpgen JetMatchingMadgraphInputAlpgen

Public Member Functions

bool canVetoPartonLevelEarly ()
 
bool canVetoProcessLevel ()
 
bool canVetoStep ()
 
bool doVetoPartonLevelEarly (const Pythia8::Event &event)
 
bool doVetoProcessLevel (Pythia8::Event &process)
 
bool doVetoStep (int, int, int, const Pythia8::Event &)
 
virtual bool initAfterBeams ()=0
 
 JetMatching ()
 
int numberVetoStep ()
 
 ~JetMatching ()
 

Protected Types

enum  partonTypes {
  ID_CHARM =4, ID_BOT =5, ID_TOP =6, ID_LEPMIN =11,
  ID_LEPMAX =16, ID_GLUON =21, ID_PHOTON =22
}
 
enum  vetoStatus {
  NONE, LESS_JETS, MORE_JETS, HARD_JET,
  UNMATCHED_PARTON
}
 

Protected Member Functions

virtual void jetAlgorithmInput (const Pythia8::Event &, int)=0
 
virtual bool matchPartonsToJets (int)=0
 
virtual int matchPartonsToJetsHeavy ()=0
 
virtual int matchPartonsToJetsLight ()=0
 
virtual void runJetAlgorithm ()=0
 
virtual void sortIncomingProcess (const Pythia8::Event &)=0
 

Protected Attributes

Pythia8::CellJet * cellJet
 
double coneMatchHeavy
 
double coneMatchLight
 
double coneRadius
 
double coneRadiusHeavy
 
bool doMerge
 
bool doShowerKt
 
double etaJetMax
 
double etaJetMaxAlgo
 
double eTjetMin
 
double eTpTlightMin
 
double eTseed
 
double eTthreshold
 
Pythia8::Event eventProcess
 
Pythia8::Event eventProcessOrig
 
bool exclusive
 
int exclusiveMode
 
int jetAlgorithm
 
int jetAllow
 
int jetMatch
 
vector< Pythia8::Vec4jetMomenta
 
int nEta
 
int nJet
 
int nJetMax
 
int nPhi
 
Pythia8::SlowJet * slowJet
 
Pythia8::SlowJet * slowJetHard
 
int slowJetPower
 
vector< int > typeIdx [3]
 
set< int > typeSet [3]
 
Pythia8::Event workEventJet
 

Static Protected Attributes

static const bool MATCHINGCHECK = false
 
static const bool MATCHINGDEBUG = false
 

Detailed Description

Definition at line 31 of file JetMatchingPy8Internal.h.

Member Enumeration Documentation

enum JetMatching::partonTypes
protected
enum JetMatching::vetoStatus
protected

Constructor & Destructor Documentation

JetMatching::JetMatching ( )
inline

Definition at line 36 of file JetMatchingPy8Internal.h.

Pythia8::SlowJet * slowJetHard
Pythia8::SlowJet * slowJet
#define NULL
Definition: scimark2.h:8
Pythia8::CellJet * cellJet
JetMatching::~JetMatching ( )
inline

Definition at line 37 of file JetMatchingPy8Internal.h.

References cellJet, slowJet, and slowJetHard.

37  {
38  if (cellJet) delete cellJet;
39  if (slowJet) delete slowJet;
40  if (slowJetHard) delete slowJetHard;
41  }
Pythia8::SlowJet * slowJetHard
Pythia8::SlowJet * slowJet
Pythia8::CellJet * cellJet

Member Function Documentation

bool JetMatching::canVetoPartonLevelEarly ( )
inline
bool JetMatching::canVetoProcessLevel ( )
inline
bool JetMatching::canVetoStep ( )
inline

Definition at line 59 of file JetMatchingPy8Internal.h.

59 { return true; }
bool JetMatching::doVetoPartonLevelEarly ( const Pythia8::Event &  event)

Definition at line 21 of file JetMatchingPy8Internal.cc.

References gather_cfg::cout, i, and findQualityFiles::size.

Referenced by JetMatchingAlpgenInputAlpgen::doVetoPartonLevelEarly(), and JetMatchingMadgraphInputAlpgen::doVetoPartonLevelEarly().

21  {
22 
23  // 1) Sort the original incoming process. After this step is performed,
24  // the following assignments have been made:
25  // eventProcessOrig - the original incoming process
26  // eventProcess - the final-state of the incoming process with
27  // resonance decays removed (and resonances
28  // themselves now with positive status code)
29  // typeIdx[0/1/2] - Indices into 'eventProcess' of
30  // light jets/heavy jets/other
31  // typeSet[0/1/2] - Indices into 'event' of light jets/heavy jets/other
32  // workEvent - partons from the hardest subsystem + ISR + FSR only
34 
35  // For the shower-kT scheme, do not perform any veto here, as any vetoing
36  // will already have taken place in doVetoStep.
37  if ( doShowerKt ) return false;
38 
39  // Debug printout.
40  if (MATCHINGDEBUG) {
41  // Begin
42  cout << endl << "-------- Begin Madgraph Debug --------" << endl;
43  // Original incoming process
44  cout << endl << "Original incoming process:";
45  eventProcessOrig.list();
46  // Final-state of original incoming process
47  cout << endl << "Final-state incoming process:";
48  eventProcess.list();
49  // List categories of sorted particles
50  for (size_t i = 0; i < typeIdx[0].size(); i++)
51  cout << ((i == 0) ? "Light jets: " : ", ") << setw(3) << typeIdx[0][i];
52  if( typeIdx[0].size()== 0 )
53  cout << "Light jets: None";
54 
55  for (size_t i = 0; i < typeIdx[1].size(); i++)
56  cout << ((i == 0) ? "\nHeavy jets: " : ", ") << setw(3) << typeIdx[1][i];
57  for (size_t i = 0; i < typeIdx[2].size(); i++)
58  cout << ((i == 0) ? "\nOther: " : ", ") << setw(3) << typeIdx[2][i];
59  // Full event at this stage
60  cout << endl << endl << "Event:";
61  event.list();
62  // Work event (partons from hardest subsystem + ISR + FSR)
63  cout << endl << "Work event:";
64  workEvent.list();
65  }
66 
67  // 2) Light/heavy jets: iType = 0 (light jets), 1 (heavy jets)
68  int iTypeEnd = (typeIdx[1].empty()) ? 1 : 2;
69  for (int iType = 0; iType < iTypeEnd; iType++) {
70 
71  // 2a) Find particles which will be passed from the jet algorithm.
72  // Input from 'workEvent' and output in 'workEventJet'.
73  jetAlgorithmInput(event, iType);
74 
75  // Debug printout.
76  if (MATCHINGDEBUG) {
77  // Jet algorithm event
78  cout << endl << "Jet algorithm event (iType = " << iType << "):";
79  workEventJet.list();
80  }
81 
82  // 2b) Run jet algorithm on 'workEventJet'.
83  // Output is stored in jetMomenta.
85 
86  // 2c) Match partons to jets and decide if veto is necessary
87  if (matchPartonsToJets(iType) == true) {
88  // Debug printout.
89  if (MATCHINGDEBUG) {
90  cout << endl << "Event vetoed" << endl
91  << "---------- End MLM Debug ----------" << endl;
92  }
93  return true;
94  }
95  }
96 
97  // Debug printout.
98  if (MATCHINGDEBUG) {
99  cout << endl << "Event accepted" << endl
100  << "---------- End MLM Debug ----------" << endl;
101  }
102 
103  // If we reached here, then no veto
104  return false;
105 
106 }
virtual void jetAlgorithmInput(const Pythia8::Event &, int)=0
int i
Definition: DBlmapReader.cc:9
Pythia8::Event eventProcess
Pythia8::Event workEventJet
virtual bool matchPartonsToJets(int)=0
Pythia8::Event eventProcessOrig
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual void sortIncomingProcess(const Pythia8::Event &)=0
tuple cout
Definition: gather_cfg.py:121
vector< int > typeIdx[3]
virtual void runJetAlgorithm()=0
static const bool MATCHINGDEBUG
tuple size
Write out results.
bool JetMatching::doVetoProcessLevel ( Pythia8::Event &  process)
inline
bool JetMatching::doVetoStep ( int  ,
int  ,
int  ,
const Pythia8::Event &   
)
inline

Definition at line 60 of file JetMatchingPy8Internal.h.

60 { return false; }
virtual bool JetMatching::initAfterBeams ( )
pure virtual
virtual void JetMatching::jetAlgorithmInput ( const Pythia8::Event &  ,
int   
)
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

virtual bool JetMatching::matchPartonsToJets ( int  )
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

virtual int JetMatching::matchPartonsToJetsHeavy ( )
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

virtual int JetMatching::matchPartonsToJetsLight ( )
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

int JetMatching::numberVetoStep ( )
inline

Definition at line 58 of file JetMatchingPy8Internal.h.

58 {return 1;}
virtual void JetMatching::runJetAlgorithm ( )
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

virtual void JetMatching::sortIncomingProcess ( const Pythia8::Event &  )
protectedpure virtual

Implemented in JetMatchingMadgraph, and JetMatchingAlpgen.

Member Data Documentation

Pythia8::CellJet* JetMatching::cellJet
protected

Definition at line 93 of file JetMatchingPy8Internal.h.

Referenced by ~JetMatching().

double JetMatching::coneMatchHeavy
protected

Definition at line 120 of file JetMatchingPy8Internal.h.

double JetMatching::coneMatchLight
protected

Definition at line 120 of file JetMatchingPy8Internal.h.

double JetMatching::coneRadius
protected

Definition at line 90 of file JetMatchingPy8Internal.h.

double JetMatching::coneRadiusHeavy
protected

Definition at line 120 of file JetMatchingPy8Internal.h.

bool JetMatching::doMerge
protected

Definition at line 80 of file JetMatchingPy8Internal.h.

Referenced by canVetoPartonLevelEarly(), and canVetoProcessLevel().

bool JetMatching::doShowerKt
protected

Definition at line 83 of file JetMatchingPy8Internal.h.

Referenced by JetMatchingMadgraph::canVetoStep().

double JetMatching::etaJetMax
protected

Definition at line 90 of file JetMatchingPy8Internal.h.

double JetMatching::etaJetMaxAlgo
protected

Definition at line 90 of file JetMatchingPy8Internal.h.

double JetMatching::eTjetMin
protected

Definition at line 90 of file JetMatchingPy8Internal.h.

double JetMatching::eTpTlightMin
protected

Definition at line 124 of file JetMatchingPy8Internal.h.

double JetMatching::eTseed
protected

Definition at line 116 of file JetMatchingPy8Internal.h.

double JetMatching::eTthreshold
protected

Definition at line 116 of file JetMatchingPy8Internal.h.

Pythia8::Event JetMatching::eventProcess
protected

Definition at line 104 of file JetMatchingPy8Internal.h.

Pythia8::Event JetMatching::eventProcessOrig
protected

Definition at line 104 of file JetMatchingPy8Internal.h.

Referenced by doVetoProcessLevel().

bool JetMatching::exclusive
protected

Definition at line 121 of file JetMatchingPy8Internal.h.

int JetMatching::exclusiveMode
protected

Definition at line 119 of file JetMatchingPy8Internal.h.

int JetMatching::jetAlgorithm
protected

Definition at line 89 of file JetMatchingPy8Internal.h.

int JetMatching::jetAllow
protected

Definition at line 119 of file JetMatchingPy8Internal.h.

int JetMatching::jetMatch
protected

Definition at line 119 of file JetMatchingPy8Internal.h.

vector<Pythia8::Vec4> JetMatching::jetMomenta
protected

Definition at line 112 of file JetMatchingPy8Internal.h.

const bool JetMatching::MATCHINGCHECK = false
staticprotected

Definition at line 65 of file JetMatchingPy8Internal.h.

const bool JetMatching::MATCHINGDEBUG = false
staticprotected

Definition at line 65 of file JetMatchingPy8Internal.h.

int JetMatching::nEta
protected

Definition at line 115 of file JetMatchingPy8Internal.h.

int JetMatching::nJet
protected

Definition at line 86 of file JetMatchingPy8Internal.h.

int JetMatching::nJetMax
protected

Definition at line 86 of file JetMatchingPy8Internal.h.

int JetMatching::nPhi
protected

Definition at line 115 of file JetMatchingPy8Internal.h.

Pythia8::SlowJet* JetMatching::slowJet
protected

Definition at line 94 of file JetMatchingPy8Internal.h.

Referenced by ~JetMatching().

Pythia8::SlowJet* JetMatching::slowJetHard
protected

Definition at line 95 of file JetMatchingPy8Internal.h.

Referenced by ~JetMatching().

int JetMatching::slowJetPower
protected

Definition at line 98 of file JetMatchingPy8Internal.h.

vector<int> JetMatching::typeIdx[3]
protected

Definition at line 107 of file JetMatchingPy8Internal.h.

Referenced by JetMatchingMadgraph::SetnME().

set<int> JetMatching::typeSet[3]
protected

Definition at line 108 of file JetMatchingPy8Internal.h.

Pythia8::Event JetMatching::workEventJet
protected

Definition at line 104 of file JetMatchingPy8Internal.h.