CMS 3D CMS Logo

FortranCallback.h
Go to the documentation of this file.
1 #ifndef gen_FortranCallback_h
2 #define gen_FortranCallback_h
3 
5 
8 
9 namespace HepMC {
10  class GenEvent;
11 }
12 
13 namespace gen {
14 
16  public:
17  static FortranCallback* getInstance();
18 
19  //void setLHEEvent(lhef::LHEEvent* lhev) { fPartonLevel = lhev; }
20  void setLHERunInfo(lhef::LHERunInfo* lheri) { fRunBlock = lheri; }
21  void setLHEEvent(lhef::LHEEvent* lhee) { fEventBlock = lhee; }
22 
23  void resetIterationsPerEvent() { fIterationsPerEvent = 0; }
24 
25  void fillHeader();
26  void fillEvent();
27 
28  int getIterationsPerEvent() const { return fIterationsPerEvent; }
29 
30  private:
31  // ctor
32 
34 
35  // data member(s)
36 
40 
42  };
43 
44  // --** Implementation **---
45 
46  FortranCallback* FortranCallback::fInstance = nullptr;
47 
48  FortranCallback::FortranCallback()
49  // : fPartonLevel(0)
50  : fRunBlock(nullptr), fEventBlock(nullptr), fIterationsPerEvent(0) {}
51 
53  if (fInstance == nullptr)
55  return fInstance;
56  }
57 
59  if (fRunBlock == nullptr)
60  return;
61 
62  //const lhef::HEPRUP* heprup = &(fRunBlock->heprup());
63  const lhef::HEPRUP* heprup = fRunBlock->getHEPRUP();
64 
66 
67  return;
68  }
69 
71  //if ( fPartonLevel == 0 ) return;
72  //const lhef::HEPEUP* hepeup = fPartonLevel->getHEPEUP();
73 
74  if (fEventBlock == nullptr)
75  return;
76 
77  const lhef::HEPEUP* hepeup = fEventBlock->getHEPEUP();
78 
79  if (fIterationsPerEvent++) {
80  hepeup_.nup = 0;
81  return;
82  }
83 
85 
86  return;
87  }
88 
89 } // namespace gen
90 
91 #endif
static void fillHeader(LHERunInfo::Header &header, const char *data, int len=-1)
Definition: LHEReader.cc:156
def fillEvent(tree, event)
Definition: ntuple.py:18
struct HEPEUP_ hepeup_
#define nullptr
void setLHERunInfo(lhef::LHERunInfo *lheri)
int getIterationsPerEvent() const
const HEPEUP * getHEPEUP() const
Definition: LHEEvent.h:38
static FortranCallback * fInstance
static void fillHEPEUP(const HEPEUP *hepeup)
lhef::LHERunInfo * fRunBlock
static FortranCallback * getInstance()
const HEPRUP * getHEPRUP() const
Definition: LHERunInfo.h:51
void setLHEEvent(lhef::LHEEvent *lhee)
lhef::LHEEvent * fEventBlock
static void fillHEPRUP(const HEPRUP *heprup)