9 : hepmcCollection_(iConfig.getParameter<edm::
InputTag>(
"hepmcCollection")),
10 genEventInfoProductTag_(iConfig.getParameter<edm::
InputTag>(
"genEventInfoProductTag")) {
28 weight = evt_info->weight();
38 bool top(
false), antitop(
false), antibottom(
false), bottom(
false), Wplus(
false), Wmin(
false);
39 for (HepMC::GenEvent::particle_const_iterator iter = myGenEvent->particles_begin();
40 iter != myGenEvent->particles_end();
43 if ((*iter)->end_vertex()) {
44 HepMC::GenVertex::particle_iterator des;
45 for (des = (*iter)->end_vertex()->particles_begin(HepMC::children);
46 des != (*iter)->end_vertex()->particles_end(HepMC::children);
49 tlv_Bottom.SetPxPyPzE(
50 (*des)->momentum().px(), (*des)->momentum().py(), (*des)->momentum().pz(), (*des)->momentum().e());
55 tlv_BottomBar.SetPxPyPzE(
56 (*des)->momentum().px(), (*des)->momentum().py(), (*des)->momentum().pz(), (*des)->momentum().e());
59 tlv_TopBar.SetPxPyPzE(
60 (*iter)->momentum().px(), (*iter)->momentum().py(), (*iter)->momentum().pz(), (*iter)->momentum().e());
63 (*des)->momentum().px(), (*des)->momentum().py(), (*des)->momentum().pz(), (*des)->momentum().e());
68 (*iter)->momentum().px(), (*iter)->momentum().py(), (*iter)->momentum().pz(), (*iter)->momentum().e());
71 (*des)->momentum().px(), (*des)->momentum().py(), (*des)->momentum().pz(), (*des)->momentum().e());
98 if (bottom && antibottom) {
155 nEvt = dqm.
book1dHisto(
"nEvt",
"n analyzed Events", 1, 0., 1.,
"bins",
"Number of Events");
158 "TTbar_TopPt",
"t quark transverse momentum", 1000, 0., 1000.,
"P_{t}^{t quark} (GeV)",
"Number of Events");
159 hTopY = dqm.
book1dHisto(
"TTbar_TopY",
"t quark rapidity", 200, -5., 5.,
"Y_{t quark}",
"Number of Events");
160 hTopMass = dqm.
book1dHisto(
"TTbar_TopMass",
"t quark mass", 500, 0., 500.,
"M_{t quark} (GeV)",
"Number of Events");
163 "TTbar_TTbarPt",
"tt pair transverse momentum", 1000, 0., 1000.,
"P_{t}^{tt pair} (GeV)",
"Number of Events");
164 hTTbarY = dqm.
book1dHisto(
"TTbar_TTbarY",
"tt pair rapidity", 200, -5., 5.,
"Y_{tt pair}",
"Number of Events");
166 dqm.
book1dHisto(
"TTbar_TTbarMass",
"tt pair mass", 1000, 0., 1000.,
"M_{tt pair} (GeV)",
"Number of Events");
169 "TTbar_BottomPt",
"b quark transverse momentum", 1000, 0., 1000.,
"P_{t}^{b quark} (GeV)",
"Number of Events");
171 "TTbar_BottomEta",
"b quark pseudo-rapidity", 200, -5., 5.,
"#eta_{b quark} (GeV)",
"Number of Events");
173 dqm.
book1dHisto(
"TTbar_BottomY",
"b quark rapidity", 200, -5., 5.,
"M_{b quark} (GeV)",
"Number of Events");
175 "TTbar_BottomPz",
"b quark longitudinal momentum", 200, -100., 100.,
"P_{z}^{b quark} (GeV)",
"Number of Events");
177 dqm.
book1dHisto(
"TTbar_BottomE",
"b quark energy", 1000, 0., 1000.,
"E_{b quark} (GeV)",
"Number of Events");
179 dqm.
book1dHisto(
"TTbar_BottomMass",
"b quark mass", 50, 0., 5.,
"M_{b quark} (GeV)",
"Number of Events");
182 "b quark longitudinal vs transverse momentum",
189 "P_{z}^{b quark} (GeV)",
190 "P_{t}^{b quark} (GeV)");
192 "b quark longitudinal momentum vs pseudorapidity",
200 "P_{z}^{b quark} (GeV)");
202 " quark transveral momentum vs pseudorapidity",
210 "P_{t}^{b quark} (GeV)");
212 "b quark longitudinal momentum vs rapidity",
220 "P_{z}^{b quark} (GeV)");
222 "b quark longitudinal momentum vs mass",
230 "P_{z}^{b quark} (GeV)");
232 "b quark pseudorapidity vs mass",
242 "TTbar_BottomMassY",
"b quark rapidity vs mass", 50, 0., 5., 200, -5., 5.,
"M_{b quark} (GeV)",
"Y_{b quark}");
244 "b quark pseudorapidity - rapidity vs mass",
255 "TTbar_WplusPz",
"W+ boson longitudinal momentum", 200, -100., 100.,
"P_{z}^{W+} (GeV)",
"Number of Events");
257 "TTbar_WminPz",
"W- boson longitudinal momentum", 200, -100., 100.,
"P_{z}^{W-} (GeV)",
"Number of Events");
MonitorElement * hBottomYPz
~TTbar_Kinematics() override
TLorentzVector tlv_Bottom
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
edm::EDGetTokenT< GenEventInfoProduct > genEventInfoProductTagToken_
MonitorElement * hBottomMass
MonitorElement * hBottomPtPz
virtual void setCurrentFolder(std::string const &fullpath)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * hTTbarMass
MonitorElement * book2dHisto(const std::string &name, const std::string &title, int nx, double xmin, double xmax, int ny, double ymin, double ymax, const std::string &xaxis, const std::string &yaxis)
MonitorElement * hBottomMassY
MonitorElement * hBottomEtaPt
MonitorElement * hBottomEta
TLorentzVector tlv_TopBar
MonitorElement * hTopMass
TLorentzVector tlv_BottomBar
MonitorElement * hBottomMassPz
MonitorElement * book1dHisto(const std::string &name, const std::string &title, int n, double xmin, double xmax, const std::string &xaxis, const std::string &yaxis)
MonitorElement * hBottomMassEta
edm::InputTag genEventInfoProductTag_
MonitorElement * hBottomPz
MonitorElement * hTTbarPt
MonitorElement * hBottomMassDeltaY
MonitorElement * hBottomPt
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
MonitorElement * hBottomE
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * hWplusPz
edm::InputTag hepmcCollection_
MonitorElement * hBottomEtaPz
TTbar_Kinematics(const edm::ParameterSet &)
MonitorElement * hBottomY