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

fjcontrib update / PYTHIA with non-default particle mass #16

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cpptools/src/fjcontrib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
message( STATUS "CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}")
set(fjcontrib_version "1.051")
set(fjcontrib_version "1.053")
execute_process ( COMMAND
${CMAKE_CURRENT_SOURCE_DIR}/buildtools/get_fj_contrib.sh
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/buildtools
Expand Down
13 changes: 8 additions & 5 deletions cpptools/src/fjcontrib/buildtools/get_fj_contrib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if [ ! -z ${wdir} ]; then
[ ! -d ${wdir} ] && mkdir -p ${wdir}
fi

fjcontrib_version=1.051
fjcontrib_version=1.053
[ ! -z ${3} ] && fjcontrib_version=${3}

if [ -d ${srcdir} ]; then
Expand All @@ -18,7 +18,7 @@ if [ -d ${srcdir} ]; then
# RecursiveTools
if [ ! -d ${srcdir}/fjcontrib-${fjcontrib_version}/RecursiveTools ]; then
cd ${srcdir}
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/RecursiveTools
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/RecursiveTools --warning=no-unknown-keyword
rm fjcontrib-${fjcontrib_version}/RecursiveTools/example_*.cc
patch fjcontrib-${fjcontrib_version}/RecursiveTools/RecursiveSymmetryCutBase.hh -i ${srcdir}/patches/RecursiveSymmetryCutBase.patch
fi
Expand All @@ -29,7 +29,7 @@ if [ -d ${srcdir} ]; then
# LundPlane
if [ ! -d ${srcdir}/fjcontrib-${fjcontrib_version}/LundPlane ]; then
cd ${srcdir}
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/LundPlane
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/LundPlane --warning=no-unknown-keyword
rm fjcontrib-${fjcontrib_version}/LundPlane/example_*.cc
patch fjcontrib-${fjcontrib_version}/LundPlane/SecondaryLund.hh -i ${srcdir}/patches/SecondaryLund.patch
patch fjcontrib-${fjcontrib_version}/LundPlane/LundGenerator.hh -i ${srcdir}/patches/LundGenerator.patch
Expand All @@ -43,18 +43,21 @@ if [ -d ${srcdir} ]; then
# ConstituentSubtractor
if [ ! -d ${srcdir}/fjcontrib-${fjcontrib_version}/ConstituentSubtractor ]; then
cd ${srcdir}
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/ConstituentSubtractor
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/ConstituentSubtractor --warning=no-unknown-keyword
rm fjcontrib-${fjcontrib_version}/ConstituentSubtractor/example_*.cc
fi

# Nsubjettiness
if [ ! -d ${srcdir}/fjcontrib-${fjcontrib_version}/Nsubjettiness ]; then
cd ${srcdir}
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/Nsubjettiness
tar zxvf ${wdir}/fjcontrib-${fjcontrib_version}.tar.gz fjcontrib-${fjcontrib_version}/Nsubjettiness --warning=no-unknown-keyword
rm fjcontrib-${fjcontrib_version}/Nsubjettiness/example_*.cc
patch fjcontrib-${fjcontrib_version}/Nsubjettiness/MeasureDefinition.hh -i ${srcdir}/patches/MeasureDefinition.patch
patch fjcontrib-${fjcontrib_version}/Nsubjettiness/AxesDefinition.hh -i ${srcdir}/patches/AxesDefinition.patch
fi

rm fjcontrib-${fjcontrib_version}/.[!.]* fjcontrib-${fjcontrib_version}/*/.[!.]* # Remove unnecessary dotfiles

fi
fi
fi
23 changes: 15 additions & 8 deletions cpptools/src/pythiafjext/pyfjtools.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,12 @@ namespace pythiafjtools{
return v;
}

std::vector<fastjet::PseudoJet> vectorize_select(const Pythia8::Pythia &pythia,
int *selection,
std::vector<fastjet::PseudoJet> vectorize_select(const Pythia8::Pythia &pythia,
int *selection,
int nsel,
int user_index_offset,
bool add_particle_info)
int user_index_offset/* = 0*/,
bool add_particle_info/* = false*/,
float particle_mass/* = -1*/)
{
std::vector<fastjet::PseudoJet> v;
std::bitset<kMaxSetting> mask(0); // no particle accepted
Expand Down Expand Up @@ -99,15 +100,21 @@ namespace pythiafjtools{
// std::cout << "[+] ";
// else
// std::cout << "[-] ";
// std::cout
// std::cout
// << ip << " "
// << mask << " !-" << negmask << " " << pmask << " " << " " << "(mask & pmask) " << (mask & pmask) << " "
// << "isFinal = " << pythia.event[ip].isFinal() << " "
// << pythia.event[ip].name()
// << pythia.event[ip].name()
// << std::endl;
if (accept)
{
fastjet::PseudoJet psj(pythia.event[ip].px(), pythia.event[ip].py(), pythia.event[ip].pz(), pythia.event[ip].e());
double particle_e = 0;
if (particle_mass < 0) { // default case, use true particle mass
particle_e = pythia.event[ip].e();
} else { // use E^2 = p^2 + m^2
particle_e = std::pow(std::pow(pythia.event[ip].px(), 2) + std::pow(pythia.event[ip].py(), 2) + std::pow(pythia.event[ip].pz(), 2) + std::pow(particle_mass, 2), 0.5);
}
fastjet::PseudoJet psj(pythia.event[ip].px(), pythia.event[ip].py(), pythia.event[ip].pz(), particle_e);
psj.set_user_index(ip + user_index_offset);
if (add_particle_info)
{
Expand All @@ -116,7 +123,7 @@ namespace pythiafjtools{
}
v.push_back(psj);
}
}
}
return v;
}

Expand Down
7 changes: 4 additions & 3 deletions cpptools/src/pythiafjext/pyfjtools.hh
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ namespace pythiafjtools{
kMaxSetting
};

std::vector<fastjet::PseudoJet> vectorize_select( const Pythia8::Pythia &p,
int *selection, int nsel,
std::vector<fastjet::PseudoJet> vectorize_select( const Pythia8::Pythia &p,
int *selection, int nsel,
int user_index_offset = 0,
bool add_particle_info = false);
bool add_particle_info = false,
float particle_mass = -1);

// implemented in fjtools
// double angularity(const fastjet::PseudoJet &j, double alpha, double scaleR0 = 1.);
Expand Down
1 change: 1 addition & 0 deletions cpptools/src/pythiafjext/pythiafjext.i
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@
%apply (int* IN_ARRAY1, int DIM1) {(int* selection, int nsel)};
%include "pyfjtools.hh"
%clear (int* selection, int nsel);
%template(FJPSJVec) std::vector<fastjet::PseudoJet>;