-
Notifications
You must be signed in to change notification settings - Fork 120
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
Adding ghost matching jet flavour defn #123
base: master
Are you sure you want to change the base?
Changes from 4 commits
023b193
23a6cf2
ebce52b
6977d1f
e15759d
baa08e4
f79255c
5a5da9a
7f6006a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,8 +5,12 @@ | |
#include "Math/Vector4D.h" | ||
#include "ROOT/RVec.hxx" | ||
#include "edm4hep/MCParticleData.h" | ||
#include "edm4hep/ReconstructedParticleData.h" | ||
#include "fastjet/JetDefinition.hh" | ||
#include "TRandom3.h" | ||
#include "JetClustering.h" | ||
#include "JetClusteringUtils.h" | ||
#include "MCParticle.h" | ||
|
||
/** Jet tagging utilities interface. | ||
This represents a set functions and utilities to perfom jet tagging from a list of jets. | ||
|
@@ -20,6 +24,44 @@ namespace JetTaggingUtils{ | |
|
||
//Get flavour association of jet | ||
ROOT::VecOps::RVec<int> get_flavour(ROOT::VecOps::RVec<fastjet::PseudoJet> in, ROOT::VecOps::RVec<edm4hep::MCParticleData> MCin); | ||
|
||
struct ghostFlavour { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing documentation line |
||
std::vector<std::vector<float>> flavour; | ||
JetClusteringUtils::FCCAnalysesJet jets; | ||
std::vector<float> ghostStatus; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is there a reason to use vector and not RVec here? |
||
std::vector<int> MCindex; | ||
}; | ||
|
||
|
||
//Get ghost flavour (MC flavour) of jet described here: .. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. wrong format for doxygen |
||
//a struct is returned containing | ||
// - vector of flavours: <<partonFlav Jet 1, partonFlav Jet 2, ...>, <hadronFlav Jet 1, hadron Flav Jet 2, ...>> | ||
// - FCCAnalysesJet struct containing resulting jets (on which functions defined in JetClusteringUtils.cc can be called) | ||
// - vector of jet constituent indices <<constis jet 1>, <constis jet 2>, ...> | ||
// - ghostStatus (0 = not ghost, 1 = ghost parton, 2 = ghost hadron) | ||
// - MCindex vector of indices of ghosts to MC collection (and -1 if not a ghost) <part 1, ..., part n> | ||
struct get_ghostFlavour { | ||
get_ghostFlavour(int algo, float arg_radius, int arg_exclusive, float arg_cut, int arg_sorted, int arg_recombination, float arg_add1=0, float arg_add2=0); | ||
|
||
int m_algo = 0; ///< flag to select jet clustering algorithm defined in JetClustering.cc (0 = kt, 1 = antikt, 2 = cambridge, 3 = eekt, 4 = ee genkt, 5 = genkt, 6 = valencia, 7 = jade) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please move the default values to the function arguments and structure the |
||
float m_radius = 0.5; ///< jet cone radius (note that this variable should be passed even when not used e.g. for eekt) | ||
int m_exclusive = 0; ///< flag for exclusive jet clustering. Possible choices are 0=inclusive clustering, 1=exclusive clustering that would be obtained when running the algorithm with the given dcut, 2=exclusive clustering when the event is clustered (in the exclusive sense) to exactly njets, 3=exclusive clustering when the event is clustered (in the exclusive sense) up to exactly njets, 4=exclusive jets obtained at the given ycut | ||
float m_cut = 5.; ///< pT cut for m_exclusive=0, dcut for m_exclusive=1, N jets for m_exlusive=2, N jets for m_exclusive=3, ycut for m_exclusive=4 | ||
int m_sorted = 0; ///< pT ordering=0, E ordering=1 | ||
int m_recombination = 0; ///< E_scheme=0, pt_scheme=1, pt2_scheme=2, Et_scheme=3, Et2_scheme=4, BIpt_scheme=5, BIpt2_scheme=6, E0_scheme=10, p_scheme=11 | ||
float m_add1 = 0.; /// first additional parameter (to be used in selected clustering scheme) | ||
float m_add2 = 0.; /// second additional parameter | ||
ghostFlavour operator() (ROOT::VecOps::RVec<edm4hep::MCParticleData> Particle, ROOT::VecOps::RVec<int> ind, std::vector<fastjet::PseudoJet> pseudoJets, int partonFlag); | ||
}; | ||
|
||
std::vector<std::vector<float>> get_flavour(ghostFlavour ghostStruct); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing documentation line |
||
|
||
JetClusteringUtils::FCCAnalysesJet get_jets(ghostFlavour ghostStruct); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing documentation line |
||
|
||
std::vector<float> get_ghostStatus(ghostFlavour ghostStruct); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing documentation line |
||
|
||
std::vector<int> get_MCindex(ghostFlavour ghostStruct); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing documentation line |
||
|
||
//Get b-tags with an efficiency applied | ||
ROOT::VecOps::RVec<int> get_btag(ROOT::VecOps::RVec<int> in, float efficiency, float mistag_c=0., float mistag_l=0., float mistag_g=0.); | ||
//Get c-tags with an efficiency applied | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct format for doxygen doc is for example
/** my text */