Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A Question on Getting Weights for Different Combinations of Final State Particles #180

Open
jeonghan1000 opened this issue Aug 10, 2021 · 0 comments

Comments

@jeonghan1000
Copy link

Dear MoMEMta team,

Thanks a lot for sharing MoMEMta code to public. I have recently migrated from MadWeight to MoMEMta, and want to know more about features of MoMEMta.

In particular, I would like to get two different weights from two different ways of pairing b-quarks and leptons in di-leptonic ttbar events. The authors kindly put an example code "tt_fullyleptonic.cc". The authors explained (https://arxiv.org/abs/1805.08555) that MoMEMta considers all possible combinations and takes an average of weights. Since for my purpose I didn't want that, so I turned off this feature by setting:

lua_parameters.set("USE_PERM", false);

Then I compute two weights as following:


// combination 1
MoMEMta weight(configuration.freeze());

// Electron
Particle electron { "electron", LorentzVector(lep1.Px(), lep1.Py(), lep1.Pz(), lep1.E() ), -11 };
// b-quark
Particle b1 { "bjet1", LorentzVector( bjet1.Px(), bjet1.Py(), bjet1.Pz(), bjet1.E() ), 5 };
// Muon
Particle muon { "muon", LorentzVector( lep2.Px(), lep2.Py(), lep2.Pz(), lep2.E() ), +13 };
// Anti b-quark
Particle b2 { "bjet2", LorentzVector( bjet2.Px(), bjet2.Py(), bjet2.Pz(), bjet2.E() ), -5 };

std::vector<std::pair<double, double>> weights = weight.computeWeights({muon, electron, b1, b2});


Now to get the weight from the other combination, I just swapped the momenta of two b-quarks:


// b-quark
Particle b1 { "bjet1", LorentzVector( bjet2.Px(), bjet2.Py(), bjet2.Pz(), bjet2.E() ), 5 };

// Anti b-quark
Particle b2 { "bjet2", LorentzVector( bjet1.Px(), bjet1.Py(), bjet1.Pz(), bjet1.E() ), -5 };


and computed the weight:

std::vector<std::pair<double, double>> weights = weight.computeWeights({muon, electron, b1, b2});

Could you please give me some comment on whether it is correct thing to do? Should I make an additional change?

Thank you very much.

Best wishes,

Jeonghan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant