Page MenuHomeHEPForge

No OneTemporary

This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/Hadronization/ColourReconnector.h b/Hadronization/ColourReconnector.h
--- a/Hadronization/ColourReconnector.h
+++ b/Hadronization/ColourReconnector.h
@@ -1,265 +1,271 @@
// -*- C++ -*-
//
// ColourReconnector.h is a part of Herwig - A multi-purpose Monte Carlo event generator
// Copyright (C) 2002-2017 The Herwig Collaboration
//
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef HERWIG_ColourReconnector_H
#define HERWIG_ColourReconnector_H
#include <ThePEG/Interface/Interfaced.h>
#include "CluHadConfig.h"
#include "ColourReconnector.fh"
namespace Herwig {
using namespace ThePEG;
/** \ingroup Hadronization
* \class ColourReconnector
* \brief Class for changing colour reconnections of partons.
* \author Alberto Ribon, Christian Roehr
*
* This class does the nonperturbative colour rearrangement, after the
* nonperturbative gluon splitting and the "normal" cluster formation.
* It uses the list of particles in the event record, and the collections of
* "usual" clusters which is passed to the main method. If the colour
* reconnection is actually accepted, then the previous collections of "usual"
* clusters is first deleted and then the new one is created.
*
* * @see \ref ColourReconnectorInterfaces "The interfaces"
* defined for ColourReconnector.
*/
class ColourReconnector: public Interfaced {
public:
/**
* Does the colour rearrangement, starting out from the list of particles in
* the event record and the collection of "usual" clusters passed as
* arguments. If the actual rearrangement is accepted, the initial collection of
* clusters is overridden by the old ones.
*/
void rearrange(ClusterVector & clusters);
using CluVecIt = ClusterVector::iterator;
private:
/** PRIVATE MEMBER FUNCTIONS */
/**
* @brief Calculates the sum of the squared cluster masses.
* @arguments q, aq vectors containing the quarks and antiquarks respectively
* @return Sum of cluster squared masses M^2_{q[i],aq[i]}.
*/
Energy2 _clusterMassSum(const PVector & q, const PVector & aq) const;
/**
* @brief Examines whether the cluster vector (under the given permutation of
* the antiquarks) contains colour-octet clusters
* @param cv Cluster vector
* @param P Permutation, a vector of permutated indices from 0 to
* cv.size()-1
*/
bool _containsColour8(const ClusterVector & cv, const vector<size_t> & P) const;
/**
* @brief A Metropolis-type algorithm which finds a local minimum in the
* total sum of cluster masses
* @arguments cv cluster vector
*/
void _doRecoStatistical(ClusterVector & cv) const;
/**
* @brief Plain colour reconnection as used in Herwig 2.5.0
* @arguments cv cluster vector
*/
void _doRecoPlain(ClusterVector & cv) const;
/**
* Baryonic Colour Reconnection model
*/
void _doRecoBaryonic(ClusterVector & cv) const;
void _makeBaryonicClusters(ClusterPtr &c1, ClusterPtr &c2, ClusterPtr &c3,
ClusterPtr &newcluster1, ClusterPtr &newcluster2) const;
/**
* @brief Finds the cluster in cv which, if reconnected with the given
* cluster cl, would result in the smallest sum of cluster masses.
* If no reconnection partner can be found, a pointer to the
* original Cluster cl is returned.
* @arguments cv cluster vector
* cl cluster iterator (must be from cv) which wants to have a reconnection partner
* @return iterator to the found cluster, or the original cluster pointer if
* no mass-reducing combination can be found
*/
CluVecIt _findRecoPartner(CluVecIt cl, ClusterVector & cv) const;
CluVecIt _findPartnerRapidity(CluVecIt cl, ClusterVector & cv) const;
CluVecIt _findPartnerBaryonic(CluVecIt cl, ClusterVector & cv,
bool & tetraCand,
const ClusterVector& a,
CluVecIt &baryonic1,
CluVecIt &baryonic2 ) const;
/**
* @brief Reconnects the constituents of the given clusters to the (only)
* other possible cluster combination.
* @return pair of pointers to the two new clusters
*/
pair <ClusterPtr,ClusterPtr> _reconnect(ClusterPtr &c1, ClusterPtr &c2) const;
/**
* Reconnection method for baryonic reconenction model
*/
pair <ClusterPtr,ClusterPtr> _reconnectBaryonic(ClusterPtr &c1, ClusterPtr &c2) const;
/**
* @brief At random, swap two antiquarks, if not excluded by the
* constraint that there must not be any colour-octet clusters.
* @arguments q, aq vectors containing the quarks and antiquarks respectively
* maxtries maximal number of tries to find a non-colour-octet
* reconfiguration
* @return Pair of ints indicating the indices of the antiquarks to be
* swapped. Returns (-1,-1) if no valid reconfiguration could be
* found after maxtries trials
*/
pair <int,int>
_shuffle(const PVector & q, const PVector & aq, unsigned maxtries = 10) const;
/** DATA MEMBERS */
/**
* Specifies the colour reconnection algorithm to be used.
*/
int _algorithm = 0;
/**
- * The annealing factor is the ratio of two successive temperature steps:
- * T_n = _annealingFactor * T_(n-1)
- */
- double _annealingFactor = 0.9;
-
- /**
- * Number of temperature steps in the statistical annealing algorithm
- */
- unsigned int _annealingSteps = 50;
-
- /**
* Do we do colour reconnections?
*/
int _clreco = 0;
+
/**
+ * Statistical Reco:
* Factor used to determine the initial temperature according to
* InitialTemperature = _initTemp * median {energy changes in a few random
* rearrangements}
*/
- double _initTemp = 0.1;
+ double _initTemp = 0.01;
+
+ /**
+ * Statistical Reco:
+ * The annealing factor is the ratio of two successive temperature steps:
+ * T_n = _annealingFactor * T_(n-1)
+ */
+ double _annealingFactor = 0.21;
+
+ /**
+ * Statistical Reco:
+ * Number of temperature steps in the statistical annealing algorithm
+ */
+ unsigned int _annealingSteps = 10;
+
+ /**
+ * Statistical Reco:
+ * The number of tries per temperature steps is the number of clusters times
+ * this factor.
+ */
+ double _triesPerStepFactor = 0.66;
/**
* Probability that a found reconnection possibility is actually accepted.
*/
double _preco = 0.5;
double _precoBaryonic = 0.5;
-
- /**
- * The number of tries per temperature steps is the number of clusters times
- * this factor.
- */
- double _triesPerStepFactor = 5.0;
+
/**
* maximum allowed distance in the eta phi space for reconnection to occur
*/
/**
* Maximium distance for reconnections
*/
Length _maxDistance = picometer;
/**
* @return true, if the two partons are splitting products of the same
* gluon
*/
bool _isColour8(tcPPtr p, tcPPtr q) const;
/**
* Option for handling octets
*/
unsigned int _octetOption = 0;
public:
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* Standard Init function used to initialize the interfaces.
*/
static void Init();
protected:
/** @name Clone Methods. */
//@{
/**
* Make a simple clone of this object.
* @return a pointer to the new object.
*/
virtual IBPtr clone() const;
/** Make a clone of this object, possibly modifying the cloned object
* to make it sane.
* @return a pointer to the new object.
*/
virtual IBPtr fullclone() const;
//@}
private:
/**
* Private and non-existent assignment operator.
*/
ColourReconnector & operator=(const ColourReconnector &) = delete;
};
}
#endif /* HERWIG_ColourReconnector_H */
diff --git a/Hadronization/SpinHadronizer.cc b/Hadronization/SpinHadronizer.cc
--- a/Hadronization/SpinHadronizer.cc
+++ b/Hadronization/SpinHadronizer.cc
@@ -1,209 +1,213 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the SpinHadronizer class.
//
#include "SpinHadronizer.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/Interface/Switch.h"
#include "ThePEG/EventRecord/Particle.h"
#include "ThePEG/Repository/UseRandom.h"
#include "ThePEG/Repository/EventGenerator.h"
#include "ThePEG/Utilities/DescribeClass.h"
#include "ThePEG/PDT/StandardMatchers.h"
# include "Herwig/Utilities/EnumParticles.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
#include "ThePEG/Helicity/WaveFunction/RSSpinorWaveFunction.h"
#include "Cluster.h"
using namespace Herwig;
void SpinHadronizer::
handle(EventHandler &, const tPVector & tagged,const Hint & ) {
for(const tPPtr & hadron : tagged) {
// mesons
if(MesonMatcher::Check(hadron->data())) {
continue;
}
// baryons
else if(BaryonMatcher::Check(hadron->data())) {
baryonSpin(hadron);
}
else
continue;
}
}
void SpinHadronizer::baryonSpin(tPPtr baryon) {
// check only one parent
if(baryon->parents().size()!=1) return;
tPPtr parent = baryon->parents()[0];
// and its a cluster
if(parent->id()!=ParticleID::Cluster) return;
tClusterPtr cluster = dynamic_ptr_cast<tClusterPtr>(parent);
unsigned int prim_quark = (abs(baryon->id())/1000)%10;
int sign_quark = baryon->id()>0 ? prim_quark : -prim_quark;
// only strange, charm and bottom for the moment
if(prim_quark<minFlav_ || prim_quark>maxFlav_ ) return;
tPPtr quark;
for(unsigned int ix=0;ix<cluster->numComponents();++ix) {
if(cluster->particle(ix)->id()==sign_quark) {
quark = cluster->particle(ix);
}
}
if(!quark) return;
if(!quark->spinInfo()) return;
tcFermionSpinPtr sp(dynamic_ptr_cast<tcFermionSpinPtr>(quark->spinInfo()));
// decay it
sp->decay();
// create the spin info
if(baryon->dataPtr()->iSpin()==PDT::Spin1Half) {
vector<SpinorWaveFunction> waves;
RhoDMatrix rho;
SpinorWaveFunction::calculateWaveFunctions(waves,rho,baryon,outgoing);
SpinorWaveFunction::constructSpinInfo(waves,baryon,outgoing,true);
}
else if(baryon->dataPtr()->iSpin()==PDT::Spin3Half) {
vector<RSSpinorWaveFunction> waves;
RhoDMatrix rho;
RSSpinorWaveFunction::calculateWaveFunctions(waves,rho,baryon,outgoing);
RSSpinorWaveFunction::constructSpinInfo(waves,baryon,outgoing,true);
}
// can't handle spin 5/2 > 3/2
else {
return;
}
// extract the polarization of the quark
double pol = 2.*sp->rhoMatrix()(1,1).real()-1.;
if(sign_quark<0) {
qPol_[prim_quark-3].first += pol;
qPol_[prim_quark-3].second += 1.;
}
else {
qPol_[prim_quark].first += pol;
qPol_[prim_quark].second += 1.;
}
// the different options for different spin types
const int mult = prim_quark*1000;
int bid = abs(baryon->id());
// lambda and Xi spin 1/2 (spin0 diquark)
if(bid== mult+122|| bid== mult+132|| bid== mult+232) {
baryon->spinInfo()->rhoMatrix()(0,0) = 0.5*(1.-pol);
baryon->spinInfo()->rhoMatrix()(1,1) = 0.5*(1.+pol);
}
// sigma_b, xi' and omega_b spin 1/2 (spin1 diquark)
else if(bid== mult+112|| bid== mult+212|| bid== mult+222||
bid== mult+312|| bid== mult+322|| bid== mult+332) {
baryon->spinInfo()->rhoMatrix()(0,0) = 0.5*(1.-pol) +pol*omegaHalf_;
baryon->spinInfo()->rhoMatrix()(1,1) = 0.5*(1.+pol) -pol*omegaHalf_;
}
// sigma*, xi* and omegab* spin 3/2 (spin1 diquark)
else if(bid== mult+114|| bid== mult+214|| bid== mult+224|| bid== mult+334) {
baryon->spinInfo()->rhoMatrix()(0,0) = 0.375*(1.-pol)*omegaHalf_;
baryon->spinInfo()->rhoMatrix()(1,1) = 0.5*(1.-pol)-omegaHalf_/6.*(3.-5.*pol);
baryon->spinInfo()->rhoMatrix()(2,2) = 0.5*(1.+pol)-omegaHalf_/6.*(3.+5.*pol);
baryon->spinInfo()->rhoMatrix()(3,3) = 0.375*(1.+pol)*omegaHalf_;
}
else
return;
// generator()->log() << "Baryon: " << *baryon << "\n";
// generator()->log() << "Parent: " << *cluster << "\n";
// generator()->log() << "Quark: " << *quark << "\n";
// generator()->log() << "Rho\n" << sp->rhoMatrix() << "\n";
// generator()->log() << "testing is decayed " << sp->decayed() <<" \n";
// generator()->log() << baryon->spinInfo()->rhoMatrix() << "\n";
}
IBPtr SpinHadronizer::clone() const {
return new_ptr(*this);
}
IBPtr SpinHadronizer::fullclone() const {
return new_ptr(*this);
}
void SpinHadronizer::persistentOutput(PersistentOStream & os) const {
os << omegaHalf_;
}
void SpinHadronizer::persistentInput(PersistentIStream & is, int) {
is >> omegaHalf_;
}
// The following static variable is needed for the type
// description system in ThePEG.
DescribeClass<SpinHadronizer,StepHandler>
describeHerwigSpinHadronizer("Herwig::SpinHadronizer", "Herwig.so");
void SpinHadronizer::Init() {
static ClassDocumentation<SpinHadronizer> documentation
("The SpinHadronizer class implements a simple mode for"
" the transfer of spin from quarks to hadrons");
static Parameter<SpinHadronizer,double> interfaceOmegaHalf
("OmegaHalf",
"The omega_1/2 Falk-Peskin parameter",
&SpinHadronizer::omegaHalf_, 2./3., 0.0, 1.0,
false, false, Interface::limited);
static Parameter<SpinHadronizer,unsigned int> interfaceMinimumFlavour
("MinimumFlavour",
"The minimum flavour of quark for which to transfer the polarization",
&SpinHadronizer::minFlav_, 3, 3, 5,
false, false, Interface::limited);
static Parameter<SpinHadronizer,unsigned int> interfaceMaximumFlavour
("MaximumFlavour",
"The maximum flavour of quark for which to transfer the polarization",
&SpinHadronizer::maxFlav_, 5, 3, 5,
false, false, Interface::limited);
static Switch<SpinHadronizer,bool> interfaceDebug
("Debug",
"Output info on polarizations each for debugging",
&SpinHadronizer::debug_, false, false, false);
static SwitchOption interfaceDebugYes
(interfaceDebug,
"Yes",
"Debug",
true);
static SwitchOption interfaceDebugNo
(interfaceDebug,
"No",
"No info",
false);
}
void SpinHadronizer::doinit() {
StepHandler::doinit();
if(minFlav_>maxFlav_)
throw InitException() << "The minimum flavour " << minFlav_
<< "must be lower the than maximum flavour " << maxFlav_
<< " in SpinHadronizer::doinit() "
<< Exception::runerror;
}
void SpinHadronizer::dofinish() {
StepHandler::dofinish();
- for(unsigned int ix=0;ix<3;++ix) {
- cerr << "Average polarization of " << getParticleData(long(3+ix))->PDGName() << " antiquarks "
- << qPol_[ix].first/qPol_[ix].second << "\n";
- cerr << "Average polarization of " << getParticleData(long(3+ix))->PDGName() << " quarks "
- << qPol_[ix+3].first/qPol_[ix+3].second << "\n";
+ if(debug_) {
+ for(unsigned int ix=0;ix<3;++ix) {
+ if(qPol_[ix].second!=0)
+ cerr << "Average polarization of " << getParticleData(long(3+ix))->PDGName() << " antiquarks "
+ << qPol_[ix].first/qPol_[ix].second << "\n";
+ if(qPol_[ix+3].second!=0)
+ cerr << "Average polarization of " << getParticleData(long(3+ix))->PDGName() << " quarks "
+ << qPol_[ix+3].first/qPol_[ix+3].second << "\n";
+ }
}
}
void SpinHadronizer::doinitrun() {
StepHandler::doinitrun();
}
diff --git a/MatrixElement/Hadron/MEMinBias.cc b/MatrixElement/Hadron/MEMinBias.cc
--- a/MatrixElement/Hadron/MEMinBias.cc
+++ b/MatrixElement/Hadron/MEMinBias.cc
@@ -1,249 +1,279 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the MEMinBias class.
//
#include "MEMinBias.h"
#include "ThePEG/Utilities/DescribeClass.h"
#include "ThePEG/Interface/Reference.h"
+#include "ThePEG/Interface/Switch.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Utilities/SimplePhaseSpace.h"
//#include "ThePEG/Repository/EventGenerator.h"
#include "ThePEG/Handlers/StandardXComb.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/Handlers/SamplerBase.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
using namespace Herwig;
#include "ThePEG/PDT/EnumParticles.h"
#include "ThePEG/MatrixElement/Tree2toNDiagram.h"
+
+inline bool checkValence(int i,int side,Ptr<StandardEventHandler>::tptr eh){
+ // Inline function to check for valence quarks of the beam.
+ // i: pdgid of quark
+ // side: beam side
+ // eh: pointer to the eventhandler
+ int beam= ( side == 0 ) ? eh->incoming().first->id() : eh->incoming().second->id();
+ vector<int> val;
+ if( beam == ParticleID::pplus || beam == ParticleID::n0 ) val = {1,2};
+ if( beam == ParticleID::pbarminus || beam == ParticleID::nbar0 ) val = { -1 , -2 };
+ if( val.size() == 0 ) assert(false && ("MEMinBias: Valence Quarks not defined for pid "+beam));
+ for(auto v:val)if(v==i)return true;
+ return false;
+}
+
+
void MEMinBias::getDiagrams() const {
int maxflav(2);
// Pomeron data
tcPDPtr pom = getParticleData(990);
-
+ Ptr<StandardEventHandler>::tptr eh = dynamic_ptr_cast<Ptr<StandardEventHandler>::tptr>(generator()->eventHandler());
for ( int i = 1; i <= maxflav; ++i ) {
for( int j=1; j <= i; ++j){
tcPDPtr q1 = getParticleData(i);
tcPDPtr q1b = q1->CC();
tcPDPtr q2 = getParticleData(j);
tcPDPtr q2b = q2->CC();
// For each flavour we add:
//qq -> qq
- add(new_ptr((Tree2toNDiagram(3), q1, pom, q2, 1, q1, 2, q2, -1)));
+ if(!onlyValQuarks_) add(new_ptr((Tree2toNDiagram(3), q1, pom, q2, 1, q1, 2, q2, -1)));
+ else if(checkValence(i,0,eh) && checkValence(j,1,eh) ) add(new_ptr((Tree2toNDiagram(3), q1, pom, q2, 1, q1, 2, q2, -1)));
//qqb -> qqb
- add(new_ptr((Tree2toNDiagram(3), q1, pom, q2b, 1, q1, 2, q2b, -2)));
+ if(!onlyValQuarks_) add(new_ptr((Tree2toNDiagram(3), q1, pom, q2b, 1, q1, 2, q2b, -2)));
+ else if(checkValence(i,0,eh) && checkValence(-j,1,eh) ) add(new_ptr((Tree2toNDiagram(3), q1, pom, q2b, 1, q1, 2, q2b, -2)));
//qbqb -> qbqb
- add(new_ptr((Tree2toNDiagram(3), q1b, pom, q2b, 1, q1b, 2, q2b, -3)));
+ if(!onlyValQuarks_) add(new_ptr((Tree2toNDiagram(3), q1b, pom, q2b, 1, q1b, 2, q2b, -3)));
+ else if(checkValence(-i,0,eh) && checkValence(-j,1,eh) ) add(new_ptr((Tree2toNDiagram(3), q1b, pom, q2b, 1, q1b, 2, q2b, -3)));
}
}
}
Energy2 MEMinBias::scale() const {
return sqr(Scale_);
}
int MEMinBias::nDim() const {
return 0;
}
void MEMinBias::setKinematics() {
HwMEBase::setKinematics(); // Always call the base class method first.
}
bool MEMinBias::generateKinematics(const double *) {
// generate the masses of the particles
for ( int i = 2, N = meMomenta().size(); i < N; ++i ) {
meMomenta()[i] = Lorentz5Momentum(mePartonData()[i]->generateMass());
}
Energy q = ZERO;
try {
q = SimplePhaseSpace::
getMagnitude(sHat(), meMomenta()[2].mass(), meMomenta()[3].mass());
} catch ( ImpossibleKinematics & e ) {
return false;
}
Energy pt = ZERO;
meMomenta()[2].setVect(Momentum3( pt, pt, q));
meMomenta()[3].setVect(Momentum3(-pt, -pt, -q));
meMomenta()[2].rescaleEnergy();
meMomenta()[3].rescaleEnergy();
jacobian(1.0);
return true;
}
double MEMinBias::correctionweight() const {
// Here we calculate the weight to restore the inelastic-diffractiveXSec
// given by the MPIHandler.
// First get the eventhandler to get the current cross sections.
static Ptr<StandardEventHandler>::tptr eh =
dynamic_ptr_cast<Ptr<StandardEventHandler>::tptr>(generator()->eventHandler());
// All diffractive processes make use of this ME.
// The static map can be used to collect all the sumOfWeights.
static map<XCombPtr,double> weightsmap;
weightsmap[lastXCombPtr()]=lastXComb().stats().sumWeights();
// Define static variable to keep trac of reweighting
static double rew_=1.;
static int countUpdateWeight=50;
static double sumRew=0.;
static double countN=0;
// if we produce events we count
if(eh->integratedXSec()>ZERO)sumRew+=rew_;
if(eh->integratedXSec()>ZERO)countN+=1.;
if(countUpdateWeight<countN){
// Summing all diffractive processes (various initial states)
double sum=0.;
for(auto xx:weightsmap){
sum+=xx.second;
}
double avRew=sumRew/countN;
CrossSection XS_have =eh->sampler()->maxXSec()/eh->sampler()->attempts()*sum;
CrossSection XS_wanted=MPIHandler_->inelasticXSec()-MPIHandler_->diffractiveXSec();
double deltaN=50;
// Cross section without reweighting: XS_norew
// XS_have = avcsNorm2*XS_norew (for large N)
// We want to determine the rew that allows to get the wanted XS.
// In deltaN points we want (left) and we get (right):
// XS_wanted*(countN+deltaN) = XS_have*countN + rew*deltaN*XS_norew
// Solve for rew:
rew_=avRew*(XS_wanted*(countN+deltaN)-XS_have*countN)/(XS_have*deltaN);
countUpdateWeight+=deltaN;
}
//Make sure we dont produce negative weights.
// TODO: write finalize method that checks if reweighting was performed correctly.
rew_=max(rew_,0.000001);
rew_=min(rew_,10000.0);
return rew_;
}
double MEMinBias::me2() const {
//tuned so it gives the correct normalization for xmin = 0.11
return csNorm_*(sqr(generator()->maximumCMEnergy())/GeV2);
}
CrossSection MEMinBias::dSigHatDR() const {
return me2()*jacobian()/sHat()*sqr(hbarc)*correctionweight();
}
unsigned int MEMinBias::orderInAlphaS() const {
return 2;
}
unsigned int MEMinBias::orderInAlphaEW() const {
return 0;
}
Selector<MEBase::DiagramIndex>
MEMinBias::diagrams(const DiagramVector & diags) const {
Selector<DiagramIndex> sel;
for ( DiagramIndex i = 0; i < diags.size(); ++i )
sel.insert(1.0, i);
return sel;
}
Selector<const ColourLines *>
MEMinBias::colourGeometries(tcDiagPtr diag) const {
static ColourLines qq("1 4, 3 5");
static ColourLines qqb("1 4, -3 -5");
static ColourLines qbqb("-1 -4, -3 -5");
Selector<const ColourLines *> sel;
switch(diag->id()){
case -1:
sel.insert(1.0, &qq);
break;
case -2:
sel.insert(1.0, &qqb);
break;
case -3:
sel.insert(1.0, &qbqb);
break;
}
return sel;
}
IBPtr MEMinBias::clone() const {
return new_ptr(*this);
}
IBPtr MEMinBias::fullclone() const {
return new_ptr(*this);
}
// The following static variable is needed for the type
// description system in ThePEG.
DescribeClass<MEMinBias,HwMEBase>
describeHerwigMEMinBias("Herwig::MEMinBias", "HwMEHadron.so");
void MEMinBias::persistentOutput(PersistentOStream & os) const {
os << csNorm_ << ounit(Scale_,GeV) << MPIHandler_;
}
void MEMinBias::persistentInput(PersistentIStream & is, int) {
is >> csNorm_ >> iunit(Scale_,GeV) >> MPIHandler_;
}
void MEMinBias::Init() {
static ClassDocumentation<MEMinBias> documentation
("There is no documentation for the MEMinBias class");
static Parameter<MEMinBias,double> interfacecsNorm
("csNorm",
"Normalization of the min-bias cross section.",
&MEMinBias::csNorm_,
1.0, 0.0, 100.0,
false, false, Interface::limited);
static Parameter<MEMinBias,Energy> interfaceScale
("Scale",
"Scale for the Min Bias matrix element.",
&MEMinBias::Scale_,GeV,
2.0*GeV, 0.0*GeV, 100.0*GeV,
false, false, Interface::limited);
static Reference<MEMinBias,UEBase> interfaceMPIHandler
("MPIHandler",
"The object that administers all additional scatterings.",
&MEMinBias::MPIHandler_, false, false, true, true);
+ static Switch<MEMinBias , bool> interfaceOnlyVal
+ ("OnlyValence" ,
+ "Allow the dummy process to only extract valence quarks." ,
+ &MEMinBias::onlyValQuarks_ , false , false , false );
+ static SwitchOption interfaceOnlyValYes
+ ( interfaceOnlyVal , "Yes" , "" , true );
+ static SwitchOption interfaceOnlyValNo
+ ( interfaceOnlyVal , "No" , "" , false );
+
+
}
diff --git a/MatrixElement/Hadron/MEMinBias.h b/MatrixElement/Hadron/MEMinBias.h
--- a/MatrixElement/Hadron/MEMinBias.h
+++ b/MatrixElement/Hadron/MEMinBias.h
@@ -1,212 +1,217 @@
// -*- C++ -*-
#ifndef HERWIG_MEMinBias_H
#define HERWIG_MEMinBias_H
//
// This is the declaration of the MEMinBias class.
//
#include "Herwig/MatrixElement/HwMEBase.h"
#include "Herwig/Shower/UEBase.h"
namespace Herwig {
using namespace ThePEG;
/**
* The MEMinBias class provides a simple colour singlet exchange matrix element
* to be used in the soft component of the multiple scattering model of the
* underlying event
*
* @see \ref MEMinBiasInterfaces "The interfaces"
* defined for MEMinBias.
*/
class MEMinBias: public HwMEBase {
public:
/**
* The default constructor.
*/
MEMinBias() : csNorm_(1.), Scale_(2.*GeV) {}
public:
/** @name Virtual functions required by the MEBase class. */
//@{
/**
* Return the order in \f$\alpha_S\f$ in which this matrix
* element is given.
*/
virtual unsigned int orderInAlphaS() const;
/**
* Return the order in \f$\alpha_{EW}\f$ in which this matrix
* element is given.
*/
virtual unsigned int orderInAlphaEW() const;
/**
* The matrix element for the kinematical configuration
* previously provided by the last call to setKinematics(), suitably
* scaled by sHat() to give a dimension-less number.
* @return the matrix element scaled with sHat() to give a
* dimensionless number.
*/
virtual double me2() const;
/**
* Correction weight to reweight the cross section to the inelastic cross
* section subtracted by the diffractive cross section.
*/
double correctionweight() const;
/**
* Return the scale associated with the last set phase space point.
*/
virtual Energy2 scale() const;
/**
* Set the typed and momenta of the incoming and outgoing partons to
* be used in subsequent calls to me() and colourGeometries()
* according to the associated XComb object. If the function is
* overridden in a sub class the new function must call the base
* class one first.
*/
virtual void setKinematics();
/**
* The number of internal degrees of freedom used in the matrix
* element.
*/
virtual int nDim() const;
/**
* Generate internal degrees of freedom given nDim() uniform
* random numbers in the interval \f$ ]0,1[ \f$. To help the phase space
* generator, the dSigHatDR should be a smooth function of these
* numbers, although this is not strictly necessary.
* @param r a pointer to the first of nDim() consecutive random numbers.
* @return true if the generation succeeded, otherwise false.
*/
virtual bool generateKinematics(const double * r);
/**
* Return the matrix element squared differential in the variables
* given by the last call to generateKinematics().
*/
virtual CrossSection dSigHatDR() const;
/**
* Add all possible diagrams with the add() function.
*/
virtual void getDiagrams() const;
/**
* Get diagram selector. With the information previously supplied with the
* setKinematics method, a derived class may optionally
* override this method to weight the given diagrams with their
* (although certainly not physical) relative probabilities.
* @param dv the diagrams to be weighted.
* @return a Selector relating the given diagrams to their weights.
*/
virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
/**
* Return a Selector with possible colour geometries for the selected
* diagram weighted by their relative probabilities.
* @param diag the diagram chosen.
* @return the possible colour geometries weighted by their
* relative probabilities.
*/
virtual Selector<const ColourLines *>
colourGeometries(tcDiagPtr diag) const;
//@}
public:
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* The standard Init function used to initialize the interfaces.
* Called exactly once for each class by the class description system
* before the main function starts or
* when this class is dynamically loaded.
*/
/**
* The standard Init function used to initialize the interfaces.
* Called exactly once for each class by the class description system
* before the main function starts or
* when this class is dynamically loaded.
*/
static void Init();
protected:
/** @name Clone Methods. */
//@{
/**
* Make a simple clone of this object.
* @return a pointer to the new object.
*/
virtual IBPtr clone() const;
/** Make a clone of this object, possibly modifying the cloned object
* to make it sane.
* @return a pointer to the new object.
*/
virtual IBPtr fullclone() const;
//@}
// If needed, insert declarations of virtual function defined in the
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
private:
/**
* Normalization of the min-bias cross section.
* Note that the cross section is reweighted in addition to produce the
* non-diffractive cross section given by the MPIHandler
* csNorm can be modified to improve the unweighting effiency.
*/
double csNorm_;
/**
* Scale for the Min Bias matrix element
*/
Energy Scale_;
/**
+ * Allow only valence quark extraction.
+ */
+ bool onlyValQuarks_=false;
+
+ /**
* a MPIHandler to administer the creation of several (semihard)
* partonic interactions.
* Needed to comunicate the non-diffractive cross section.
*/
UEBasePtr MPIHandler_;
/**
* The assignment operator is private and must never be called.
* In fact, it should not even be implemented.
*/
MEMinBias & operator=(const MEMinBias &) = delete;
};
}
#endif /* HERWIG_MEMinBias_H */
diff --git a/PDF/HwRemDecayer.cc b/PDF/HwRemDecayer.cc
--- a/PDF/HwRemDecayer.cc
+++ b/PDF/HwRemDecayer.cc
@@ -1,1967 +1,1973 @@
// -*- C++ -*-
//
// HwRemDecayer.cc is a part of Herwig - A multi-purpose Monte Carlo event generator
// Copyright (C) 2002-2017 The Herwig Collaboration
//
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
//
// This is the implementation of the non-inlined, non-templated member
// functions of the HwRemDecayer class.
//
#include "HwRemDecayer.h"
#include "ThePEG/Utilities/DescribeClass.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
#include "ThePEG/Interface/Reference.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/Interface/Switch.h"
#include "ThePEG/Utilities/UtilityBase.h"
#include "ThePEG/Utilities/SimplePhaseSpace.h"
#include "ThePEG/Utilities/Throw.h"
#include "Herwig/Shower/ShowerHandler.h"
using namespace Herwig;
namespace{
const bool dbg = false;
void reShuffle(Lorentz5Momentum &p1, Lorentz5Momentum &p2, Energy m1, Energy m2){
Lorentz5Momentum ptotal(p1+p2);
ptotal.rescaleMass();
if( ptotal.m() < m1+m2 ) {
if(dbg)
cerr << "Not enough energy to perform reshuffling \n";
throw HwRemDecayer::ExtraSoftScatterVeto();
}
Boost boostv = -ptotal.boostVector();
ptotal.boost(boostv);
p1.boost(boostv);
// set the masses and energies,
p1.setMass(m1);
p1.setE(0.5/ptotal.m()*(ptotal.m2()+sqr(m1)-sqr(m2)));
p1.rescaleRho();
// boost back to the lab
p1.boost(-boostv);
p2.boost(boostv);
// set the masses and energies,
p2.setMass(m2);
p2.setE(0.5/ptotal.m()*(ptotal.m2()+sqr(m2)-sqr(m1)));
p2.rescaleRho();
// boost back to the lab
p2.boost(-boostv);
}
}
void HwRemDecayer::initialize(pair<tRemPPtr, tRemPPtr> rems, tPPair beam, Step & step,
Energy forcedSplitScale) {
// the step
thestep = &step;
// valence content of the hadrons
theContent.first = getHadronContent(beam.first);
theContent.second = getHadronContent(beam.second);
// momentum extracted from the hadrons
theUsed.first = Lorentz5Momentum();
theUsed.second = Lorentz5Momentum();
theMaps.first.clear();
theMaps.second.clear();
theX.first = 0.0;
theX.second = 0.0;
theRems = rems;
_forcedSplitScale = forcedSplitScale;
// check remnants attached to the right hadrons
if( (theRems.first && parent(theRems.first ) != beam.first ) ||
(theRems.second && parent(theRems.second) != beam.second) )
throw Exception() << "Remnant order wrong in "
<< "HwRemDecayer::initialize(...)"
<< Exception::runerror;
return;
}
void HwRemDecayer::split(tPPtr parton, HadronContent & content,
tRemPPtr rem, Lorentz5Momentum & used,
PartnerMap &partners, tcPDFPtr pdf, bool first) {
theBeam = parent(rem);
theBeamData = dynamic_ptr_cast<Ptr<BeamParticleData>::const_pointer>
(theBeam->dataPtr());
double currentx = parton->momentum().rho()/theBeam->momentum().rho();
double check = rem==theRems.first ? theX.first : theX.second;
check += currentx;
if(1.0-check < 1e-3) throw ShowerHandler::ExtraScatterVeto();
bool anti;
Lorentz5Momentum lastp(parton->momentum());
int lastID(parton->id());
Energy oldQ(_forcedSplitScale);
_pdf = pdf;
//do nothing if already valence quark
if(first && content.isValenceQuark(parton)) {
//set the extracted value, because otherwise no RemID could be generated.
content.extract(lastID);
// add the particle to the colour partners
partners.push_back(make_pair(parton, tPPtr()));
//set the sign
anti = parton->hasAntiColour() && parton->id()!=ParticleID::g;
if(rem==theRems.first) theanti.first = anti;
else theanti.second = anti;
// add the x and return
if(rem==theRems.first) theX.first += currentx;
else theX.second += currentx;
return;
}
//or gluon for secondaries
else if(!first && lastID == ParticleID::g) {
partners.push_back(make_pair(parton, tPPtr()));
// add the x and return
if(rem==theRems.first) theX.first += currentx;
else theX.second += currentx;
return;
}
// if a sea quark.antiquark forced splitting to a gluon
// Create the new parton with its momentum and parent/child relationship set
PPtr newSea;
if( !(lastID == ParticleID::g ||
lastID == ParticleID::gamma) ) {
newSea = forceSplit(rem, -lastID, oldQ, currentx, lastp, used,content);
ColinePtr cl = new_ptr(ColourLine());
if(newSea->id() > 0) cl-> addColoured(newSea);
else cl->addAntiColoured(newSea);
// if a secondard scatter finished so return
if(!first || content.isValenceQuark(ParticleID::g) ){
partners.push_back(make_pair(parton, newSea));
// add the x and return
if(rem==theRems.first) theX.first += currentx;
else theX.second += currentx;
if(first) content.extract(ParticleID::g);
return;
}
}
// otherwise evolve back to valence
// final valence splitting
PPtr newValence = forceSplit(rem,
lastID!=ParticleID::gamma ?
ParticleID::g : ParticleID::gamma,
oldQ, currentx , lastp, used, content);
// extract from the hadron to allow remnant to be determined
content.extract(newValence->id());
// case of a gluon going into the hard subprocess
if( lastID == ParticleID::g ) {
partners.push_back(make_pair(parton, tPPtr()));
anti = newValence->hasAntiColour();
if(rem==theRems.first) theanti.first = anti;
else theanti.second = anti;
parton->colourLine(!anti)->addColoured(newValence, anti);
return;
}
else if( lastID == ParticleID::gamma) {
partners.push_back(make_pair(parton, newValence));
anti = newValence->hasAntiColour();
ColinePtr newLine(new_ptr(ColourLine()));
newLine->addColoured(newValence, anti);
if(rem==theRems.first) theanti.first = anti;
else theanti.second = anti;
// add the x and return
if(rem==theRems.first) theX.first += currentx;
else theX.second += currentx;
return;
}
//The valence quark will always be connected to the sea quark with opposite sign
tcPPtr particle;
if(lastID*newValence->id() < 0){
particle = parton;
partners.push_back(make_pair(newSea, tPPtr()));
}
else {
particle = newSea;
partners.push_back(make_pair(parton, tPPtr()));
}
anti = newValence->hasAntiColour();
if(rem==theRems.first) theanti.first = anti;
else theanti.second = anti;
if(particle->colourLine())
particle->colourLine()->addAntiColoured(newValence);
if(particle->antiColourLine())
particle->antiColourLine()->addColoured(newValence);
// add the x and return
if(rem==theRems.first) theX.first += currentx;
else theX.second += currentx;
return;
}
void HwRemDecayer::doSplit(pair<tPPtr, tPPtr> partons,
pair<tcPDFPtr, tcPDFPtr> pdfs,
bool first) {
if(theRems.first) {
ParticleVector children=theRems.first->children();
for(unsigned int ix=0;ix<children.size();++ix) {
if(children[ix]->dataPtr()==theRems.first->dataPtr())
theRems.first = dynamic_ptr_cast<RemPPtr>(children[ix]);
}
}
if(theRems.second) {
ParticleVector children=theRems.second->children();
for(unsigned int ix=0;ix<children.size();++ix) {
if(children[ix]->dataPtr()==theRems.second->dataPtr())
theRems.second = dynamic_ptr_cast<RemPPtr>(children[ix]);
}
}
// forced splitting for first parton
if(isPartonic(partons.first )) {
try {
split(partons.first, theContent.first, theRems.first,
theUsed.first, theMaps.first, pdfs.first, first);
}
catch(ShowerHandler::ExtraScatterVeto) {
throw ShowerHandler::ExtraScatterVeto();
}
}
// forced splitting for second parton
if(isPartonic(partons.second)) {
try {
split(partons.second, theContent.second, theRems.second,
theUsed.second, theMaps.second, pdfs.second, first);
// additional check for the remnants
// if can't do the rescale veto the emission
if(!first&&partons.first->data().coloured()&&
partons.second->data().coloured()) {
Lorentz5Momentum pnew[2]=
{theRems.first->momentum() - theUsed.first - partons.first->momentum(),
theRems.second->momentum() - theUsed.second - partons.second->momentum()};
pnew[0].setMass(getParticleData(theContent.first.RemID())->constituentMass());
pnew[0].rescaleEnergy();
pnew[1].setMass(getParticleData(theContent.second.RemID())->constituentMass());
pnew[1].rescaleEnergy();
for(unsigned int iy=0; iy<theRems.first->children().size(); ++iy)
pnew[0] += theRems.first->children()[iy]->momentum();
for(unsigned int iy=0; iy<theRems.second->children().size(); ++iy)
pnew[1] += theRems.second->children()[iy]->momentum();
Lorentz5Momentum ptotal=
theRems.first ->momentum()-partons.first ->momentum()+
theRems.second->momentum()-partons.second->momentum();
// add x limits
if(ptotal.m() < (pnew[0].m() + pnew[1].m()) ) {
if(partons.second->id() != ParticleID::g){
if(partons.second==theMaps.second.back().first)
theUsed.second -= theMaps.second.back().second->momentum();
else
theUsed.second -= theMaps.second.back().first->momentum();
thestep->removeParticle(theMaps.second.back().first);
thestep->removeParticle(theMaps.second.back().second);
}
theMaps.second.pop_back();
theX.second -= partons.second->momentum().rho()/
parent(theRems.second)->momentum().rho();
throw ShowerHandler::ExtraScatterVeto();
}
}
}
catch(ShowerHandler::ExtraScatterVeto){
if(!partons.first||!partons.second||
!theRems.first||!theRems.second)
throw ShowerHandler::ExtraScatterVeto();
//case of the first forcedSplitting worked fine
theX.first -= partons.first->momentum().rho()/
parent(theRems.first)->momentum().rho();
//case of the first interaction
//throw veto immediately, because event get rejected anyway.
if(first) throw ShowerHandler::ExtraScatterVeto();
//secondary interactions have to end on a gluon, if parton
//was NOT a gluon, the forced splitting particles must be removed
if(partons.first->id() != ParticleID::g) {
if(partons.first==theMaps.first.back().first)
theUsed.first -= theMaps.first.back().second->momentum();
else
theUsed.first -= theMaps.first.back().first->momentum();
thestep->removeParticle(theMaps.first.back().first);
thestep->removeParticle(theMaps.first.back().second);
}
theMaps.first.pop_back();
throw ShowerHandler::ExtraScatterVeto();
}
}
// veto if not enough energy for extraction
if( !first &&(theRems.first ->momentum().e() -
partons.first ->momentum().e() < 1.0e-3*MeV ||
theRems.second->momentum().e() -
partons.second->momentum().e() < 1.0e-3*MeV )) {
if(partons.first->id() != ParticleID::g) {
if(partons.first==theMaps.first.back().first)
theUsed.first -= theMaps.first.back().second->momentum();
else
theUsed.first -= theMaps.first.back().first->momentum();
thestep->removeParticle(theMaps.first.back().first);
thestep->removeParticle(theMaps.first.back().second);
}
theMaps.first.pop_back();
if(partons.second->id() != ParticleID::g) {
if(partons.second==theMaps.second.back().first)
theUsed.second -= theMaps.second.back().second->momentum();
else
theUsed.second -= theMaps.second.back().first->momentum();
thestep->removeParticle(theMaps.second.back().first);
thestep->removeParticle(theMaps.second.back().second);
}
theMaps.second.pop_back();
throw ShowerHandler::ExtraScatterVeto();
}
}
void HwRemDecayer::mergeColour(tPPtr pold, tPPtr pnew, bool anti) const {
ColinePtr clnew, clold;
//save the corresponding colour lines
clold = pold->colourLine(anti);
clnew = pnew->colourLine(!anti);
assert(clold);
// There is already a colour line (not the final diquark)
if(clnew){
if( (clnew->coloured().size() + clnew->antiColoured().size()) > 1 ){
if( (clold->coloured().size() + clold->antiColoured().size()) > 1 ){
//join the colour lines
//I don't use the join method, because potentially only (anti)coloured
//particles belong to one colour line
if(clold!=clnew){//procs are not already connected
while ( !clnew->coloured().empty() ) {
tPPtr p = clnew->coloured()[0];
clnew->removeColoured(p);
clold->addColoured(p);
}
while ( !clnew->antiColoured().empty() ) {
tPPtr p = clnew->antiColoured()[0];
clnew->removeAntiColoured(p);
clold->addAntiColoured(p);
}
}
}else{
//if pold is the only member on it's
//colour line, remove it.
clold->removeColoured(pold, anti);
//and add it to clnew
clnew->addColoured(pold, anti);
}
} else{//pnnew is the only member on it's colour line.
clnew->removeColoured(pnew, !anti);
clold->addColoured(pnew, !anti);
}
} else {//there is no coline at all for pnew
clold->addColoured(pnew, !anti);
}
}
void HwRemDecayer::fixColours(PartnerMap partners, bool anti,
double colourDisrupt) const {
PartnerMap::iterator prev;
tPPtr pnew, pold;
assert(partners.size()>=2);
PartnerMap::iterator it=partners.begin();
while(it != partners.end()) {
//skip the first one to have a partner
if(it==partners.begin()){
it++;
continue;
}
prev = it - 1;
//determine the particles to work with
pold = prev->first;
if(prev->second) {
if(!pold->coloured())
pold = prev->second;
else if(pold->hasAntiColour() != anti)
pold = prev->second;
}
assert(pold);
pnew = it->first;
if(it->second) {
if(it->second->colourLine(!anti)) //look for the opposite colour
pnew = it->second;
}
assert(pnew);
// Implement the disruption of colour connections
if( it != partners.end()-1 ) {//last one is diquark-has to be connected
//has to be inside the if statement, so that the probability is
//correctly counted:
if( UseRandom::rnd() < colourDisrupt ){
if(!it->second){//check, whether we have a gluon
mergeColour(pnew, pnew, anti);
}else{
if(pnew==it->first)//be careful about the order
mergeColour(it->second, it->first, anti);
else
mergeColour(it->first, it->second, anti);
}
it = partners.erase(it);
continue;
}
}
// regular merging
mergeColour(pold, pnew, anti);
//end of loop
it++;
}
return;
}
PPtr HwRemDecayer::forceSplit(const tRemPPtr rem, long child, Energy &lastQ,
double &lastx, Lorentz5Momentum &pf,
Lorentz5Momentum &p,
HadronContent & content) const {
static const double eps=1e-6;
// beam momentum
Lorentz5Momentum beam = theBeam->momentum();
// the last scale is minimum of last value and upper limit
Energy minQ=_range*_kinCutoff*sqrt(lastx)/(1-lastx);
if(minQ>lastQ) lastQ=minQ;
// generate the new value of qtilde
// weighted towards the lower value: dP/dQ = 1/Q -> Q(R) =
// Q0 (Qmax/Q0)^R
Energy q;
unsigned int ntry=0,maxtry=100;
double xExtracted = rem==theRems.first ? theX.first : theX.second;
double zmin= lastx/(1.-xExtracted) ,zmax,yy;
if(1-lastx<eps) throw ShowerHandler::ExtraScatterVeto();
do {
q = minQ*pow(lastQ/minQ,UseRandom::rnd());
yy = 1.+0.5*sqr(_kinCutoff/q);
zmax = yy - sqrt(sqr(yy)-1.);
++ntry;
}
while(zmax<zmin&&ntry<maxtry);
if(ntry==maxtry) throw ShowerHandler::ExtraScatterVeto();
if(zmax-zmin<eps) throw ShowerHandler::ExtraScatterVeto();
// now generate z as in FORTRAN HERWIG
// use y = ln(z/(1-z)) as integration variable
double ymin=log(zmin/(1.-zmin));
double ymax=log(zmax/(1.-zmax));
double dely=ymax-ymin;
unsigned int nz=_nbinmax;
dely/=nz;
yy=ymin+0.5*dely;
vector<int> ids;
if(child==21||child==22) {
ids=content.flav;
for(unsigned int ix=0;ix<ids.size();++ix) ids[ix] *= content.sign;
}
else {
ids.push_back(ParticleID::g);
}
// probabilities of the different types of possible splitting
map<long,pair<double,vector<double> > > partonprob;
double ptotal(0.);
for(unsigned int iflav=0;iflav<ids.size();++iflav) {
// only do each parton once
if(partonprob.find(ids[iflav])!=partonprob.end()) continue;
// particle data object
tcPDPtr in = getParticleData(ids[iflav]);
double psum(0.);
vector<double> prob;
for(unsigned int iz=0;iz<nz;++iz) {
double ez=exp(yy);
double wr=1.+ez;
double zr=wr/ez;
double wz=1./wr;
double zz=wz*ez;
double coup = child!=22 ?
_alphaS ->value(sqr(max(wz*q,_kinCutoff))) :
_alphaEM->value(sqr(max(wz*q,_kinCutoff)));
double az=wz*zz*coup;
// g -> q qbar
if(ids[iflav]==ParticleID::g) {
// calculate splitting function
// SP as q is always less than forcedSplitScale, the pdf scale is fixed
// pdfval = _pdf->xfx(theBeamData,in,sqr(q),lastx*zr);
double pdfval=_pdf->xfx(theBeamData,in,sqr(_forcedSplitScale),lastx*zr);
if(pdfval>0.) psum += pdfval*az*0.5*(sqr(zz)+sqr(wz));
}
// q -> q g
else {
// calculate splitting function
// SP as q is always less than forcedSplitScale, the pdf scale is fixed
// pdfval = _pdf->xfx(theBeamData,in,sqr(q),lastx*zr);
double pdfval=_pdf->xfx(theBeamData,in,sqr(_forcedSplitScale),lastx*zr);
if(pdfval>0.) psum += pdfval*az*4./3.*(1.+sqr(wz))*zr;
}
if(psum>0.) prob.push_back(psum);
yy+=dely;
}
if(psum>0.) partonprob[ids[iflav]] = make_pair(psum,prob);
ptotal+=psum;
}
// select the flavour
if(ptotal==0.) throw ShowerHandler::ExtraScatterVeto();
ptotal *= UseRandom::rnd();
map<long,pair<double,vector<double> > >::const_iterator pit;
for(pit=partonprob.begin();pit!=partonprob.end();++pit) {
if(pit->second.first>=ptotal) break;
else ptotal -= pit->second.first;
}
if(pit==partonprob.end())
throw Exception() << "Can't select parton for forced backward evolution in "
<< "HwRemDecayer::forceSplit" << Exception::eventerror;
// select z
unsigned int iz=0;
for(;iz<pit->second.second.size();++iz) {
if(pit->second.second[iz]>ptotal) break;
}
if(iz==pit->second.second.size()) --iz;
double ey=exp(ymin+dely*(float(iz+1)-UseRandom::rnd()));
double z=ey/(1.+ey);
Energy2 pt2=sqr((1.-z)*q)- z*sqr(_kinCutoff);
// create the particle
if(pit->first!=ParticleID::g) child=pit->first;
PPtr parton = getParticleData(child)->produceParticle();
Energy2 emittedm2 = sqr(parton->dataPtr()->constituentMass());
// Now boost pcm and pf to z only frame
Lorentz5Momentum p_ref = Lorentz5Momentum(ZERO, beam.vect());
Lorentz5Momentum n_ref = Lorentz5Momentum(ZERO, -beam.vect());
// generate phi and compute pt of branching
double phi = Constants::twopi*UseRandom::rnd();
Energy pt=sqrt(pt2);
Lorentz5Momentum qt = LorentzMomentum(pt*cos(phi), pt*sin(phi), ZERO, ZERO);
Axis axis(p_ref.vect().unit());
if(axis.perp2()>0.) {
LorentzRotation rot;
double sinth(sqrt(sqr(axis.x())+sqr(axis.y())));
rot.setRotate(acos(axis.z()),Axis(-axis.y()/sinth,axis.x()/sinth,0.));
qt.transform(rot);
}
// compute alpha for previous particle
Energy2 p_dot_n = p_ref*n_ref;
double lastalpha = pf*n_ref/p_dot_n;
Lorentz5Momentum qtout=qt;
Energy2 qtout2=-qt*qt;
double alphaout=(1.-z)/z*lastalpha;
double betaout=0.5*(emittedm2+qtout2)/alphaout/p_dot_n;
Lorentz5Momentum k=alphaout*p_ref+betaout*n_ref+qtout;
k.rescaleMass();
parton->set5Momentum(k);
pf+=k;
lastQ=q;
lastx/=z;
p += parton->momentum();
thestep->addDecayProduct(rem,parton,false);
return parton;
}
void HwRemDecayer::setRemMasses() const {
// get the masses of the remnants
Energy mrem[2];
Lorentz5Momentum ptotal,pnew[2];
vector<tRemPPtr> theprocessed;
theprocessed.push_back(theRems.first);
theprocessed.push_back(theRems.second);
// one remnant in e.g. DIS
if(!theprocessed[0]||!theprocessed[1]) {
tRemPPtr rem = theprocessed[0] ? theprocessed[0] : theprocessed[1];
Lorentz5Momentum deltap(rem->momentum());
// find the diquark and momentum we still need in the energy
tPPtr diquark;
vector<PPtr> progenitors;
for(unsigned int ix=0;ix<rem->children().size();++ix) {
if(!DiquarkMatcher::Check(rem->children()[ix]->data())) {
progenitors.push_back(rem->children()[ix]);
deltap -= rem->children()[ix]->momentum();
}
else
diquark = rem->children()[ix];
}
// now find the total momentum of the hadronic final-state to
// reshuffle against
// find the hadron for this remnant
tPPtr hadron=rem;
do hadron=hadron->parents()[0];
while(!hadron->parents().empty());
// find incoming parton to hard process from this hadron
tPPtr hardin =
generator()->currentEvent()->primaryCollision()->incoming().first==hadron ?
generator()->currentEvent()->primarySubProcess()->incoming().first :
generator()->currentEvent()->primarySubProcess()->incoming().second;
tPPtr parent=hardin;
vector<PPtr> tempprog;
// find the outgoing particles emitted from the backward shower
do {
assert(!parent->parents().empty());
tPPtr newparent=parent->parents()[0];
if(newparent==hadron) break;
for(unsigned int ix=0;ix<newparent->children().size();++ix) {
if(newparent->children()[ix]!=parent)
findChildren(newparent->children()[ix],tempprog);
}
parent=newparent;
}
while(parent!=hadron);
// add to list of potential particles to reshuffle against in right order
for(unsigned int ix=tempprog.size();ix>0;--ix) progenitors.push_back(tempprog[ix-1]);
// final-state particles which are colour connected
tColinePair lines = make_pair(hardin->colourLine(),hardin->antiColourLine());
vector<PPtr> others;
for(ParticleVector::const_iterator
cit = generator()->currentEvent()->primarySubProcess()->outgoing().begin();
cit!= generator()->currentEvent()->primarySubProcess()->outgoing().end();++cit) {
// colour connected
if(lines.first&&lines.first==(**cit).colourLine()) {
findChildren(*cit,progenitors);
continue;
}
// anticolour connected
if(lines.second&&lines.second==(**cit).antiColourLine()) {
findChildren(*cit,progenitors);
continue;
}
// not connected
for(unsigned int ix=0;ix<(**cit).children().size();++ix)
others.push_back((**cit).children()[ix]);
}
// work out how much of the system needed for rescaling
unsigned int iloc=0;
Lorentz5Momentum psystem,ptotal;
do {
psystem+=progenitors[iloc]->momentum();
ptotal = psystem + deltap;
ptotal.rescaleMass();
psystem.rescaleMass();
++iloc;
if(ptotal.mass() > psystem.mass() + diquark->mass() &&
psystem.mass()>1*MeV && DISRemnantOpt_<2 && ptotal.e() > 0.*GeV ) break;
}
while(iloc<progenitors.size());
if(ptotal.mass() > psystem.mass() + diquark->mass()) --iloc;
if(iloc==progenitors.size()) {
// try touching the lepton in dis as a last restort
for(unsigned int ix=0;ix<others.size();++ix) {
progenitors.push_back(others[ix]);
psystem+=progenitors[iloc]->momentum();
ptotal = psystem + deltap;
ptotal.rescaleMass();
psystem.rescaleMass();
++iloc;
}
--iloc;
if(ptotal.mass() > psystem.mass() + diquark->mass()) {
if(DISRemnantOpt_==0||DISRemnantOpt_==2)
Throw<Exception>() << "Warning had to adjust the momentum of the"
<< " non-colour connected"
<< " final-state, e.g. the scattered lepton in DIS"
<< Exception::warning;
else
throw Exception() << "Can't set remnant momentum without adjusting "
<< "the momentum of the"
<< " non-colour connected"
<< " final-state, e.g. the scattered lepton in DIS"
<< " vetoing event"
<< Exception::eventerror;
}
else {
throw Exception() << "Can't put the remnant on-shell in HwRemDecayer::setRemMasses()"
<< Exception::eventerror;
}
}
psystem.rescaleMass();
LorentzRotation R = Utilities::getBoostToCM(make_pair(psystem, deltap));
Energy pz = SimplePhaseSpace::getMagnitude(sqr(ptotal.mass()),
psystem.mass(), diquark->mass());
LorentzRotation Rs(-(R*psystem).boostVector());
Rs.boost(0.0, 0.0, pz/sqrt(sqr(pz) + sqr(psystem.mass())));
Rs = Rs*R;
// put remnant on shell
deltap.transform(R);
deltap.setMass(diquark->mass());
deltap.setE(sqrt(sqr(diquark->mass())+sqr(pz)));
deltap.rescaleRho();
R.invert();
deltap.transform(R);
Rs = R*Rs;
// apply transformation to required particles to absorb recoil
for(unsigned int ix=0;ix<=iloc;++ix) {
progenitors[ix]->deepTransform(Rs);
}
diquark->set5Momentum(deltap);
}
// two remnants
else {
for(unsigned int ix=0;ix<2;++ix) {
if(!theprocessed[ix]) continue;
pnew[ix]=Lorentz5Momentum();
for(unsigned int iy=0;iy<theprocessed[ix]->children().size();++iy) {
pnew[ix]+=theprocessed[ix]->children()[iy]->momentum();
}
mrem[ix]=sqrt(pnew[ix].m2());
}
// now find the remnant remnant cmf frame
Lorentz5Momentum prem[2]={theprocessed[0]->momentum(),
theprocessed[1]->momentum()};
ptotal=prem[0]+prem[1];
ptotal.rescaleMass();
// boost momenta to this frame
if(ptotal.m()< (pnew[0].m()+pnew[1].m()))
throw Exception() << "Not enough energy in both remnants in "
<< "HwRemDecayer::setRemMasses() "
<< Exception::eventerror;
Boost boostv(-ptotal.boostVector());
ptotal.boost(boostv);
for(unsigned int ix=0;ix<2;++ix) {
prem[ix].boost(boostv);
// set the masses and energies,
prem[ix].setMass(mrem[ix]);
prem[ix].setE(0.5/ptotal.m()*(sqr(ptotal.m())+sqr(mrem[ix])-sqr(mrem[1-ix])));
prem[ix].rescaleRho();
// boost back to the lab
prem[ix].boost(-boostv);
// set the momenta of the remnants
theprocessed[ix]->set5Momentum(prem[ix]);
}
// boost the decay products
Lorentz5Momentum ptemp;
for(unsigned int ix=0;ix<2;++ix) {
Boost btorest(-pnew[ix].boostVector());
Boost bfmrest( prem[ix].boostVector());
for(unsigned int iy=0;iy<theprocessed[ix]->children().size();++iy) {
ptemp=theprocessed[ix]->children()[iy]->momentum();
ptemp.boost(btorest);
ptemp.boost(bfmrest);
theprocessed[ix]->children()[iy]->set5Momentum(ptemp);
}
}
}
}
void HwRemDecayer::initSoftInteractions(Energy ptmin, InvEnergy2 beta){
ptmin_ = ptmin;
beta_ = beta;
}
Energy HwRemDecayer::softPt() const {
Energy2 pt2(ZERO);
double xmin(0.0), xmax(1.0), x(0);
if(beta_ == ZERO){
return UseRandom::rnd(0.0,(double)(ptmin_/GeV))*GeV;
}
if(beta_ < ZERO){
xmin = 1.0;
xmax = exp( -beta_*sqr(ptmin_) );
}else{
xmin = exp( -beta_*sqr(ptmin_) );
xmax = 1.0;
}
x = UseRandom::rnd(xmin, xmax);
pt2 = 1.0/beta_ * log(1/x);
if( pt2 < ZERO || pt2 > sqr(ptmin_) )
throw Exception() << "HwRemDecayer::softPt generation of pt "
<< "outside allowed range [0," << ptmin_/GeV << "]."
<< Exception::runerror;
//ofstream myfile2("softPt.txt", ios::app );
//myfile2 << pt2/GeV2 <<" "<<sqrt(pt2)/GeV<< endl;
//myfile2.close();
return sqrt(pt2);
}
void HwRemDecayer::softKinematics(Lorentz5Momentum &r1, Lorentz5Momentum &r2,
Lorentz5Momentum &g1, Lorentz5Momentum &g2) const {
g1 = Lorentz5Momentum();
g2 = Lorentz5Momentum();
//All necessary variables for the two soft gluons
Energy pt(softPt()), pz(ZERO);
Energy2 pz2(ZERO);
double phi(UseRandom::rnd(2.*Constants::pi));
double x_g1(0.0), x_g2(0.0);
//Get the external momenta
tcPPair beam(generator()->currentEventHandler()->currentCollision()->incoming());
Lorentz5Momentum P1(beam.first->momentum()), P2(beam.second->momentum());
if(dbg){
cerr << "new event --------------------\n"
<< *(beam.first) << *(softRems_.first)
<< "-------------------\n"
<< *(beam.second) << *(softRems_.second) << endl;
}
//parton mass
Energy mp;
if(quarkPair_){
mp = getParticleData(ParticleID::u)->constituentMass();
}else{
mp = mg_;
}
//Get x_g1 and x_g2
//first limits
double xmin = sqr(ptmin_)/4.0/(P1+P2).m2();
double x1max = (r1.e()+abs(r1.z()))/(P1.e() + abs(P1.z()));
double x2max = (r2.e()+abs(r2.z()))/(P2.e() + abs(P2.z()));
double x1;
if(!multiPeriph_){
//now generate according to 1/x
x_g1 = xmin * exp(UseRandom::rnd(log(x1max/xmin)));
x_g2 = xmin * exp(UseRandom::rnd(log(x2max/xmin)));
}else{
if(valOfN_==0) return;
double param = (1/(2*valOfN_+1))*initTotRap_;
do{
// need 1-x instead of x to get the proper final momenta
x1 = UseRandom::rndGauss(gaussWidth_, 1 - (exp(param)-1)/exp(param));
}while(x1 < 0 || x1>=1.0);
x_g1 = x1max*x1;
x_g2 = x2max*x1;
}
if(dbg)
cerr << x1max << " " << x_g1 << endl << x2max << " " << x_g2 << endl;
Lorentz5Momentum ig1, ig2, cmf;
ig1 = x_g1*P1;
ig2 = x_g2*P2;
ig1.setMass(mp);
ig2.setMass(mp);
ig1.rescaleEnergy();
ig2.rescaleEnergy();
cmf = ig1 + ig2;
//boost vector from cmf to lab
Boost boostv(cmf.boostVector());
//outgoing gluons in cmf
g1.setMass(mp);
g2.setMass(mp);
g1.setX(pt*cos(phi));
g2.setX(-pt*cos(phi));
g1.setY(pt*sin(phi));
g2.setY(-pt*sin(phi));
pz2 = cmf.m2()/4 - sqr(mp) - (pt*pt);
if( pz2/GeV2 < 0.0 ){
if(dbg)
cerr << "EXCEPTION not enough energy...." << endl;
throw ExtraSoftScatterVeto();
}
if(!multiPeriph_){
if(UseRandom::rndbool()){
pz = sqrt(pz2);
}else
pz = -sqrt(pz2);
}else{
pz = pz2 > ZERO ? sqrt(pz2) : ZERO;
}
if(dbg)
cerr << "pz1 has been calculated to: " << pz/GeV << endl;
g1.setZ(pz);
g2.setZ(-pz);
g1.rescaleEnergy();
g2.rescaleEnergy();
if(dbg){
cerr << "check inv mass in cmf frame: " << (g1+g2).m()/GeV
<< " vs. lab frame: " << (ig1+ig2).m()/GeV << endl;
}
g1.boost(boostv);
g2.boost(boostv);
//recalc the remnant momenta
Lorentz5Momentum r1old(r1), r2old(r2);
r1 -= g1;
r2 -= g2;
try{
reShuffle(r1, r2, r1old.m(), r2old.m());
}catch(ExtraSoftScatterVeto){
r1 = r1old;
r2 = r2old;
throw ExtraSoftScatterVeto();
}
if(dbg){
cerr << "remnant 1,2 momenta: " << r1/GeV << "--" << r2/GeV << endl;
cerr << "remnant 1,2 masses: " << r1.m()/GeV << " " << r2.m()/GeV << endl;
cerr << "check momenta in the lab..." << (-r1old-r2old+r1+r2+g1+g2)/GeV << endl;
}
}
void HwRemDecayer::doSoftInteractions_old(unsigned int N) {
if(N == 0) return;
if(!softRems_.first || !softRems_.second)
throw Exception() << "HwRemDecayer::doSoftInteractions: no "
<< "Remnants available."
<< Exception::runerror;
if( ptmin_ == -1.*GeV )
throw Exception() << "HwRemDecayer::doSoftInteractions: init "
<< "code has not been called! call initSoftInteractions."
<< Exception::runerror;
Lorentz5Momentum g1, g2;
Lorentz5Momentum r1(softRems_.first->momentum()), r2(softRems_.second->momentum());
unsigned int tries(1), i(0);
for(i=0; i<N; i++){
//check how often this scattering has been regenerated
if(tries > maxtrySoft_) break;
if(dbg){
cerr << "new try \n" << *softRems_.first << *softRems_.second << endl;
}
try{
softKinematics(r1, r2, g1, g2);
}catch(ExtraSoftScatterVeto){
tries++;
i--;
continue;
}
PPair oldrems = softRems_;
PPair gluons = make_pair(addParticle(softRems_.first, ParticleID::g, g1),
addParticle(softRems_.second, ParticleID::g, g2));
//now reset the remnants with the new ones
softRems_.first = addParticle(softRems_.first, softRems_.first->id(), r1);
softRems_.second = addParticle(softRems_.second, softRems_.second->id(), r2);
//do the colour connections
pair<bool, bool> anti = make_pair(oldrems.first->hasAntiColour(),
oldrems.second->hasAntiColour());
ColinePtr cl1 = new_ptr(ColourLine());
ColinePtr cl2 = new_ptr(ColourLine());
// case 2:
oldrems.first->colourLine(anti.first)
->addColoured(gluons.second,anti.second);
cl2->addColoured(softRems_.first, anti.second);
cl2->addColoured(gluons.second, !anti.second);
oldrems.first->colourLine(anti.first)
->addColoured(gluons.second,anti.second);
oldrems.second->colourLine(anti.second)
->addColoured(gluons.first,anti.first);
cl1->addColoured(softRems_.second, anti.first);
cl1->addColoured(gluons.first, !anti.first);
cl2->addColoured(softRems_.first, anti.second);
cl2->addColoured(gluons.second, !anti.second);
//reset counter
tries = 1;
}
if(dbg)
cerr << "generated " << i << "th soft scatters\n";
}
// Solve the reshuffling equation to rescale the remnant momenta
double bisectReshuffling(const vector<PPtr>& particles,
Energy w,
double target = -16., double maxLevel = 80.) {
double level = 0;
double left = 0;
double right = 1;
double check = -1.;
double xi = -1;
while ( level < maxLevel ) {
xi = (left+right)*pow(0.5,level+1.);
check = 0.;
for (vector<PPtr>::const_iterator p = particles.begin(); p != particles.end(); ++p){
check += sqrt(sqr(xi)*((*p)->momentum().vect().mag2())+sqr((*p)->mass()))/w;
}
if ( check==1. || log10(abs(1.-check)) <= target )
break;
left *= 2.;
right *= 2.;
if ( check >= 1. ) {
right -= 1.;
++level;
}
if ( check < 1. ) {
left += 1.;
++level;
}
}
return xi;
}
LorentzRotation HwRemDecayer::rotate(const LorentzMomentum &p) const {
LorentzRotation R;
static const double ptcut = 1e-20;
Energy2 pt2 = sqr(p.x())+sqr(p.y());
Energy2 pp2 = sqr(p.z())+pt2;
double phi, theta;
if(pt2 <= pp2*ptcut) {
if(p.z() > ZERO) theta = 0.;
else theta = Constants::pi;
phi = 0.;
} else {
Energy pp = sqrt(pp2);
Energy pt = sqrt(pt2);
double ct = p.z()/pp;
double cf = p.x()/pt;
phi = -acos(cf);
theta = acos(ct);
}
// Rotate first around the z axis to put p in the x-z plane
// Then rotate around the Y axis to put p on the z axis
R.rotateZ(phi).rotateY(theta);
return R;
}
struct vectorSort{
bool operator() (Lorentz5Momentum i,Lorentz5Momentum j) {return(i.rapidity() < j.rapidity());}
} ySort;
void HwRemDecayer::doSoftInteractions_multiPeriph(unsigned int N) {
if(N == 0) return;
int Nmpi = N;
for(int j=0;j<Nmpi;j++){
///////////////////////
// TODO: parametrization of the ladder multiplicity (need to tune to 900GeV, 7Tev and 13Tev)
// Parameterize the ladder multiplicity to: ladderMult_ = A_0 * (s/1TeV^2)^alpha
// with the two tunable parameters A_0 =ladderNorm_ and alpha = ladderPower_
// Get the collision energy
Energy energy(generator()->maximumCMEnergy());
//double reference = sqr(energy/TeV);
// double ladderMult_;
// Parametrization of the ladder multiplicity
// ladderMult_ = ladderNorm_ * pow( ( reference ) , ladderPower_ );
double avgN = 2.*ladderMult_*log((softRems_.first->momentum()
+softRems_.second->momentum()).m()/mg_) + ladderbFactor_;
initTotRap_ = abs(softRems_.first->momentum().rapidity())
+abs(softRems_.second->momentum().rapidity());
+
// Generate the poisson distribution with mean avgN
N=UseRandom::rndPoisson(avgN);
valOfN_=N;
if(N <= 1){
// j--; //TODO: Do we want to make all Nmpi soft MPIs?
// Compare to MaxTryMPI for hard mpis.
continue;
}
if(!softRems_.first || !softRems_.second)
throw Exception() << "HwRemDecayer::doSoftInteractions: no "
<< "Remnants available."
<< Exception::runerror;
if( ptmin_ == -1.*GeV )
throw Exception() << "HwRemDecayer::doSoftInteractions: init "
<< "code has not been called! call initSoftInteractions."
<< Exception::runerror;
// The remnants
PPtr rem1 = softRems_.first;
PPtr rem2 = softRems_.second;
// Vector for the ladder particles
vector<Lorentz5Momentum> ladderMomenta;
// Remnant momenta
Lorentz5Momentum r1(softRems_.first->momentum()), r2(softRems_.second->momentum());
Lorentz5Momentum cm =r1+r2;
// Initialize partons in the ladder
// The toy masses are needed for the correct calculation of the available energy
Lorentz5Momentum sumMomenta;
for(unsigned int i = 0; i < N; i++) {
// choose constituents
Energy newMass = ZERO;
Energy toyMass;
if(i<2){
// u and d have the same mass so its enough to use u
toyMass = getParticleData(ParticleID::u)->constituentMass();
}
else{
toyMass = getParticleData(ParticleID::g)->constituentMass();
}
Lorentz5Momentum cp(ZERO,ZERO,ZERO,newMass,newMass);
// dummy container for the momentum that is used for momentum conservation
Lorentz5Momentum dummy(ZERO,ZERO,ZERO,toyMass,toyMass);
ladderMomenta.push_back(cp);
sumMomenta+=dummy;
}
// Get the beam energy
tcPPair beam(generator()->currentEventHandler()->currentCollision()->incoming());
Lorentz5Momentum P1(beam.first->momentum()), P2(beam.second->momentum());
// Calculate available energy for the partons
double x1,x2;
double param = (1./(valOfN_+1.))*initTotRap_;
do{
// Need 1-x instead of x to get the proper final momenta
// TODO: physical to use different x's (see comment below)
x1 = UseRandom::rndGauss( gaussWidth_ , exp(-param) );
+
// x2 = UseRandom::rndGauss( gaussWidth_ , exp(-param) );
}while(x1 < 0 || x1>=1.0); // x2 < 0 || x2>=1.0);
// Remnants 1 and 2 need to be rescaled later by this amount
Lorentz5Momentum ig1 = x1*r1;
Lorentz5Momentum ig2 = x1*r2; //TODO: x2*r2
// requires boost of Ladder in x1/x2-dependent
// frame.
// The available energy that is used to generate the ladder
// sumMomenta is the the sum of rest masses of the ladder partons
// the available energy goes all into the kinematics
Energy availableEnergy = (ig1+ig2).m() - sumMomenta.m();
// If not enough energy then continue
// The available energy has to be larger then the rest mass of the remnants
if ( availableEnergy < ZERO ) {
// j--; //TODO: Do we want to make all Nmpi soft MPIs?
continue;
}
unsigned int its(0);
// Generate the momenta of the partons in the ladder
if ( !(doPhaseSpaceGenerationGluons(ladderMomenta,availableEnergy,its)) ){
// j--; //TODO: Do we want to make all Nmpi soft MPIs?
continue;
}
// Add gluon mass and rescale
Lorentz5Momentum totalMomPartons;
Lorentz5Momentum totalMassLessPartons;
// Sort the ladder partons according to their rapidity and then choose which ones will be the quarks
sort(ladderMomenta.begin(),ladderMomenta.end(),ySort);
int countPartons=0;
long quarkID=0;
// Choose between up and down quarks
int choice = UseRandom::rnd2(1,1);
switch (choice) {
case 0: quarkID = ParticleID::u; break;
case 1: quarkID = ParticleID::d; break;
}
for (auto &p:ladderMomenta){
totalMomPartons+=p;
// Set the mass of the gluons and the two quarks in the ladder
if(countPartons==0 || countPartons==(ladderMomenta.size()-1)){
p.setMass( getParticleData(quarkID)->constituentMass() );
}else{
p.setMass( getParticleData(ParticleID::g)->constituentMass() );
}
p.rescaleEnergy();
countPartons++;
}
// Continue if energy conservation is violated
if ( abs(availableEnergy - totalMomPartons.m()) > 1e-8*GeV){
// j--; //TODO: Do we want to make all Nmpi soft MPIs?
continue;
}
// Boost momenta into CM frame
const Boost boostv(-totalMomPartons.boostVector());
Lorentz5Momentum totalMomentumAfterBoost;
for ( unsigned int i=0; i<ladderMomenta.size(); i++){
ladderMomenta[i].boost(boostv);
totalMomentumAfterBoost +=ladderMomenta[i];
}
const Boost boostvR(-cm.boostVector());
r1.boost(boostvR);
r2.boost(boostvR);
// Remainig energy after generation of soft ladder
Energy remainingEnergy = cm.m() - totalMomentumAfterBoost.m();
// Continue if not enough energy
if(remainingEnergy<ZERO) {
// j--; //TODO: Do we want to make all Nmpi soft MPIs?
continue;
}
vector<PPtr> remnants;
rem1->set5Momentum(r1);
rem2->set5Momentum(r2);
remnants.push_back(rem1);
remnants.push_back(rem2);
vector<PPtr> reshuffledRemnants;
Lorentz5Momentum totalMomentumAll;
// Bisect reshuffling for rescaling of remnants
double xi_remnants = bisectReshuffling(remnants,remainingEnergy);
// Rescale remnants
for ( auto &rems: remnants ) {
Lorentz5Momentum reshuffledMomentum;
reshuffledMomentum = xi_remnants*rems->momentum();
reshuffledMomentum.setMass(getParticleData(softRems_.first->id())->constituentMass());
reshuffledMomentum.rescaleEnergy();
reshuffledMomentum.boost(-boostvR);
rems->set5Momentum(reshuffledMomentum);
totalMomentumAll+=reshuffledMomentum;
}
// Then the other particles
for ( auto &p:ladderMomenta ) {
p.boost(-boostvR);
totalMomentumAll+=p;
}
+ // sort again
+ sort(ladderMomenta.begin(),ladderMomenta.end(),ySort);
+
// Do the colour connections
// Original rems are the ones which are connected to other parts of the event
PPair oldRems_ = softRems_;
pair<bool, bool> anti = make_pair(oldRems_.first->hasAntiColour(),
oldRems_.second->hasAntiColour());
// Replace first remnant
softRems_.first = addParticle(softRems_.first, softRems_.first->id(),
remnants[0]->momentum());
// Connect the old remnant to the new remnant
oldRems_.first->colourLine(anti.first)->addColoured(softRems_.first, anti.first);
// Replace second remnant
softRems_.second = addParticle(softRems_.second, softRems_.second->id(),
remnants[1]->momentum());
// This connects the old remnants to the new remnants
oldRems_.second->colourLine(anti.second)->addColoured(softRems_.second, anti.second);
// Add all partons to the first remnant for the event record
vector<PPtr> partons;
+ vector<PPtr> quarks;
int count=0;
// Choose the colour connections and position of quark antiquark
// Choose between R1-q-g..g-qbar-R2 or R1-qbar-g...g-q-R2
// (place of quark antiquarks in the ladder)
int quarkPosition = UseRandom::rnd2(1,1);
for (auto &p:ladderMomenta){
if(p.mass()==getParticleData(ParticleID::u)->constituentMass()){
if(count==0){
if(quarkPosition==0){
- partons.push_back(addParticle(softRems_.first, quarkID, p));
+ quarks.push_back(addParticle(softRems_.first, quarkID, p));
count++;
}else{
- partons.push_back(addParticle(softRems_.first, -quarkID, p));
+ quarks.push_back(addParticle(softRems_.first, -quarkID, p));
count++;
}
}else{
if(quarkPosition==0){
- partons.push_back(addParticle(softRems_.first, -quarkID, p));
+ quarks.push_back(addParticle(softRems_.first, -quarkID, p));
}else{
- partons.push_back(addParticle(softRems_.first, quarkID, p));
+ quarks.push_back(addParticle(softRems_.first, quarkID, p));
}
}
}else{
partons.push_back(addParticle(softRems_.first, ParticleID::g, p));
}
softRems_.first = addParticle(softRems_.first, softRems_.first->id(),
softRems_.first->momentum());
oldRems_.first->colourLine(anti.first)->addColoured(softRems_.first, anti.first);
}
// Need to differenciate between the two quark positions, this defines the
// colour connections to the new remnants and old remnants
if(quarkPosition==0){
// ladder self contained
- if(partons.size()==2){
+ if(partons.size()==0 && quarks.size()>0){
ColinePtr clq = new_ptr(ColourLine());
- clq->addColoured(partons[0]);
- clq->addAntiColoured(partons[1]);
+ clq->addColoured(quarks[0]);
+ clq->addAntiColoured(quarks[1]);
}
ColinePtr clfirst = new_ptr(ColourLine());
ColinePtr cllast = new_ptr(ColourLine());
- if(partons.size()>2){
- clfirst->addColoured(partons[0]);
- clfirst->addAntiColoured(partons[1]);
- cllast->addAntiColoured(partons[partons.size()-1]);
- cllast->addColoured(partons[partons.size()-2]);
+ if(partons.size()>0){
+ clfirst->addColoured(quarks[0]);
+ clfirst->addAntiColoured(partons[0]);
+ cllast->addAntiColoured(quarks[1]);
+ cllast->addColoured(partons[partons.size()-1]);
//now the remaining gluons
- for (unsigned int i=1; i<partons.size()-2; i++){
+ for (unsigned int i=0; i<partons.size()-1; i++){
ColinePtr cl = new_ptr(ColourLine());
cl->addColoured(partons[i]);
cl->addAntiColoured(partons[i+1]);
}
}
} else {
- if(partons.size()==2){
+ if(partons.size()==0 && quarks.size()>0){
ColinePtr clq = new_ptr(ColourLine());
- clq->addAntiColoured(partons[0]);
- clq->addColoured(partons[1]);
+ clq->addAntiColoured(quarks[0]);
+ clq->addColoured(quarks[1]);
}
ColinePtr clfirst = new_ptr(ColourLine());
ColinePtr cllast = new_ptr(ColourLine());
- if(partons.size()>2){
- clfirst->addAntiColoured(partons[0]);
- clfirst->addColoured(partons[1]);
- cllast->addColoured(partons[partons.size()-1]);
- cllast->addAntiColoured(partons[partons.size()-2]);
+ if(partons.size()>0){
+ clfirst->addAntiColoured(quarks[0]);
+ clfirst->addColoured(partons[0]);
+ cllast->addColoured(quarks[1]);
+ cllast->addAntiColoured(partons[partons.size()-1]);
//now the remaining gluons
- for (unsigned int i=1; i<partons.size()-2; i++){
+ for (unsigned int i=0; i<partons.size()-1; i++){
ColinePtr cl = new_ptr(ColourLine());
cl->addAntiColoured(partons[i]);
cl->addColoured(partons[i+1]);
}
}
}// end colour connection loop
}// end Nmpi loop
}//end function
// Do the phase space generation here is 1 to 1 the same from UA5 model
bool HwRemDecayer::doPhaseSpaceGenerationGluons(vector<Lorentz5Momentum> &softGluons, Energy CME, unsigned int &its)
const{
// Define the parameters
unsigned int _maxtries = 300;
double alog = log(CME*CME/GeV2);
unsigned int ncl = softGluons.size();
// calculate the slope parameters for the different clusters
// outside loop to save time
vector<Lorentz5Momentum> mom(ncl);
// Sets the slopes depending on the constituent quarks of the cluster
for(unsigned int ix=0;ix<ncl;++ix)
{
mom[ix]=softGluons[ix];
}
// generate the momenta
double eps = 1e-10/double(ncl);
vector<double> xi(ncl);
vector<Energy> tempEnergy(ncl);
Energy sum1(ZERO);
double yy(0.);
// We want to make sure that the first Pt is from the
// desired pt-distribution. If we select the first pt in the
// trial loop we introduce a bias.
Energy firstPt=softPt();
while(its < _maxtries) {
++its;
Energy sumx = ZERO;
Energy sumy = ZERO;
unsigned int iterations(0);
unsigned int _maxtriesNew = 100;
while(iterations < _maxtriesNew) {
iterations++;
Energy sumxIt = ZERO;
Energy sumyIt = ZERO;
bool success=false;
Energy pTmax=ZERO;
for(unsigned int i = 0; i<ncl; ++i) {
// Different options for soft pt sampling
//1) pT1>pT2...pTN
//2) pT1>pT2>..>pTN
//3) flat
//4) y dependent
//5) Frist then flat
int triesPt=0;
Energy pt;
Energy ptTest;
switch(PtDistribution_) {
case 0: //default softPt()
pt=softPt();
break;
case 1: //pTordered
if(i==0){
pt=softPt();
pTmax=pt;
}else{
do{
pt=softPt();
}while(pt>pTmax);
}
break;
case 2: //strongly pT ordered
if ( i==0 ) {
pt=softPt();
pTmax=pt;
} else {
do {
if ( triesPt==20 ) {
pt=pTmax;
break;
}
pt=softPt();
triesPt++;
} while ( pt>pTmax );
pTmax=pt;
}
break;
case 3: //flat
pt = UseRandom::rnd(0.0,(double)(ptmin_/GeV))*GeV;
break;
case 4: //flat below first pT
if ( i==0 ) {
pt = firstPt;
} else {
pt = firstPt * UseRandom::rnd();
}
break;
case 5: //flat but rising below first pT
if ( i==0 ) {
pt=firstPt;
} else {
pt = firstPt * pow(UseRandom::rnd(),1/2);
}
}
Energy2 ptp = pt*pt;
if(ptp <= ZERO) pt = - sqrt(-ptp);
else pt = sqrt(ptp);
// randomize azimuth
Energy px,py;
//randomize the azimuth, but the last one should cancel all others
if(i<ncl-1){
randAzm(pt,px,py);
// set transverse momentum
mom[i].setX(px);
mom[i].setY(py);
sumxIt += px;
sumyIt += py;
}else{
//calculate azimuth angle s.t
// double factor;
Energy pTdummy;
pTdummy = sqrt(sumxIt*sumxIt+sumyIt*sumyIt);
if( pTdummy < ptmin_ ){
px=-sumxIt;
py=-sumyIt;
mom[i].setX(px);
mom[i].setY(py);
sumxIt+=px;
sumyIt+=py;
sumx = sumxIt;
sumy = sumyIt;
success=true;
}
}
}
if(success){
break;
}
}
sumx /= ncl;
sumy /= ncl;
// find the sum of the transverse mass
Energy sumtm=ZERO;
for(unsigned int ix = 0; ix<ncl; ++ix) {
mom[ix].setX(mom[ix].x()-sumx);
mom[ix].setY(mom[ix].y()-sumy);
Energy2 pt2 = mom[ix].perp2();
// Use the z component of the clusters momentum for temporary storage
mom[ix].setZ(sqrt(pt2+mom[ix].mass2()));
sumtm += mom[ix].z();
}
// if transverse mass greater the CMS try again
if(sumtm > CME) continue;
// randomize the mom vector to get the first and the compensating parton
// at all possible positions:
long (*p_irnd)(long) = UseRandom::irnd;
random_shuffle(mom.begin(),mom.end(),p_irnd);
for(unsigned int i = 0; i<ncl; i++) xi[i] = randUng(0.6,1.0);
// sort into ascending order
sort(xi.begin(), xi.end());
double ximin = xi[0];
double ximax = xi.back()-ximin;
xi[0] = 0.;
for(unsigned int i = ncl-2; i>=1; i--) xi[i+1] = (xi[i]-ximin)/ximax;
xi[1] = 1.;
yy= log(CME*CME/(mom[0].z()*mom[1].z()));
bool suceeded=false;
Energy sum2,sum3,sum4;
for(unsigned int j = 0; j<10; j++) {
sum1 = sum2 = sum3 = sum4 = ZERO;
for(unsigned int i = 0; i<ncl; i++) {
Energy tm = mom[i].z();
double ex = exp(yy*xi[i]);
sum1 += tm*ex;
sum2 += tm/ex;
sum3 += (tm*ex)*xi[i];
sum4 += (tm/ex)*xi[i];
}
double fy = alog-log(sum1*sum2/GeV2);
double dd = (sum3*sum2 - sum1*sum4)/(sum1*sum2);
double dyy = fy/dd;
if(abs(dyy/yy) < eps) {
yy += dyy;
suceeded=true;
break;
}
yy += dyy;
}
if(suceeded){
break;
}
if(its > 100) eps *= 10.;
}
if(its==_maxtries){
return false;
}
// throw Exception() << "Can't generate soft underlying event in "
// << "UA5Handler::generateCylindricalPS"
// << Exception::eventerror;
double zz = log(CME/sum1);
for(unsigned int i = 0; i<ncl; i++) {
Energy tm = mom[i].z();
double E1 = exp(zz + yy*xi[i]);
mom[i].setZ(0.5*tm*(1./E1-E1));
mom[i].setE( 0.5*tm*(1./E1+E1));
softGluons[i]=mom[i];
}
return true;
}
void HwRemDecayer::finalize(double colourDisrupt, unsigned int softInt){
PPair diquarks;
//Do the final Rem->Diquark or Rem->quark "decay"
if(theRems.first) {
diquarks.first = finalSplit(theRems.first, theContent.first.RemID(),
theUsed.first);
theMaps.first.push_back(make_pair(diquarks.first, tPPtr()));
}
if(theRems.second) {
diquarks.second = finalSplit(theRems.second, theContent.second.RemID(),
theUsed.second);
theMaps.second.push_back(make_pair(diquarks.second, tPPtr()));
}
setRemMasses();
if(theRems.first) {
fixColours(theMaps.first, theanti.first, colourDisrupt);
if(theContent.first.hadron->id()==ParticleID::pomeron&&
pomeronStructure_==0) fixColours(theMaps.first, !theanti.first, colourDisrupt);
}
if(theRems.second) {
fixColours(theMaps.second, theanti.second, colourDisrupt);
if(theContent.second.hadron->id()==ParticleID::pomeron&&
pomeronStructure_==0) fixColours(theMaps.second, !theanti.second, colourDisrupt);
}
if( !theRems.first || !theRems.second ) return;
//stop here if we don't have two remnants
softRems_ = diquarks;
doSoftInteractions(softInt);
}
HwRemDecayer::HadronContent
HwRemDecayer::getHadronContent(tcPPtr hadron) const {
HadronContent hc;
hc.hadron = hadron->dataPtr();
long id(hadron->id());
// baryon
if(BaryonMatcher::Check(hadron->data())) {
hc.sign = id < 0? -1: 1;
hc.flav.push_back((id = abs(id)/10)%10);
hc.flav.push_back((id /= 10)%10);
hc.flav.push_back((id /= 10)%10);
hc.extracted = -1;
}
else if(hadron->data().id()==ParticleID::gamma ||
(hadron->data().id()==ParticleID::pomeron && pomeronStructure_==1)) {
hc.sign = 1;
for(int ix=1;ix<6;++ix) {
hc.flav.push_back( ix);
hc.flav.push_back(-ix);
}
}
else if(hadron->data().id()==ParticleID::pomeron ) {
hc.sign = 1;
hc.flav.push_back(ParticleID::g);
hc.flav.push_back(ParticleID::g);
}
else if(hadron->data().id()==ParticleID::reggeon ) {
hc.sign = 1;
for(int ix=1;ix<3;++ix) {
hc.flav.push_back( ix);
hc.flav.push_back(-ix);
}
}
hc.pomeronStructure = pomeronStructure_;
return hc;
}
long HwRemDecayer::HadronContent::RemID() const{
if(extracted == -1)
throw Exception() << "Try to build a Diquark id without "
<< "having extracted something in "
<< "HwRemDecayer::RemID(...)"
<< Exception::runerror;
//the hadron was a meson or photon
if(flav.size()==2) return sign*flav[(extracted+1)%2];
long remId;
int id1(sign*flav[(extracted+1)%3]),
id2(sign*flav[(extracted+2)%3]),
sign(0), spin(0);
if (abs(id1) > abs(id2)) swap(id1, id2);
sign = (id1 < 0) ? -1 : 1; // Needed for the spin 0/1 part
remId = id2*1000+id1*100;
// Now decide if we have spin 0 diquark or spin 1 diquark
if(id1 == id2) spin = 3; // spin 1
else spin = 1; // otherwise spin 0
remId += sign*spin;
return remId;
}
tPPtr HwRemDecayer::addParticle(tcPPtr parent, long id, Lorentz5Momentum p) const {
PPtr newp = new_ptr(Particle(getParticleData(id)));
newp->set5Momentum(p);
// Add the new remnant to the step, but don't do colour connections
thestep->addDecayProduct(parent,newp,false);
return newp;
}
void HwRemDecayer::findChildren(tPPtr part,vector<PPtr> & particles) const {
if(part->children().empty()) particles.push_back(part);
else {
for(unsigned int ix=0;ix<part->children().size();++ix)
findChildren(part->children()[ix],particles);
}
}
ParticleVector HwRemDecayer::decay(const DecayMode &,
const Particle &, Step &) const {
throw Exception() << "HwRemDecayer::decay(...) "
<< "must not be called explicitely."
<< Exception::runerror;
}
void HwRemDecayer::persistentOutput(PersistentOStream & os) const {
os << ounit(_kinCutoff, GeV) << _range << _zbin << _ybin
<< _nbinmax << _alphaS << _alphaEM << DISRemnantOpt_
<< maxtrySoft_ << colourDisrupt_ << ladderPower_<< ladderNorm_ << ladderMult_ << ladderbFactor_ << pomeronStructure_
<< ounit(mg_,GeV) << ounit(ptmin_,GeV) << ounit(beta_,sqr(InvGeV))
<< allowTop_ << multiPeriph_ << valOfN_ << initTotRap_ << PtDistribution_;
}
void HwRemDecayer::persistentInput(PersistentIStream & is, int) {
is >> iunit(_kinCutoff, GeV) >> _range >> _zbin >> _ybin
>> _nbinmax >> _alphaS >> _alphaEM >> DISRemnantOpt_
>> maxtrySoft_ >> colourDisrupt_ >> ladderPower_ >> ladderNorm_ >> ladderMult_ >> ladderbFactor_ >> pomeronStructure_
>> iunit(mg_,GeV) >> iunit(ptmin_,GeV) >> iunit(beta_,sqr(InvGeV))
>> allowTop_ >> multiPeriph_ >> valOfN_ >> initTotRap_ >> PtDistribution_;
}
// The following static variable is needed for the type
// description system in ThePEG.
DescribeClass<HwRemDecayer,RemnantDecayer>
describeHerwigHwRemDecayer("Herwig::HwRemDecayer", "HwShower.so");
void HwRemDecayer::Init() {
static ClassDocumentation<HwRemDecayer> documentation
("The HwRemDecayer class decays the remnant for Herwig");
static Parameter<HwRemDecayer,double> interfaceZBinSize
("ZBinSize",
"The size of the vbins in z for the interpolation of the splitting function.",
&HwRemDecayer::_zbin, 0.05, 0.001, 0.1,
false, false, Interface::limited);
static Parameter<HwRemDecayer,int> interfaceMaxBin
("MaxBin",
"Maximum number of z bins",
&HwRemDecayer::_nbinmax, 100, 10, 1000,
false, false, Interface::limited);
static Reference<HwRemDecayer,ShowerAlpha> interfaceAlphaS
("AlphaS",
"Pointer to object to calculate the strong coupling",
&HwRemDecayer::_alphaS, false, false, true, false, false);
static Reference<HwRemDecayer,ShowerAlpha> interfaceAlphaEM
("AlphaEM",
"Pointer to object to calculate the electromagnetic coupling",
&HwRemDecayer::_alphaEM, false, false, true, false, false);
static Parameter<HwRemDecayer,Energy> interfaceKinCutoff
("KinCutoff",
"Parameter kinCutoff used to constrain qtilde",
&HwRemDecayer::_kinCutoff, GeV, 0.75*GeV, 0.5*GeV, 10.0*GeV,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfaceEmissionRange
("EmissionRange",
"Factor above the minimum possible value in which the forced splitting is allowed.",
&HwRemDecayer::_range, 1.1, 1.0, 10.0,
false, false, Interface::limited);
static Switch<HwRemDecayer,unsigned int> interfaceDISRemnantOption
("DISRemnantOption",
"Options for the treatment of the remnant in DIS",
&HwRemDecayer::DISRemnantOpt_, 0, false, false);
static SwitchOption interfaceDISRemnantOptionDefault
(interfaceDISRemnantOption,
"Default",
"Use the minimum number of particles needed to take the recoil"
" and allow the lepton to be used if needed",
0);
static SwitchOption interfaceDISRemnantOptionNoLepton
(interfaceDISRemnantOption,
"NoLepton",
"Use the minimum number of particles needed to take the recoil but"
" veto events where the lepton kinematics would need to be altered",
1);
static SwitchOption interfaceDISRemnantOptionAllParticles
(interfaceDISRemnantOption,
"AllParticles",
"Use all particles in the colour connected system to take the recoil"
" and use the lepton if needed.",
2);
static SwitchOption interfaceDISRemnantOptionAllParticlesNoLepton
(interfaceDISRemnantOption,
"AllParticlesNoLepton",
"Use all the particles in the colour connected system to take the"
" recoil but don't use the lepton.",
3);
static Parameter<HwRemDecayer,unsigned int> interfaceMaxTrySoft
("MaxTrySoft",
"The maximum number of regeneration attempts for an additional soft scattering",
&HwRemDecayer::maxtrySoft_, 10, 0, 100,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfacecolourDisrupt
("colourDisrupt",
"Fraction of connections to additional soft subprocesses, which are colour disrupted.",
&HwRemDecayer::colourDisrupt_,
1.0, 0.0, 1.0,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interaceladderPower
("ladderPower",
"The power factor in the ladder parameterization.",
&HwRemDecayer::ladderPower_,
1.0, -5.0, 10.0,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfaceladderNorm
("ladderNorm",
"The normalization factor in the ladder parameterization",
&HwRemDecayer::ladderNorm_,
1.0, 0.0, 10.0,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfaceladderMult
("ladderMult",
"The ladder multiplicity factor ",
&HwRemDecayer::ladderMult_,
1.0, 0.0, 10.0,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfaceladderbFactor
("ladderbFactor",
"The additive factor in the multiperipheral ladder multiplicity.",
&HwRemDecayer::ladderbFactor_,
1.0, 0.0, 10.0,
false, false, Interface::limited);
static Parameter<HwRemDecayer,double> interfacegaussWidth
("gaussWidth",
"The gaussian width of the fluctuation of longitudinal momentum fraction.",
&HwRemDecayer::gaussWidth_,
0.1, 0.0, 1.0,
false, false, Interface::limited);
static Switch<HwRemDecayer,unsigned int> interfacePomeronStructure
("PomeronStructure",
"Option for the treatment of the valance structure of the pomeron",
&HwRemDecayer::pomeronStructure_, 0, false, false);
static SwitchOption interfacePomeronStructureGluon
(interfacePomeronStructure,
"Gluon",
"Assume the pomeron is a two gluon state",
0);
static SwitchOption interfacePomeronStructureQQBar
(interfacePomeronStructure,
"QQBar",
"Assumne the pomeron is q qbar as for the photon,"
" this option is not recommended and is provide for compatiblity with POMWIG",
1);
static Switch<HwRemDecayer,bool> interfaceAllowTop
("AllowTop",
"Allow top quarks in the hadron",
&HwRemDecayer::allowTop_, false, false, false);
static SwitchOption interfaceAllowTopNo
(interfaceAllowTop,
"No",
"Don't allow them",
false);
static SwitchOption interfaceAllowTopYes
(interfaceAllowTop,
"Yes",
"Allow them",
true);
static Switch<HwRemDecayer,bool> interfaceMultiPeriph
("MultiPeriph",
"Use multiperipheral kinematics",
&HwRemDecayer::multiPeriph_, false, false, false);
static SwitchOption interfaceMultiPeriphNo
(interfaceMultiPeriph,
"No",
"Don't use multiperipheral",
false);
static SwitchOption interfaceMultiPeriphYes
(interfaceMultiPeriph,
"Yes",
"Use multiperipheral kinematics",
true);
static Switch<HwRemDecayer,unsigned int> interfacePtDistribution
("PtDistribution",
"Options for different pT generation methods",
&HwRemDecayer::PtDistribution_, 0, false, false);
static SwitchOption interfacePtDistributionDefault
(interfacePtDistribution,
"Default",
"Default generation of pT",
0);
static SwitchOption interfacePtDistributionOrdered
(interfacePtDistribution,
"Ordered",
"Ordered generation of pT,where the first pT is the hardest",
1);
static SwitchOption interfacePtDistributionStronglyOrdered
(interfacePtDistribution,
"StronglyOrdered",
"Strongly ordered generation of pT",
2);
static SwitchOption interfacePtDistributionFlat
(interfacePtDistribution,
"Flat",
"Sample from a flat pT distribution",
3);
static SwitchOption interfacePtDistributionFlatOrdered
(interfacePtDistribution,
"FlatOrdered",
"First pT normal, then flat",
4);
static SwitchOption interfacePtDistributionFlatOrdered2
(interfacePtDistribution,
"FlatOrdered2",
"First pT normal, then flat but steep",
5);
}
bool HwRemDecayer::canHandle(tcPDPtr particle, tcPDPtr parton) const {
if(! (StandardQCDPartonMatcher::Check(*parton) || parton->id()==ParticleID::gamma) ) {
if(abs(parton->id())==ParticleID::t) {
if(!allowTop_)
throw Exception() << "Top is not allow as a parton in the remant handling, please "
<< "use a PDF which does not contain top for the remnant"
<< " handling (preferred) or allow top in the remnant using\n"
<< " set " << fullName() << ":AllowTop Yes\n"
<< Exception::runerror;
}
else
return false;
}
return HadronMatcher::Check(*particle) || particle->id()==ParticleID::gamma
|| particle->id()==ParticleID::pomeron || particle->id()==ParticleID::reggeon;
}
bool HwRemDecayer::isPartonic(tPPtr parton) const {
if(parton->parents().empty()) return false;
tPPtr parent = parton->parents()[0];
bool partonic = false;
for(unsigned int ix=0;ix<parent->children().size();++ix) {
if(dynamic_ptr_cast<tRemPPtr>(parent->children()[ix])) {
partonic = true;
break;
}
}
return partonic;
}
diff --git a/PDF/HwRemDecayer.h b/PDF/HwRemDecayer.h
--- a/PDF/HwRemDecayer.h
+++ b/PDF/HwRemDecayer.h
@@ -1,747 +1,747 @@
// -*- C++ -*-
//
// HwRemDecayer.h is a part of Herwig - A multi-purpose Monte Carlo event generator
// Copyright (C) 2002-2017 The Herwig Collaboration
//
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef HERWIG_HwRemDecayer_H
#define HERWIG_HwRemDecayer_H
//
// This is the declaration of the HwRemDecayer class.
//
#include "ThePEG/PDT/RemnantDecayer.h"
#include "ThePEG/Handlers/EventHandler.h"
#include "ThePEG/Repository/EventGenerator.h"
#include "ThePEG/EventRecord/SubProcess.h"
#include "ThePEG/PDF/BeamParticleData.h"
#include "Herwig/Shower/ShowerAlpha.h"
#include "Herwig/PDT/StandardMatchers.h"
#include "ThePEG/PDT/StandardMatchers.h"
#include "HwRemDecayer.fh"
namespace Herwig {
using namespace ThePEG;
/**
* The HwRemDecayer class is responsible for the decay of the remnants. Additional
* secondary scatters have to be evolved backwards to a gluon, the
* first/hard interaction has to be evolved back to a valence quark.
* This is all generated inside this class,
* which main methods are then called by the ShowerHandler.
*
* A simple forced splitting algorithm is used.
* This takes the Remnant object produced from the PDF and backward
* evolution (hadron - parton) and produce partons with the remaining
* flavours and with the correct colour connections.
*
* The algorithim operates by starting with the parton which enters the hard process.
* If this is from the sea there is a forced branching to produce the antiparticle
* from a gluon branching. If the parton entering the hard process was a gluon, or
* a gluon was produced from the first step of the algorithm, there is then a further
* branching back to a valence parton. After these partons have been produced a quark or
* diquark is produced to give the remaining valence content of the incoming hadron.
*
* The forced branching are generated using a scale between QSpac and EmissionRange times
* the minimum scale. The energy fractions are then distributed using
* \f[\frac{\alpha_S}{2\pi}\frac{P(z)}{z}f(x/z,\tilde{q})\f]
* with the massless splitting functions.
*
* \author Manuel B\"ahr
*
* @see \ref HwRemDecayerInterfaces "The interfaces"
* defined for HwRemDecayer.
*/
class HwRemDecayer: public RemnantDecayer {
public:
/** Typedef to store information about colour partners */
typedef vector<pair<tPPtr, tPPtr> > PartnerMap;
public:
/**
* The default constructor.
*/
- HwRemDecayer() : allowTop_(false), multiPeriph_(false), quarkPair_(false),
+ HwRemDecayer() : allowTop_(false), multiPeriph_(true), quarkPair_(false),
ptmin_(-1.*GeV), beta_(ZERO),
maxtrySoft_(10),
colourDisrupt_(1.0),
ladderbFactor_(0.0),
ladderPower_(-0.08),
ladderNorm_(1.0),
ladderMult_(1.0),
gaussWidth_(0.1),
valOfN_(0),
initTotRap_(0),
_kinCutoff(0.75*GeV),
_forcedSplitScale(2.5*GeV),
_range(1.1), _zbin(0.05),_ybin(0.),
_nbinmax(100), DISRemnantOpt_(0),
PtDistribution_(0),
pomeronStructure_(0), mg_(ZERO) {}
/** @name Virtual functions required by the Decayer class. */
//@{
/**
* Check if this decayer can perfom the decay specified by the
* given decay mode.
* @return true if this decayer can handle the given mode, otherwise false.
*/
virtual bool accept(const DecayMode &) const {
return true;
}
/**
* Return true if this decayer can handle the extraction of the \a
* extracted parton from the given \a particle.
*/
virtual bool canHandle(tcPDPtr particle, tcPDPtr parton) const;
/**
* Return true if this decayed can extract more than one parton from
* a particle.
*/
virtual bool multiCapable() const {
return true;
}
/**
* Perform a decay for a given DecayMode and a given Particle instance.
* @param dm the DecayMode describing the decay.
* @param p the Particle instance to be decayed.
* @param step the step we are working on.
* @return a ParticleVector containing the decay products.
*/
virtual ParticleVector decay(const DecayMode & dm, const Particle & p, Step & step) const;
//@}
public:
/**
* struct that is used to catch exceptions which are thrown
* due to energy conservation issues of additional soft scatters
*/
struct ExtraSoftScatterVeto {};
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* The standard Init function used to initialize the interfaces.
* Called exactly once for each class by the class description system
* before the main function starts or
* when this class is dynamically loaded.
*/
static void Init();
/**
* Do several checks and initialization, for remnantdecay inside ShowerHandler.
*/
void initialize(pair<tRemPPtr, tRemPPtr> rems, tPPair beam, Step & step,
Energy forcedSplitScale);
/**
* Initialize the soft scattering machinery.
* @param ptmin = the pt cutoff used in the UE model
* @param beta = slope of the soft pt-spectrum
*/
void initSoftInteractions(Energy ptmin, InvEnergy2 beta);
/**
* Perform the acual forced splitting.
* @param partons is a pair of ThePEG::Particle pointers which store the final
* partons on which the shower ends.
* @param pdfs are pointers to the pdf objects for both beams
* @param first is a flage wether or not this is the first or a secondary interation
*/
void doSplit(pair<tPPtr, tPPtr> partons, pair<tcPDFPtr, tcPDFPtr> pdfs, bool first);
/**
* Perform the final creation of the diquarks. Set the remnant masses and do
* all colour connections.
* @param colourDisrupt = variable to control how many "hard" scatters
* are colour isolated
* @param softInt = parameter for the number of soft scatters
*/
void finalize(double colourDisrupt=0.0, unsigned int softInt=0);
/**
* Find the children
*/
void findChildren(tPPtr,vector<PPtr> &) const;
protected:
/** @name Clone Methods. */
//@{
/**
* Make a simple clone of this object.
* @return a pointer to the new object.
*/
virtual IBPtr clone() const {return new_ptr(*this);}
/** Make a clone of this object, possibly modifying the cloned object
* to make it sane.
* @return a pointer to the new object.
*/
virtual IBPtr fullclone() const {return new_ptr(*this);}
//@}
protected:
/** @name Standard Interfaced functions. */
//@{
/**
* Initialize this object after the setup phase before saving an
* EventGenerator to disk.
* @throws InitException if object could not be initialized properly.
*/
virtual void doinit() {
Interfaced::doinit();
_ybin=0.25/_zbin;
mg_ = getParticleData(ParticleID::g)->constituentMass();
}
//@}
private:
/**
* The assignment operator is private and must never be called.
* In fact, it should not even be implemented.
*/
HwRemDecayer & operator=(const HwRemDecayer &);
public:
/**
* Simple struct to store info about baryon quark and di-quark
* constituents.
*/
struct HadronContent {
/**
* manually extract the valence flavour \a id.
*/
inline void extract(int id) {
for(unsigned int i=0; i<flav.size(); i++) {
if(id == sign*flav[i]){
if(hadron->id() == ParticleID::gamma ||
(hadron->id() == ParticleID::pomeron && pomeronStructure==1) ||
hadron->id() == ParticleID::reggeon) {
flav[0] = id;
flav[1] = -id;
extracted = 0;
flav.resize(2);
}
else if (hadron->id() == ParticleID::pomeron && pomeronStructure==0) {
extracted = 0;
}
else {
extracted = i;
}
break;
}
}
}
/**
* Return a proper particle ID assuming that \a id has been removed
* from the hadron.
*/
long RemID() const;
/**
* Method to determine whether \a parton is a quark from the sea.
* @return TRUE if \a parton is neither a valence quark nor a gluon.
*/
bool isSeaQuark(tcPPtr parton) const {
return ((parton->id() != ParticleID::g) && ( !isValenceQuark(parton) ) );
}
/**
* Method to determine whether \a parton is a valence quark.
*/
bool isValenceQuark(tcPPtr parton) const {
return isValenceQuark(parton->id());
}
/**
* Method to determine whether \a parton is a quark from the sea.
* @return TRUE if \a parton is neither a valence quark nor a gluon.
*/
bool isSeaQuarkData(tcPDPtr partonData) const {
return ((partonData->id() != ParticleID::g) && ( !isValenceQuarkData(partonData) ) );
}
/**
* Method to determine whether \a parton is a valence quark.
*/
bool isValenceQuarkData(tcPDPtr partonData) const {
int id(sign*partonData->id());
return find(flav.begin(),flav.end(),id) != flav.end();
}
/**
* Method to determine whether \a parton is a valence quark.
*/
bool isValenceQuark(int id) const {
return find(flav.begin(),flav.end(),sign*id) != flav.end();
}
/** The valence flavours of the corresponding baryon. */
vector<int> flav;
/** The array index of the extracted particle. */
int extracted;
/** -1 if the particle is an anti-particle. +1 otherwise. */
int sign;
/** The ParticleData objects of the hadron */
tcPDPtr hadron;
/** Pomeron treatment */
unsigned int pomeronStructure;
};
/**
* Return the hadron content objects for the incoming particles.
*/
const pair<HadronContent, HadronContent>& content() const {
return theContent;
}
/**
* Return a HadronContent struct from a PPtr to a hadron.
*/
HadronContent getHadronContent(tcPPtr hadron) const;
/**
* Set the hadron contents.
*/
void setHadronContent(tPPair beam) {
theContent.first = getHadronContent(beam.first);
theContent.second = getHadronContent(beam.second);
}
private:
/**
* Do the forced Splitting of the Remnant with respect to the
* extracted parton \a parton.
* @param parton = PPtr to the parton going into the subprocess.
* @param content = HadronContent struct to keep track of flavours.
* @param rem = Pointer to the ThePEG::RemnantParticle.
* @param used = Momentum vector to keep track of remaining momenta.
* @param partners = Vector of pairs filled with tPPtr to the particles
* which should be colour connected.
* @param pdf pointer to the PDF Object which is used for this particle
* @param first = Flag for the first interaction.
*/
void split(tPPtr parton, HadronContent & content, tRemPPtr rem,
Lorentz5Momentum & used, PartnerMap & partners, tcPDFPtr pdf, bool first);
/**
* Merge the colour lines of two particles
* @param p1 = Pointer to particle 1
* @param p2 = Pointer to particle 2
* @param anti = flag to indicate, if (anti)colour was extracted as first parton.
*/
void mergeColour(tPPtr p1, tPPtr p2, bool anti) const;
/**
* Set the colour connections.
* @param partners = Object that holds the information which particles to connect.
* @param anti = flag to indicate, if (anti)colour was extracted as first parton.
* @param disrupt parameter for disruption of the colour structure
*/
void fixColours(PartnerMap partners, bool anti, double disrupt) const;
/**
* Set the momenta of the Remnants properly and boost the decay particles.
*/
void setRemMasses() const;
/**
* This creates a parton from the remaining flavours of the hadron. The
* last parton used was a valance parton, so only 2 (or 1, if meson) flavours
* remain to be used.
*/
PPtr finalSplit(const tRemPPtr rem, long remID,
Lorentz5Momentum usedMomentum) const {
// Create the remnant and set its momentum, also reset all of the decay
// products from the hadron
PPtr remnant = new_ptr(Particle(getParticleData(remID)));
Lorentz5Momentum prem(rem->momentum()-usedMomentum);
prem.setMass(getParticleData(remID)->constituentMass());
prem.rescaleEnergy();
remnant->set5Momentum(prem);
// Add the remnant to the step, but don't do colour connections
thestep->addDecayProduct(rem,remnant,false);
return remnant;
}
/**
* This takes the particle and find a splitting for np -> p + child and
* creates the correct kinematics and connects for such a split. This
* Splitting has an upper bound on qtilde given by the energy argument
* @param rem The Remnant
* @param child The PDG code for the outgoing particle
* @param oldQ The maximum scale for the evolution
* @param oldx The fraction of the hadron's momentum carried by the last parton
* @param pf The momentum of the last parton at input and after branching at output
* @param p The total emitted momentum
* @param content The content of the hadron
*/
PPtr forceSplit(const tRemPPtr rem, long child, Energy &oldQ, double &oldx,
Lorentz5Momentum &pf, Lorentz5Momentum &p,
HadronContent & content) const;
/**
* Check if a particle is a parton from a hadron or not
* @param parton The parton to be tested
*/
bool isPartonic(tPPtr parton) const;
/** @name Soft interaction methods. */
//@{
/**
* Produce pt values according to dN/dp_T = N p_T exp(-beta_*p_T^2)
*/
Energy softPt() const;
/**
* Get the 2 pairs of 5Momenta for the scattering. Needs calling of
* initSoftInteractions.
*/
void softKinematics(Lorentz5Momentum &r1, Lorentz5Momentum &r2,
Lorentz5Momentum &g1, Lorentz5Momentum &g2) const;
/**
* Create N soft gluon interactions
*/
void doSoftInteractions(unsigned int N){
if(!multiPeriph_){
doSoftInteractions_old(N);} //outdated model for soft interactions
else{
doSoftInteractions_multiPeriph(N); // Multiperipheral model
}
}
/**
* Create N soft gluon interactions (old version)
*/
void doSoftInteractions_old(unsigned int N);
/**
* Create N soft gluon interactions with multiperhpheral kinematics
*/
void doSoftInteractions_multiPeriph(unsigned int N);
/**
* Phase space generation for the ladder partons
*/
bool doPhaseSpaceGenerationGluons(vector<Lorentz5Momentum> &softGluons, Energy energy, unsigned int &its)
const;
/**
* This returns the rotation matrix needed to rotate p into the z axis
*/
LorentzRotation rotate(const LorentzMomentum &p) const;
/**
* Methods to generate random distributions also all stolen form UA5Handler
**/
template <typename T>
inline T gaussDistribution(T mean, T stdev) const{
double x = rnd();
x = sqrt(-2.*log(x));
double y;
randAzm(x,x,y);
return mean + stdev*x;
}
/**
* This returns a random number with a flat distribution
* [-A,A] plus gaussian tail with stdev B
* TODO: Should move this to Utilities
* @param A The width of the flat part
* @param B The standard deviation of the gaussian tail
* @return the randomly generated value
*/
inline double randUng(double A, double B) const{
double prun;
if(A == 0.) prun = 0.;
else prun = 1./(1.+B*1.2533/A);
if(rnd() < prun) return 2.*(rnd()-0.5)*A;
else {
double temp = gaussDistribution(0.,B);
if(temp < 0) return temp - abs(A);
else return temp + abs(A);
}
}
template <typename T>
inline void randAzm(T pt, T &px, T &py) const{
double c,s,cs;
while(true) {
c = 2.*rnd()-1.;
s = 2.*rnd()-1.;
cs = c*c+s*s;
if(cs <= 1.&&cs!=0.) break;
}
T qt = pt/cs;
px = (c*c-s*s)*qt;
py = 2.*c*s*qt;
}
inline Energy randExt(Energy AM0,InvEnergy B) const{
double r = rnd();
// Starting value
Energy am = AM0-log(r)/B;
for(int i = 1; i<20; ++i) {
double a = exp(-B*(am-AM0))/(1.+B*AM0);
double f = (1.+B*am)*a-r;
InvEnergy df = -B*B*am*a;
Energy dam = -f/df;
am += dam;
if(am<AM0) am = AM0 + .001*MeV;
if(abs(dam) < .001*MeV) break;
}
return am;
}
/**
* Method to add a particle to the step
* @param parent = pointer to the parent particle
* @param id = Particle ID of the newly created particle
* @param p = Lorentz5Momentum of the new particle
*/
tPPtr addParticle(tcPPtr parent, long id, Lorentz5Momentum p) const;
//@}
/**
* A flag which indicates, whether the extracted valence quark was a
* anti particle.
*/
pair<bool, bool> theanti;
/**
* variable to sum up the x values of the extracted particles
*/
pair<double, double> theX;
/**Pair of HadronContent structs to know about the quark content of the beams*/
pair<HadronContent, HadronContent> theContent;
/**Pair of Lorentz5Momentum to keep track of the forced splitting product momenta*/
pair<Lorentz5Momentum, Lorentz5Momentum> theUsed;
/**
* Pair of PartnerMap's to store the particles, which will be colour
* connected in the end.
*/
pair<PartnerMap, PartnerMap> theMaps;
/**
* Variable to hold a pointer to the current step. The variable is used to
* determine, wether decay(const DecayMode & dm, const Particle & p, Step & step)
* has been called in this event or not.
*/
StepPtr thestep;
/**
* Pair of Remnant pointers. This is needed to boost
* in the Remnant-Remnant CMF after all have been decayed.
*/
pair<RemPPtr, RemPPtr> theRems;
/**
* The beam particle data for the current incoming hadron
*/
mutable tcPPtr theBeam;
/**
* the beam data
*/
mutable Ptr<BeamParticleData>::const_pointer theBeamData;
/**
* The PDF for the current initial-state shower
*/
mutable tcPDFPtr _pdf;
private:
/**
* Switch to control handling of top quarks in proton
*/
bool allowTop_;
/**
* Switch to control using multiperipheral kinemaics
*/
bool multiPeriph_;
/**
* True if kinematics is to be calculated for quarks
*/
bool quarkPair_;
/** @name Soft interaction variables. */
//@{
/**
* Pair of soft Remnant pointers, i.e. Diquarks.
*/
tPPair softRems_;
/**
* ptcut of the UE model
*/
Energy ptmin_;
/**
* slope of the soft pt-spectrum: dN/dp_T = N p_T exp(-beta*p_T^2)
*/
InvEnergy2 beta_;
/**
* Maximum number of attempts for the regeneration of an additional
* soft scattering, before the number of scatters is reduced.
*/
unsigned int maxtrySoft_;
/**
* Variable to store the relative number of colour disrupted
* connections to additional soft subprocesses.
*/
double colourDisrupt_;
/**
* Variable to store the additive factor of the
multiperipheral ladder multiplicity.
*/
double ladderbFactor_;
/**
* Variable of the parameterization of the ladder multiplicity.
*/
double ladderPower_;
/**
* Variable of the parameterization of the ladder multiplicity.
*/
double ladderNorm_;
double ladderMult_;
/**
* Variable to store the gaussian width of the
* fluctuation of the longitudinal momentum
* fraction.
*/
double gaussWidth_;
/**
* Variable to store the current total multiplicity
of a ladder.
*/
double valOfN_;
/**
* Variable to store the initial total rapidity between
of the remnants.
*/
double initTotRap_;
//@}
/** @name Forced splitting variables. */
//@{
/**
* The kinematic cut-off
*/
Energy _kinCutoff;
/**
* The PDF freezing scale as set in ShowerHandler
*/
Energy _forcedSplitScale;
/**
* Range for emission
*/
double _range;
/**
* Size of the bins in z for the interpolation
*/
double _zbin;
/**
* Size of the bins in y for the interpolation
*/
double _ybin;
/**
* Maximum number of bins for the z interpolation
*/
int _nbinmax;
/**
* Pointer to the object calculating the QCD coupling
*/
ShowerAlphaPtr _alphaS;
/**
* Pointer to the object calculating the QED coupling
*/
ShowerAlphaPtr _alphaEM;
/**
* Option for the DIS remnant
*/
unsigned int DISRemnantOpt_;
/**
* Option for the pT generation
*/
unsigned int PtDistribution_;
/**
* Option for the treatment of the pomeron structure
*/
unsigned int pomeronStructure_;
//@}
/**
* The gluon constituent mass.
*/
Energy mg_;
};
}
#endif /* HERWIG_HwRemDecayer_H */
diff --git a/Tests/Rivet/Templates/DIS-Matchbox.in b/Tests/Rivet/Templates/DIS-Matchbox.in
--- a/Tests/Rivet/Templates/DIS-Matchbox.in
+++ b/Tests/Rivet/Templates/DIS-Matchbox.in
@@ -1,55 +1,55 @@
# -*- ThePEG-repository -*-
#
# DO NOT EDIT - autogenerated by make_input_files.py
#
##################################################
## Herwig/Matchbox example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/Matchbox.in
read snippets/EPCollider.in
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/MatrixElements/Matchbox
set Factory:OrderInAlphaS 0
set Factory:OrderInAlphaEW 2
set Factory:ScaleChoice /Herwig/MatrixElements/Matchbox/Scales/LeptonQ2Scale
${shower}
${bscheme}
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
do /Herwig/MatrixElements/Matchbox/Factory:ProductionMode
# switch off initial state QED radiation
set /Herwig/Particles/e-:PDF /Herwig/Partons/NoPDF
set /Herwig/Particles/e+:PDF /Herwig/Partons/NoPDF
# create the Rivet analysis
create ThePEG::RivetAnalysis /Herwig/Analysis/RivetAnalysis RivetAnalysis.so
insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
read ${parameterFile}
## Select the process
cd /Herwig/MatrixElements/Matchbox
${process}
cd /Herwig/Generators
set EventGenerator:MaxErrors 1000000
saverun ${runname} EventGenerator
diff --git a/Tests/Rivet/Templates/DIS-Merging.in b/Tests/Rivet/Templates/DIS-Merging.in
--- a/Tests/Rivet/Templates/DIS-Merging.in
+++ b/Tests/Rivet/Templates/DIS-Merging.in
@@ -1,65 +1,65 @@
# -*- ThePEG-repository -*-
#
# DO NOT EDIT - autogenerated by make_input_files.py
#
##################################################
## Herwig/Matchbox example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/EPCollider.in
read snippets/MonacoSampler.in
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
read Matchbox/MadGraph-OpenLoops.in
set /Herwig/Merging/MergingFactory:OrderInAlphaS 0
set /Herwig/Merging/MergingFactory:OrderInAlphaEW 2
set /Herwig/Merging/MergingFactory:ScaleChoice /Herwig/MatrixElements/Matchbox/Scales/LeptonQ2Scale
##################################################
## PDF and AlphaS choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
set /Herwig/Couplings/NLOAlphaS:input_alpha_s 0.118
read Merging/FactorCMWScheme.in
# switch off initial state QED radiation
set /Herwig/Particles/e-:PDF /Herwig/Partons/NoPDF
set /Herwig/Particles/e+:PDF /Herwig/Partons/NoPDF
# create the Rivet analysis
create ThePEG::RivetAnalysis /Herwig/Analysis/RivetAnalysis RivetAnalysis.so
insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
read ${parameterFile}
## Select the process
cd /Herwig/Merging/
set Merger:MergingScale 10.*GeV
${process}
do /Herwig/Merging/MergingFactory:ProductionMode
cd /Herwig/Generators
set EventGenerator:MaxErrors 1000000
saverun ${runname} EventGenerator
diff --git a/Tests/Rivet/Templates/Hadron-Matchbox.in b/Tests/Rivet/Templates/Hadron-Matchbox.in
--- a/Tests/Rivet/Templates/Hadron-Matchbox.in
+++ b/Tests/Rivet/Templates/Hadron-Matchbox.in
@@ -1,50 +1,50 @@
# -*- ThePEG-repository -*-
#
# DO NOT EDIT - autogenerated by make_input_files.py
#
##################################################
## Collider type
##################################################
read snippets/Matchbox.in
read snippets/PPCollider.in
##################################################
## Matrix element library selection
##################################################
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
${nlo}
##################################################
## Matching and shower selection
## Please also see flavour scheme settings
## towards the end of the input file.
##################################################
${shower}
##################################################
## PDF choice
##################################################
${bscheme}
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
##################################################
# Create the Herwig analysis
##################################################
create ThePEG::RivetAnalysis /Herwig/Analysis/RivetAnalysis RivetAnalysis.so
insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
set /Herwig/Analysis/RivetAnalysis:Debug No
set /Herwig/Decays/DecayHandler:MaxLifeTime 10*mm
##################################################
## Save the generator
##################################################
do /Herwig/MatrixElements/Matchbox/Factory:ProductionMode
## Select the process
cd /Herwig/MatrixElements/Matchbox
${process}
read ${parameterFile}
cd /Herwig/Generators
set EventGenerator:MaxErrors 1000000
saverun ${runname} EventGenerator
diff --git a/Tests/Rivet/Templates/Hadron-Merging.in b/Tests/Rivet/Templates/Hadron-Merging.in
--- a/Tests/Rivet/Templates/Hadron-Merging.in
+++ b/Tests/Rivet/Templates/Hadron-Merging.in
@@ -1,50 +1,50 @@
# -*- ThePEG-repository -*-
#
# DO NOT EDIT - autogenerated by make_input_files.py
#
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Matrix element library selection
##################################################
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
read Matchbox/MadGraph-OpenLoops.in
##################################################
## PDF and AlphaS choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
set /Herwig/Couplings/NLOAlphaS:input_alpha_s 0.118
read Merging/FactorCMWScheme.in
##################################################
# Create the Herwig analysis
##################################################
create ThePEG::RivetAnalysis /Herwig/Analysis/RivetAnalysis RivetAnalysis.so
insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
set /Herwig/Analysis/RivetAnalysis:Debug No
set /Herwig/Decays/DecayHandler:MaxLifeTime 10*mm
## Select the process
cd /Herwig/Merging/
set Merger:MergingScale 15.*GeV
${process}
read ${parameterFile}
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
cd /Herwig/Generators
set EventGenerator:MaxErrors 1000000
saverun ${runname} EventGenerator
diff --git a/Tests/python/plot-EE b/Tests/python/plot-EE
--- a/Tests/python/plot-EE
+++ b/Tests/python/plot-EE
@@ -1,3635 +1,3645 @@
#! /usr/bin/env python
import glob,os,sys
if __name__ == "__main__":
import logging
from optparse import OptionParser, OptionGroup
parser = OptionParser(usage="%prog name")
verbgroup = OptionGroup(parser, "Verbosity control")
verbgroup.add_option("-v", "--verbose", action="store_const", const=logging.DEBUG, dest="LOGLEVEL",
default=logging.INFO, help="print debug (very verbose) messages")
verbgroup.add_option("-q", "--quiet", action="store_const", const=logging.WARNING, dest="LOGLEVEL",
default=logging.INFO, help="be very quiet")
parser.add_option_group(verbgroup)
parser.add_option("--with-gg",
action='store_true' ,
dest="gg",
default=False,
help="Include gg analyese")
parser.add_option("--without-gg",
action='store_false',
dest="gg",
default=False,
help="Don\'t include gg analyses")
(opts, args) = parser.parse_args()
logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
## Check args
if len(args) < 1:
logging.error("Must specify at least the name of the files")
sys.exit(1)
directory=args[0]
header="""<html>
<head>
<title>{title}</title>
<style>
html {{ font-family: sans-serif; }}
img {{ border: 0; }}
a {{ text-decoration: none; font-weight: bold; }}
</style>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({{
tex2jax: {{inlineMath: [["$","$"]]}}
}});
</script>
<script type="text/javascript"
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
</head>
<body><center><h1>{title}</h1></center>"""
analyses={ "HadronDecays" : { },
"TauDecays" : { "2pi" : {},
"Kpi" : {},
"KK" : {},
"lnu" : {},
"Keta" : {},
"3pi" : {},
"Kpipi" : {},
"KKpi" : {},
"2pieta" : {},
"2pigamma" : {},
"3K" : {},
"4pi" : {},
"5pi" : {},},
"Charged" : {"TotalChargedMult" : { 0 : {}, 1 : {}, 4 : {}, 5 : {}, 51 : {}, 41 : {} , "C" : {} },
"ChargedSpectrum" : { 0 : { "x" : {}, "p" : {}, "xi" : {}},
1 : { "x" : {}, "p" : {}, "xi" : {}},
2 : { "x" : {}, "p" : {}, "xi" : {}},
4 : { "x" : {}, "p" : {}, "xi" : {}},
5 : { "x" : {}, "p" : {}, "xi" : {}},
21 : { "x" : {}, "p" : {}, "xi" : {}},
"C" : { "x" : {}, "p" : {}, "xi" : {}}},
"ChargedRapidityThrust" : { },
"ChargedpTInThrust" : { },
"ChargedpTOutThrust" : { },
"ChargedpTThrust" : { },
"ChargedpTvsxpThrust" : { },
"ChargedpTOutvsxpThrust" : { },
"ChargedxFThrust" : { },
"ChargedRapiditySphericity" : { },
"ChargedpTInSphericity" : { },
"ChargedpTOutSphericity" : { },
"ChargedpLSphericity" : { },
"ChargedpTSphericity" : { },
"ChargedpT2Sphericity" : { },
"ChargedFlowSphericity" : { },
"ChargedEnergyFlowSphericity" : { },
"ChargedAveragepT2inSphericity" : { },
"ChargedAveragepT2outSphericity" : { },
"ChargedAveragepTThrust" : { },
"ChargedAveragepT2Thrust" : { },
"ChargedSumpTThrust" : { },
"ChargedSumpT2Thrust" : { },
"ChargedAveragepTSphericity" : { },
"ChargedAveragepT2Sphericity" : { },
"ChargedSumpTSphericity" : { },
"ChargedSumpT2Sphericity" : { },
"DistChargedMult" : {0 : {}, 1 : {}, 2 : {}, 4 : {}, 5 : {} , 21 : {}, "C" :{}}},
"IdentifiedParticle" : { 22 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
111 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
211 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
221 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
331 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
223 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
333 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
321 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
311 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
313 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
323 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
2212 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
413 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
423 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3122 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3212 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
2224 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3312 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3222 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
"3224B" : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
431 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
433 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3112 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3224 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3114 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3324 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3124 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
443 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
9010221 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
9000211 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
225 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
335 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
113 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
213 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
421 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
411 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
425 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
511 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4122 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
3334 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4332 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4132 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4112 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4114 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
4124 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
14122 : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}},
"321/2212" : { "x" : {}, "p" : {}, "xi" : {}, "Other" : {}, "Ratio" : {}}},
"IdentifiedParticleFlavour" : {111 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
211 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
321 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
311 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
313 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
333 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
2212 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
3122 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
413 : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },
"321/2212" : { 1 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
4 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
5 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
41 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} },
51 : {"x" : {}, "xi" : {}, "p" : {}, "Ratio" : {}, "Other" : {} } },},
"MultiplicityFlavour" : {111 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
211 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
321 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
2212 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
413 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
3122 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
313 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
333 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
311 : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
"321/2212" : { 1 : {}, 4 : {}, 5 : {}, 41 : {}, 51 : {} },
},
"Multiplicity" : { 22: {}, 111 : {}, 211 : {}, 221 : {}, 331 : {}, 113 : {},9010221 : {},9000211 : {}, 213 : {},
223 : {}, 333 : {}, 321 : {}, 311 : {}, 411 : {}, 421 : {}, 431 : {}, 521 : {}, "511B" : {}, 531 : {}, 511 : {},
313 : {}, 323 : {}, 2212 : {}, 413 : {}, 423 : {}, 433 : {}, 513 : {}, 515 : {},
3122 : {}, 3312 : {}, 3212 : {}, 3112 : {}, 3114 : {}, 3324: {}, 3334 : {}, "321/2212" : {}, 4132 : {},
443 : {}, 100443 : {}, 553 : {}, 20223 : {}, 20333 : {}, 20443 : {}, 225 :{}, 335 : {}, 20431 : {}, 435 : {}, 315 : {}, 325 : {},
3222 : {}, 2224 : {}, 3224 : {}, 3114 : {}, 4122 : {}, 5122 :{}, 3124 :{}, 4222 : {}, "3222B" : {}, "3224B" : {},
},
"EventShapes" : { "T" : {}, "S" : {}, "D" : {}, "O" : {}, "Minor" : {}, "Major" : {},
"y12_dur" : {}, "y23_dur" : {}, "y34_dur" : {}, "y45_dur" : {}, "y56_dur" : {},
"y12_jade" : {}, "y23_jade" : {}, "y34_jade" : {}, "y45_jade" : {}, "y56_jade" : {},
"HeavyJetMass" : {} , "JetMassDifference" : {} ,
"LightJetMass" : {}, "TotalJetMass" : {} , "EEC" : {}, "AEEC" : {} ,
"P" : {}, "A" : {} , "Qx" : {}, "Q21" : {}, "BW" : {}, "BT" : {}, "BN" : {},
"Bdiff" : {}, "C" : {},
"1jet_dur" : {}, "2jet_dur" : {}, "3jet_dur" : {}, "4jet_dur" : {}, "5jet_dur" : {}, "6jet_dur" : {},
"1jet_jade" : {}, "2jet_jade" : {}, "3jet_jade" : {}, "4jet_jade" : {}, "5jet_jade" : {}, "6jet_jade" : {},
"Moment_T":{}, "Moment_H":{},"Moment_C":{},"Moment_S":{},"Moment_L":{},"Moment_y":{},"Moment_BW":{},
"Moment_BN":{},"Moment_BT":{},"Moment_O":{},"Moment_M":{},"Moment_m":{},},
"FourJet" : {"BZ" : {}, "KSW" : {}, "NR" : {}, "alpha34" : {} },
"EventShapesFlavour" : { "T" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"S" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"D" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"O" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"Minor" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"Major" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"y12" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"y23" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"y34" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"y45" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"y56" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "HeavyJetMass" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}} , "JetMassDifference" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}} ,
"LightJetMass" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "TotalJetMass" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}} , "EEC" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "AEEC" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}} ,
"P" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "A" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}} , "BW" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "BT" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "BN" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"Bdiff" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}}, "C" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},
"1jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"2jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"3jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"4jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"5jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},"6jet" : { 1 : {}, 2 : {}, 4 : {}, 5 : {}},},
"QED" : {},
}
particleNames = {
22 : "$\\gamma$",
111 : "$\\pi^0$", 211 : "$\\pi^\\pm$", 221 : "$\\eta$", 331 : "$\\eta^\\prime$",
113 : "$\\rho^0$", 213 : "$\\rho^\\pm$", 223 : "$\\omega$", 333 : "$\\phi$",
115 : "$a_2^0$", 215 : "$a_2^\pm$", 225 : "$f_2$", 335 : "$f^\\prime_2$",
20223 : "$f_1$", 20333 : "$f^\\prime_1$", 20113 : "$a^0_1$", 20213 : "$a^\\pm_1$",
9010221 : "$f_0(980)$", 9000211 : "$a^\\pm_0(980)$",
311 : "$K^0,\\bar{K}^0$", 321 : "$K^\\pm$", 313 : "$K^{*0},\\bar{K}^{*0}$", 323 : "$K^{*\\pm}$",
315 : "$K^0_2,\\bar{K}^0_2$", 325 : "$K^\\pm_2$",
411 : "$D^\\pm$", 421 : "$D^0,\\bar{D}^0$", 413: "$D^{*\\pm}$", 415 : "$D^\\pm_2$", 425 : "$D^0_2, \\bar{D}^0_2$", 423: "$D^{*0},\\bar{D}^{*0}$",
431 : "$D_s^\\pm$", 435 : "$D^\\pm_{s2}$", 20431 : "$D^\\pm_{s1}$", 433 : "$D_s^{*\\pm}$",
511 : "$B^0,\\bar{B}^0$", "511B" : "$B^0,\\bar{B}^0, B^\\pm$",
521 : "$B^\\pm$", 531 : "$B^0_s,\\bar{B}^0_s$", 513 : "$B^*$",515 : "$B^{**}$",
443 : "$J/\\psi$" , 100443 : "$\\psi(2S)$", 553 : "$\Upsilon(1S)$", 20443 : "$\\chi_{c1}(1P)$",
441 : "$\\eta_c$", 100553 : "$\Upsilon(2S)$", 300553 : "$\Upsilon(4S)$", 445 : "$\\chi_{c2}(1P)$",
30443 : "$\\psi(3770)$",
2212 : "$p,\\bar{p}$", 2224 : "$\\Delta^{++},\\bar{\\Delta}^{--}$",
3122 : "$\\Lambda^0,\\bar{\\Lambda}^0$",
3222 : "$\\Sigma^+,\\bar{\Sigma}^-$", "3222B" : "$\\Sigma^\\pm,\\bar{\Sigma}^\\pm$",
3212 : "$\\Sigma^0,\\bar{\Sigma}^0$", 3112 : "$\\Sigma^-,\\bar{\Sigma}^+$",
3224 : "$\\Sigma^{*+},\\bar{\Sigma}^{*-}$", "3224B" : "$\\Sigma^{*\\pm},\\bar{\Sigma}^{*\\pm}$",
3214 : "$\\Sigma^{*0},\\bar{\Sigma}^{*0}$", 3114 : "$\\Sigma^{*-},\\bar{\Sigma}^{*+}$",
3322 : "$\\Xi^0,\\bar{\\Xi}^0$", 3312 : "$\\Xi^-,\\bar{\\Xi}^+$", 3324 : "$\\Xi^{*0},\\bar{\\Xi}^{*0}$", 3314 : "$\\Xi^{*-},\\bar{\\Xi}^{*+}$",
3334 : "$\\Omega^-,\\bar{\\Omega}^+$", 3124 : "$\\Lambda^0(1520),\\bar{\\Lambda}^0(1520)$",
4122 : "$\\Lambda_c^+,\\bar{\\Lambda}^+_c$", 4222 : "$\\Sigma_c^{++}, \\Sigma_c^{0}, \\bar{\\Sigma}_c^{++}, \\bar{\\Sigma}_c^{0}$",
5122 : "$\\Lambda_b^0,\\bar{\\Lambda}^0_b$", 14122 : "$\\Lambda_c(2595)^+,\\bar{\\Lambda}(2595)_c^+$",
4124 : "$\\Lambda_c(2625)^+,\\bar{\\Lambda}(2595)_c^+$", 4112 : "$\\Sigma_c^0,\\bar{\\Sigma}_c^0$", 4114 : "$\\Sigma_c^{*0},\\bar{\\Sigma}_c^{*0}$",
4332 : "$\\Omega_c^0,\\bar{\\Omega}_c^0$", 4132 : "$\\Xi_c^0,\\bar{\\Xi}_c^0$",
"321/2212" : "$K^\\pm,p,\\bar{p}$"
}
# hadron species
mLight = [211,111,221,331,213,113,223,333,225,335,20213,20113,20223,20333,9010221, 9000111, 9000211]
mStrange = [311,321,313,323,315,325]
mCharm = [411,421,413,423,425,431,433,435,20431]
mBottom = [511,"511B",521,531,513,515]
mccbar = [441,443,100443,20443,30443]
mbbbar = [553,100553,300553]
bLight = [2212,2224]
bStrange = [3122,3222,"3222B",3212,3112,3114,3224,"3224B",3312,3322,3324,3334,3124]
bCharm = [4122,4112,4222,4114,4332,4132,14122,4124]
bBottom = [5122]
# hadron decays
modes = {}
# neutral pion
analyses["HadronDecays"][111] = { "Modes" : {"$\\pi^0\\to\\gamma e^+e^-$" : {} } }
analyses["HadronDecays"][111]["Modes"]["$\\pi^0\\to\\gamma e^+e^-$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mff"]
# eta
analyses["HadronDecays"][221] = { "Modes" : {"$\\eta\\to\\pi^0\\pi^0\\pi^0$" : {},
"$\\eta\\to\\pi^+\\pi^-\\pi^0$" : {},
"$\\eta\\to\\gamma e^+e^-$" : {},
"$\\eta\\to\\gamma \\pi^+\\pi^-$" : {},
"$\\eta\\to\\gamma\\gamma\\pi^0$" : {} } }
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\pi^0\\pi^0\\pi^0$"]["MC" ] = ["/MC_Eta_Decay/dpi0pi0_0"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\pi^+\\pi^-\\pi^0$"]["MC" ] = ["/MC_Eta_Decay/dpi0pim_0","/MC_Eta_Decay/dpi0pip_0",
"/MC_Eta_Decay/dpippim_0"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\pi^+\\pi^-\\pi^0$"]["data"] = ["/KLOE2_2016_I1416990/d01-x01-y01","/KLOE2_2016_I1416990/d02-x01-y01",
"/KLOE2_2016_I1416990/d02-x01-y02","/KLOE2_2016_I1416990/d02-x01-y03",
"/KLOE2_2016_I1416990/d02-x01-y04","/KLOE2_2016_I1416990/d02-x01-y05",
"/KLOE2_2016_I1416990/d02-x01-y06","/KLOE2_2016_I1416990/d02-x01-y07",
"/KLOE2_2016_I1416990/d02-x01-y08","/KLOE2_2016_I1416990/d02-x01-y09",
"/KLOE2_2016_I1416990/d02-x01-y10","/KLOE2_2016_I1416990/d02-x01-y11",
"/KLOE2_2016_I1416990/d02-x01-y12","/KLOE2_2016_I1416990/d02-x01-y13",
"/KLOE2_2016_I1416990/d02-x01-y14","/KLOE2_2016_I1416990/d02-x01-y15",
"/KLOE2_2016_I1416990/d02-x01-y16","/KLOE2_2016_I1416990/d02-x01-y17"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\gamma e^+e^-$"]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mff"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\gamma e^+e^-$"]["data"] = ["/A2_2017_I1486671/d01-x01-y01"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\gamma \\pi^+\\pi^-$"]["MC" ] = ["/MC_Eta_Decay/mpimgamma_0","/MC_Eta_Decay/mpipgamma_0",
"/MC_Eta_Decay/mpippim_0" ,"/MC_Eta_Decay/photonenergy_0"]
analyses["HadronDecays"][221]["Modes"]["$\\eta\\to\\gamma\\gamma\\pi^0$" ]["MC" ] = ["/MC_Eta_Decay/mgammagamma_0","/MC_Eta_Decay/mpi0gamma_0"]
# eta'
analyses["HadronDecays"][331] = { "Modes" : {"$\\eta^\\prime\\to\\pi^0\\pi^0\\pi^0$" : {},
"$\\eta^\\prime\\to\\pi^+\\pi^-\\pi^0$" : {},
"$\\eta^\\prime\\to\\eta\\pi^0\\pi^0$" : {},
"$\\eta^\\prime\\to\\eta\\pi^+\\pi^-$" : {},
"$\\eta^\\prime\\to\\gamma e^+e^-$" : {},
"$\\eta^\\prime\\to\\gamma \\mu^+\\mu^-$" : {},
"$\\eta^\\prime\\to\\gamma \\pi^+\\pi^-$" : {},
"$\\eta^\\prime\\to\\gamma\\gamma\\pi^0$" : {} } }
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma e^+e^-$"]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mff"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma e^+e^-$"]["data"] = ["/BESIII_2015_I1364494/d01-x01-y03"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma \\mu^+\\mu^-$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mff",
"/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mVf"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\pi^+\\pi^-\\pi^0$"]["MC"] = ["/MC_Eta_Decay/dpi0pim_1","/MC_Eta_Decay/dpippim_1",
"/MC_Eta_Decay/dpi0pip_1"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma \\pi^+\\pi^-$"]["MC" ] =["/MC_Eta_Decay/mpimgamma_1","/MC_Eta_Decay/mpipgamma_1",
"/MC_Eta_Decay/mpippim_1","/MC_Eta_Decay/photonenergy_1"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma \\pi^+\\pi^-$"]["data"] = ["/BESIII_2018_I1641075/d01-x01-y05"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\gamma\\gamma\\pi^0$"]["MC" ] = ["/MC_Eta_Decay/mgammagamma_1","/MC_Eta_Decay/mpi0gamma_1"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\pi^0\\pi^0\\pi^0$"]["MC" ] = ["/MC_Eta_Decay/dpi0pi0_1"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\eta\\pi^0\\pi^0$"]["MC" ] = ["/MC_Eta_Decay/dpi0eta","/MC_Eta_Decay/dpi0pi0_2"]
analyses["HadronDecays"][331]["Modes"]["$\\eta^\\prime\\to\\eta\\pi^+\\pi^-$"]["MC" ] = ["/MC_Eta_Decay/dpimeta","/MC_Eta_Decay/dpipeta",
"/MC_Eta_Decay/dpippim_2"]
# omega
analyses["HadronDecays"][223] = { "Modes" : {"$\\omega\\to\\pi^+\\pi^-\\pi^0$" : {},
"$\\omega\\to e^+e^-\\pi^0$" : {},
"$\\omega\\to \\mu^+\\mu^-\\pi^0$" : {},}}
analyses["HadronDecays"][223]["Modes"]["$\\omega\\to\\pi^+\\pi^-\\pi^0$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz_1","/MC_OmegaPhia1_3Pion_Decay/m0_1",
"/MC_OmegaPhia1_3Pion_Decay/mminus_1","/MC_OmegaPhia1_3Pion_Decay/mplus_1",
"/MC_OmegaPhia1_3Pion_Decay/xhist_1","/MC_OmegaPhia1_3Pion_Decay/yhist_1"]
analyses["HadronDecays"][223]["Modes"]["$\\omega\\to e^+e^-\\pi^0$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mff"]
analyses["HadronDecays"][223]["Modes"]["$\\omega\\to \\mu^+\\mu^-\\pi^0$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mff"]
analyses["HadronDecays"][223]["Modes"]["$\\omega\\to e^+e^-\\pi^0$"]["data"] = ["/A2_2017_I1486671/d02-x01-y01"]
# phi
analyses["HadronDecays"][333] = { "Modes" : {"$\\phi\\to\\pi^+\\pi^-\\pi^0$" : {},
"$\\phi\\to e^+e^-\\pi^0$" : {},
"$\\phi\\to e^+e^-\\eta$" : {},
"$\\phi\\to \\mu^+\\mu-\\gamma$" : {},
"$\\phi\\to \\pi^0\\pi^0\\gamma$" : {},
"$\\phi\\to \\eta\\pi^0\\gamma$" : {},}}
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to\\pi^+\\pi^-\\pi^0$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz_2","/MC_OmegaPhia1_3Pion_Decay/m0_2",
"/MC_OmegaPhia1_3Pion_Decay/mminus_2","/MC_OmegaPhia1_3Pion_Decay/mplus_2",
"/MC_OmegaPhia1_3Pion_Decay/xhist_2","/MC_OmegaPhia1_3Pion_Decay/yhist_2"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to\\pi^+\\pi^-\\pi^0$"]["data"] = ["/SND_2001_I558279/d01-x01-y01","/SND_2001_I558279/d02-x01-y01"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to e^+e^-\\pi^0$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mff"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to e^+e^-\\pi^0$"]["data"] = ["/KLOE2_2016_I1416825/d01-x01-y01"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to e^+e^-\\eta$"]["MC"] = ["/MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mff"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to e^+e^-\\eta$"]["data"] = ["/KLOE2_2014_I1317236/d01-x01-y01"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to \\pi^0\\pi^0\\gamma$"]["data"] = ["/KLOE_2002_I585183/d01-x01-y01","/SND_2000_I525398/d01-x01-y01"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to \\eta\\pi^0\\gamma$" ]["data"] = ["/KLOE_2009_I818106/d01-x01-y01","/SND_2000_I527094/d01-x01-y01"]
analyses["HadronDecays"][333]["Modes"]["$\\phi\\to \\mu^+\\mu-\\gamma$"]["MC"]=["/MC_Meson_Meson_Leptons_Decay/h2_333p_22p_13_mff","/MC_Meson_Meson_Leptons_Decay/h2_333p_22p_13_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_333p_22p_13_mVf"]
# a_1+
analyses["HadronDecays"][20213] = { "Modes" : { "$a_1^+\\to\\pi^+\\pi^0\\pi^0$" : {},
"$a_1^+\\to\\pi^+\\pi^-\\pi^+$" : {},}}
analyses["HadronDecays"][20213]["Modes"]["$a_1^+\\to\\pi^+\\pi^0\\pi^0$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz1","/MC_OmegaPhia1_3Pion_Decay/hist1A",
"/MC_OmegaPhia1_3Pion_Decay/hist1B"]
analyses["HadronDecays"][20213]["Modes"]["$a_1^+\\to\\pi^+\\pi^-\\pi^+$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz3","/MC_OmegaPhia1_3Pion_Decay/hist3A",
"/MC_OmegaPhia1_3Pion_Decay/hist3B"]
# a_10
analyses["HadronDecays"][20113] = { "Modes" : { "$a_1^0\\to\\pi^0\\pi^0\\pi^0$" : {},
"$a_1^0\\to\\pi^+\\pi^-\\pi^0$" : {},}}
analyses["HadronDecays"][20113]["Modes"]["$a_1^0\\to\\pi^0\\pi^0\\pi^0$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz0","/MC_OmegaPhia1_3Pion_Decay/hist0"]
analyses["HadronDecays"][20113]["Modes"]["$a_1^0\\to\\pi^+\\pi^-\\pi^0$"]["MC"] = ["/MC_OmegaPhia1_3Pion_Decay/dalitz2","/MC_OmegaPhia1_3Pion_Decay/hist2A",
"/MC_OmegaPhia1_3Pion_Decay/hist2B" ,"/MC_OmegaPhia1_3Pion_Decay/hist2C"]
# charm decays
# D+
analyses["HadronDecays"][411] = { "Modes" : { "$D^+\\to\\bar{K}^0e^+\\nu_e$" : {},
"$D^+\\to\\pi^0e^+\\nu_e$" : {},
"$D^+\\to \\bar{K}_1(1270)^0e^+\\nu_e$" : {},
"$D^+\\to\\bar{K}^0\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\pi^0\\mu^+\\nu_\\mu$" : {},
"$D^+\\to \\bar{K}_1(1270)^0\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\eta e^+\\nu_e$" : {},
"$D^+\\to\\eta\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\eta^\\prime e^+\\nu_e$" : {},
"$D^+\\to\\eta^\\prime\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\rho^0 e^+\\nu_e$" : {},
"$D^+\\to\\rho^0\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\omega e^+\\nu_e$" : {},
"$D^+\\to\\omega\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\bar{K}^{*0}e^+\\nu_e$" : {},
"$D^+\\to\\bar{K}^{*0}\\mu^+\\nu_\\mu$" : {},
"$D^+\\to\\bar{K}_2^{*0}e^+\\nu_e$" : {},
"$D^+\\to\\bar{K}_2^{*0}\\mu^+\\nu_\\mu$" : {},
"$D^+\\to K^-\\pi^+\\pi^+$" : {},
"$D^+\\to K^+\\pi^-\\pi^+$" : {},
"$D^+\\to\\bar{K}^0\\pi^+\\pi^0$" : {},
}}
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^0e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_311m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_311m_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^0e^+\\nu_e$" ]["data"] = ["/BESIII_2017_I1519425/d01-x01-y01"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\pi^0e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_111p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_111p_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\pi^0e^+\\nu_e$" ]["data"] = ["/BESIII_2017_I1519425/d02-x01-y01"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to \\bar{K}_1(1270)^0e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_10313m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_10313m_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^0\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_311p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_311p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\pi^0\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_111p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_111p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to \\bar{K}_1(1270)^0\\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_10313p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_10313p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to K^-\\pi^+\\pi^+$" ]["MC" ] = ["/MC_D_Dalitz/dalitz3","/MC_D_Dalitz/h_Kpiall3",
"/MC_D_Dalitz/h_Kpihigh3","/MC_D_Dalitz/h_Kpilow3",
"/MC_D_Dalitz/h_pipi3"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to K^+\\pi^-\\pi^+$" ]["MC" ] = ["/MC_D_Dalitz/dalitz5","/MC_D_Dalitz/h_kppim5",
"/MC_D_Dalitz/h_kppip5","/MC_D_Dalitz/h_pippim5",]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^0\\pi^+\\pi^0$" ]["MC" ] = ["/MC_D_Dalitz/dalitz4","/MC_D_Dalitz/h_Kpi04",
"/MC_D_Dalitz/h_Kpip4","/MC_D_Dalitz/h_pipi4"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\eta e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_221p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_221p_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\eta\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_221p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_221p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\eta^\\prime e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_331p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_331p_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\eta^\\prime\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_331p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_331p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\rho^0 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_113p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_113p_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\rho^0\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_113p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_113p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\omega e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_223p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_223p_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\omega\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_223p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_223p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^{*0}e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_313m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_313m_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}^{*0}\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_313p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_313p_13p_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}_2^{*0}e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411p_315m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_411p_315m_11m_scale"]
analyses["HadronDecays"][411]["Modes"]["$D^+\\to\\bar{K}_2^{*0}\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_411m_315p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_411m_315p_13p_scale"]
# D^0
analyses["HadronDecays"][421] ={ "Modes" : { "$D^0\\to K^-e^+\\nu_e$" : {},
"$D^0\\to K^-\\mu^+\\nu_\\mu$" : {},
"$D^0\\to K^{*-}e^+\\nu_e$" : {},
"$D^0\\to K^{*-}\\mu^+\\nu_\\mu$" : {},
"$D^0\\to K^{*-}_2e^+\\nu_e$" : {},
"$D^0\\to K^{*-}_2\\mu^+\\nu_\\mu$" : {},
"$D^0\\to K_1(1270)^{-}e^+\\nu_e$" : {},
"$D^0\\to K_1(1270)^{-}\\mu^+\\nu_\\mu$": {},
"$D^0\\to \\pi^-e^+\\nu_e$" : {},
"$D^0\\to \\pi^-\\mu^+\\nu_\\mu$" : {},
"$D^0\\to \\rho^-e^+\\nu_e$" : {},
"$D^0\\to \\rho^-\\mu^+\\nu_\\mu$" : {},
"$D^0\\to K^-\\pi^+\\pi^0$" : {},
"$D^0\\to \\bar{K}^0\\pi^+\\pi^-$" : {},
}}
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^{*-}e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_323m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_323m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^{*-}\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_323p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_323p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^{*-}_2e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_325m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_325m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^{*-}_2\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_325p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_325p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K_1(1270)^{-}e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_10323m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_10323m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K_1(1270)^{-}\\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_10323p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_10323p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^-e^+\\nu_e$" ]["data"] = ["/BESIII_2015_I1391138/d01-x01-y03"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^-e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_321m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_321m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^-\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_321p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_321p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\pi^-e^+\\nu_e$" ]["data"] = ["/BABAR_2015_I1334693/d01-x01-y01",
"/BESIII_2015_I1391138/d02-x01-y03"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\pi^-e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_211m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_211m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\pi^-\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_211p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_211p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\rho^-e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421p_213m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_421p_213m_11m_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\rho^-\\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_421m_213p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_421m_213p_13p_scale"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to K^-\\pi^+\\pi^0$" ]["MC" ] = ["/MC_D_Dalitz/dalitz2","/MC_D_Dalitz/h_minus2",
"/MC_D_Dalitz/h_neutral2","/MC_D_Dalitz/h_pipi2"]
analyses["HadronDecays"][421]["Modes"]["$D^0\\to \\bar{K}^0\\pi^+\\pi^-$" ]["MC" ] = ["/MC_D_Dalitz/dalitz1","/MC_D_Dalitz/h_minus1",
"/MC_D_Dalitz/h_pipi1","/MC_D_Dalitz/h_plus1"]
analyses["HadronDecays"][431] = { "Modes" : { "$D_s^+\\to \\eta e^+\\nu_e$" : {},
"$D_s^+\\to \\eta \\mu^+\\nu_\\mu$" : {},
"$D_s^+\\to \\eta^\\prime e^+\\nu_e$" : {},
"$D_s^+\\to \\eta^\\prime \\mu^+\\nu_\\mu$" : {},
"$D_s^+\\to \\phi e^+\\nu_e$" : {},
"$D_s^+\\to \\phi \\mu^+\\nu_\\mu$" : {},
"$D_s^+\\to K^0 e^+\\nu_e$" : {},
"$D_s^+\\to K^0 \\mu^+\\nu_\\mu$" : {},
"$D_s^+\\to K^{*0} e^+\\nu_e$" : {},
"$D_s^+\\to K^{*0} \\mu^+\\nu_\\mu$" : {},
"$D_s^+\\to K^+\\pi^-\\pi^+$" : {},
}}
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\eta e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431p_221p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_221p_11m_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\eta \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431m_221p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_431m_221p_13p_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\eta^\\prime e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431p_331p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_331p_11m_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\eta^\\prime \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431m_331p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_431m_331p_13p_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\phi e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431p_333p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_333p_11m_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to \\phi \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431m_333p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_431m_333p_13p_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to K^0 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431p_311m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_311m_11m_scale",
"/MC_Semi_Leptonic_Decay/h_431p_311p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_311p_11m_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to K^0 \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431m_311p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_431m_311p_13p_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to K^{*0} e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431p_313p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_313p_11m_scale",
"/MC_Semi_Leptonic_Decay/h_431p_313m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_431p_313m_11m_scale"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to K^{*0} \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_431m_313p_13p_scale",
"/MC_Semi_Leptonic_Decay/h_431m_313p_13p_energy"]
analyses["HadronDecays"][431]["Modes"]["$D_s^+\\to K^+\\pi^-\\pi^+$" ]["MC" ] = ["/MC_D_Dalitz/dalitz6","/MC_D_Dalitz/h_kppim6",
"/MC_D_Dalitz/h_kppip6","/MC_D_Dalitz/h_pippim6"]
analyses["HadronDecays"][511]={ "Spectrum" : {},
"Modes" : { "$B^0\\to\\pi^- e^+\\nu_e$" : {},
"$B^0\\to\\pi^- \\mu^+\\nu_\\mu$" : {},
"$B^0\\to\\rho^- e^+\\nu_e$" : {},
"$B^0\\to\\rho^- \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^- e^+\\nu_e$" : {},
"$B^0\\to D^- \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^{*-} e^+\\nu_e$" : {},
"$B^0\\to D^{*-} \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^{*-}_2 e^+\\nu_e$" : {},
"$B^0\\to D^{*-}_2 \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^{*-}_0(2400) e^+\\nu_e$" : {},
"$B^0\\to D^{*-}_0(2400) \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^{-}_1(2430) e^+\\nu_e$" : {},
"$B^0\\to D^{-}_1(2430) \\mu^+\\nu_\\mu$" : {},
"$B^0\\to D^{-}_1(2420) e^+\\nu_e$" : {},
"$B^0\\to D^{-}_1(2420) \\mu^+\\nu_\\mu$" : {},
"$B^0\\to K^{*0} e^+e^-$" : {},
"$B^0\\to K^{*0} \\mu^+\\mu^-$" : {},
"$B^0\\to K^0 e^+e^-$" : {},
"$B^0\\to K^0 \\mu^+\\mu^-$" : {},
"$B\\to X_s\\gamma$" : {},}}
analyses["HadronDecays"][521]={"Modes" : { "$B^+\\to\\pi^0 e^+\\nu_e$" : {},
"$B^+\\to\\pi^0 \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\omega e^+\\nu_e$" : {},
"$B^+\\to\\omega \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\rho^0 e^+\\nu_e$" : {},
"$B^+\\to\\rho^0 \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\eta^\\prime e^+\\nu_e$" : {},
"$B^+\\to\\eta^\\prime \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\eta e^+\\nu_e$" : {},
"$B^+\\to\\eta \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\bar{D}^0 e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^0 \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\bar{D}^{*0} e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^{*0} \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\bar{D}^{*0}_2 e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^{*0}_2 \\mu^+\\nu_\\mu$": {},
"$B^+\\to\\bar{D}^{*0}_0(2400) e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^{*0}_0(2400) \\mu^+\\nu_\\mu$": {},
"$B^+\\to\\bar{D}^{0}_1(2430) e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^{0}_1(2430) \\mu^+\\nu_\\mu$" : {},
"$B^+\\to\\bar{D}^{0}_1(2420) e^+\\nu_e$" : {},
"$B^+\\to\\bar{D}^{0}_1(2420) \\mu^+\\nu_\\mu$" : {},
"$B^+\\to K^{*+} e^+e^-$" : {},
"$B^+\\to K^{*+} \\mu^+\\mu^-$" : {},
"$B^+\\to K^- e^+e^-$" : {},
"$B^+\\to K^- \\mu^+\\mu^-$" : {},}
}
analyses["HadronDecays"][511]["Spectrum"][311] = ["/ARGUS_1994_I354224/d01-x01-y01"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\pi^0 e^+\\nu_e$" ]["data"] = ["/BELLE_2013_I1238273/d02-x01-y01"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\pi^0 e^+\\nu_e$" ]["MC"] = ["/MC_Semi_Leptonic_Decay/h_521p_111p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_111p_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\pi^0 \\mu^+\\nu_\\mu$" ]["MC"] = ["/MC_Semi_Leptonic_Decay/h_521m_111p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_111p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\pi^- e^+\\nu_e$" ]["data"] = ["/BELLE_2011_I878990/d01-x01-y01","/BELLE_2013_I1238273/d01-x01-y01"]
#analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\pi^- \\mu^+\\nu_\\mu$" ]["data"] = []
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\pi^- e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_211m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_211m_11m_scale",]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\pi^- \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_211p_13p_scale",
"/MC_Semi_Leptonic_Decay/h_511m_211p_13p_energy"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\rho^- e^+\\nu_e$" ]["data"] = ["/BELLE_2013_I1238273/d03-x01-y01"]
#analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\rho^- \\mu^+\\nu_\\mu$" ]["data"] = []
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\rho^- e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_213m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_213m_11m_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to\\rho^- \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_213p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_213p_13p_scale",]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\omega e^+\\nu_e$" ]["data"] = ["/BELLE_2013_I1238273/d05-x01-y01","/BABAR_2013_I1116411/d01-x01-y01"]
#analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\omega \\mu^+\\nu_\\mu$" ]["data"] = []
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\omega e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_223p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_223p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\omega \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_223p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_223p_11m_scale",]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\rho^0 e^+\\nu_e$" ]["data"] = ["/BELLE_2013_I1238273/d04-x01-y01"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\rho^0 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_113p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_113p_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\rho^0 \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_113p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_113p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^- e^+\\nu_e$" ]["data"] = ["/BELLE_2015_I1397632/d01-x01-y01"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^- \\mu^+\\nu_\\mu$" ]["data"] = ["/BELLE_2015_I1397632/d01-x01-y02"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^- e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_411m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_411m_11m_scale",]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^- \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_411p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_411p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-} e^+\\nu_e$" ]["data"] = ["/BELLE_2017_I1512299/d01-x01-y01","/BELLE_2017_I1512299/d02-x01-y01",
"/BELLE_2017_I1512299/d03-x01-y01","/BELLE_2017_I1512299/d04-x01-y01",]
#analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-} \\mu^+\\nu_\\mu$" ]["data"] = []
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-} e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_413m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_413m_11m_scale",]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-} \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_413p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_413p_13p_scale",]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-}_2 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_415m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_415m_11m_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-}_2 \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_415p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_415p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\eta^\\prime e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_331p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_331p_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\eta^\\prime \\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_331p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_331p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\eta e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_221p_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_221p_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\eta \\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_221p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_221p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^0 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_421m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_421m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^0 \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_421p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_421p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^0 e^+\\nu_e$" ]["data"] = ["/BELLE_2015_I1397632/d02-x01-y01"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^0 \\mu^+\\nu_\\mu$" ]["data"] = ["/BELLE_2015_I1397632/d02-x01-y02"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0} e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_423m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_423m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0} \\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_423p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_423p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0}_2 e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_425m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_425m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0}_2 \\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_425p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_425p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0}_0(2400) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_10421m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_10421m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{*0}_0(2400) \\mu^+\\nu_\\mu$"]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_10421p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_10421p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{0}_1(2430) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_20423m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_20423m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{0}_1(2430) \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_20423p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_20423p_13p_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{0}_1(2420) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521p_10423m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_521p_10423m_11m_scale"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to\\bar{D}^{0}_1(2420) \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_521m_10423p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_521m_10423p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-}_0(2400) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_10411m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_10411m_11m_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{*-}_0(2400) \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_10411p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_10411p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{-}_1(2430) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_20413m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_20413m_11m_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{-}_1(2430) \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_20413p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_20413p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{-}_1(2420) e^+\\nu_e$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511p_10413m_11m_energy",
"/MC_Semi_Leptonic_Decay/h_511p_10413m_11m_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to D^{-}_1(2420) \\mu^+\\nu_\\mu$" ]["MC" ] = ["/MC_Semi_Leptonic_Decay/h_511m_10413p_13p_energy",
"/MC_Semi_Leptonic_Decay/h_511m_10413p_13p_scale"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to K^{*0} e^+e^-$" ]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mff"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to K^{*0} \\mu^+\\mu^-$"]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mff"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to K^0 e^+e^-$" ]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h_511p_311p_11_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_511p_311p_11_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_511p_311p_11_mff",
"/MC_Meson_Meson_Leptons_Decay/h_511m_311m_11_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_511m_311m_11_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_511m_311m_11_mff"]
analyses["HadronDecays"][511]["Modes"]["$B^0\\to K^0 \\mu^+\\mu^-$"]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h_511m_311m_13_mPf",
"/MC_Meson_Meson_Leptons_Decay/h_511m_311m_13_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_511m_311m_13_mff"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to K^{*+} e^+e^-$" ]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mff",
"/MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mVfbar"]
analyses["HadronDecays"][521]["Modes"]["$B^+\\to K^{*+} \\mu^+\\mu^-$"]["MC" ] = []
analyses["HadronDecays"][521]["Modes"]["$B^+\\to K^- e^+e^-$" ]["MC" ] = []
analyses["HadronDecays"][521]["Modes"]["$B^+\\to K^- \\mu^+\\mu^-$" ]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h_521m_321m_13_mPfbar",
"/MC_Meson_Meson_Leptons_Decay/h_521m_321m_13_mff",
"/MC_Meson_Meson_Leptons_Decay/h_521m_321m_13_mPf"]
analyses["HadronDecays"][511]["Modes"]["$B\\to X_s\\gamma$"]["data"]=["/BELLE_2015_I1330289/d01-x01-y02"]
# charmonium
analyses["HadronDecays"][443] = { "Modes" : { "$J/\\psi\\to\\eta e^+e^-$" : {},
"$J/\\psi\\to\\gamma e^+e^-$" : {},
"$J/\\psi\\to p\\bar{p}$" : {},
"$J/\\psi\\to n\\bar{n}$" : {},
"$J/\\psi\\to \\Sigma^{*-}\\bar\\Sigma^{*+}$" : {},
"$J/\\psi\\to \\Sigma^{*0}\\bar\\Sigma^{*0}$" : {},
"$J/\\psi\\to \\Sigma^{*+}\\bar\\Sigma^{*-}$" : {},
"$J/\\psi\\to \\Xi^{-}\\bar\\Xi^{+}$" : {},
"$J/\\psi\\to \\Xi^{0}\\bar\\Xi^{0}$" : {},
"$J/\\psi\\to \\Lambda^{0}\\bar\\Lambda^{0}$" : {},
"$J/\\psi\\to \\Sigma^{0}\\bar\\Sigma^{0}$" : {},
}}
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to\\eta e^+e^-$" ]["data"] = ["/BESIII_2018_I1697377/d01-x01-y01"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to\\gamma e^+e^-$"]["MC" ] = ["/MC_Meson_Meson_Leptons_Decay/h2_443p_22p_11_mVf",
"/MC_Meson_Meson_Leptons_Decay/h2_443p_22p_11_mVfbar",
"/MC_Meson_Meson_Leptons_Decay/h2_443p_22p_11_mff"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to p\\bar{p}$" ]["data"] = ["/BESIII_2012_I1113599/d01-x01-y01"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to p\\bar{p}$" ]["MC"] = ["/BESIII_2012_I1113599/ctheta_p"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to n\\bar{n}$" ]["data"] = ["/BESIII_2012_I1113599/d01-x01-y02"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to n\\bar{n}$" ]["MC"] = ["/BESIII_2012_I1113599/ctheta_n"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Sigma^{*-}\\bar\\Sigma^{*+}$"]["data"] = ["/BESIII_2016_I1422780/d02-x01-y02","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Sigma^{*0}\\bar\\Sigma^{*0}$"]["data"] = ["/BESIII_2017_I1506414/d01-x01-y01","/BESIII_2017_I1506414/d02-x01-y01"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Sigma^{*+}\\bar\\Sigma^{*-}$"]["data"] = ["/BESIII_2016_I1422780/d02-x01-y03","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Xi^{-}\\bar\\Xi^{+}$" ]["data"] = ["/BESIII_2016_I1422780/d02-x01-y01","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Xi^{0}\\bar\\Xi^{0}$" ]["data"] = ["/BESIII_2017_I1506414/d01-x01-y02","/BESIII_2017_I1506414/d02-x02-y01"]
-analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Lambda^{0}\\bar\\Lambda^{0}$"]["data"] = ["/BESIII_2017_I1510563/d01-x01-y01","/BESIII_2017_I1510563/d02-x01-y01"]
+analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Lambda^{0}\\bar\\Lambda^{0}$"]["data"] = ["/BESIII_2017_I1510563/d01-x01-y01","/BESIII_2017_I1510563/d02-x01-y01",
+ "/BESIII_2019_I1691850/d01-x01-y01","/BESIII_2019_I1691850/d01-x02-y01",
+ "/BESIII_2019_I1691850/d01-x03-y01","/BESIII_2019_I1691850/d01-x04-y01",
+ "/BESIII_2019_I1691850/d01-x05-y01",]
+analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Lambda^{0}\\bar\\Lambda^{0}$"]["MC" ] = ["/BESIII_2019_I1691850/T1_n","/BESIII_2019_I1691850/T1_p",
+ "/BESIII_2019_I1691850/T2_n","/BESIII_2019_I1691850/T2_p",
+ "/BESIII_2019_I1691850/T3_n","/BESIII_2019_I1691850/T3_p",
+ "/BESIII_2019_I1691850/T4_n","/BESIII_2019_I1691850/T4_p",
+ "/BESIII_2019_I1691850/T5_n","/BESIII_2019_I1691850/T5_p",
+ "/BESIII_2019_I1691850/mu_n","/BESIII_2019_I1691850/mu_p",
+ "/BESIII_2019_I1691850/cThetaL",]
analyses["HadronDecays"][443]["Modes"]["$J/\\psi\\to \\Sigma^{0}\\bar\\Sigma^{0}$" ]["data"] = ["/BESIII_2017_I1510563/d01-x01-y03","/BESIII_2017_I1510563/d02-x02-y01"]
# eta_c
analyses["HadronDecays"][441] = {"DistChargedMult" : {}}
analyses["HadronDecays"][441]["DistChargedMult"]["data"] = ["/BESIII_2019_I1724880/d01-x01-y01"]
# psi(3770)
analyses["HadronDecays"][30443] = { "Modes" : { "$\\psi(3770)\\to J/\\psi\\pi^0\\pi^0$" : {},
"$\\psi(3770)\\to J/\\psi\\pi^+\\pi^-$" : {},}}
analyses["HadronDecays"][30443]["Modes"]["$\\psi(3770)\\to J/\\psi\\pi^0\\pi^0$"]["MC" ] = ["/MC_Onium_PiPi_Decay/h_30443_443_mpi0pi0","/MC_Onium_PiPi_Decay/h_30443_443_hpi0pi0"]
analyses["HadronDecays"][30443]["Modes"]["$\\psi(3770)\\to J/\\psi\\pi^+\\pi^-$"]["MC" ] = ["/MC_Onium_PiPi_Decay/h_30443_443_hpippim","/MC_Onium_PiPi_Decay/h_30443_443_mpippim"]
# psi(2S)
analyses["HadronDecays"][100443] = { "Modes" : { "$\\psi(2S)\\to p\\bar{p}$" : {},
"$\\psi(2S)\\to n\\bar{n}$" : {},
"$\\psi(2S)\\to \\Sigma^{*-}\\bar\\Sigma^{*+}$" : {},
"$\\psi(2S)\\to \\Sigma^{*0}\\bar\\Sigma^{*0}$" : {},
"$\\psi(2S)\\to \\Sigma^{*+}\\bar\\Sigma^{*-}$" : {},
"$\\psi(2S)\\to \\Xi^{-}\\bar\\Xi^{+}$" : {},
"$\\psi(2S)\\to \\Xi^{0}\\bar\\Xi^{0}$" : {},
"$\\psi(2S)\\to \\Lambda^{0}\\bar\\Lambda^{0}$" : {},
"$\\psi(2S)\\to \\Sigma^{0}\\bar\\Sigma^{0}$" : {}, }}
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to p\\bar{p}$" ]["data"] = ["/BESIII_2018_I1658762/d01-x01-y01"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to p\\bar{p}$" ]["MC"] = ["/BESIII_2018_I1658762/ctheta_p"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to n\\bar{n}$" ]["data"] = ["/BESIII_2018_I1658762/d01-x01-y02"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to n\\bar{n}$" ]["MC"] = ["/BESIII_2018_I1658762/ctheta_n"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Sigma^{*-}\\bar\\Sigma^{*+}$"]["data"] = ["/BESIII_2016_I1422780/d02-x01-y05","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Sigma^{*0}\\bar\\Sigma^{*0}$"]["data"] = ["/BESIII_2017_I1506414/d01-x01-y03","/BESIII_2017_I1506414/d02-x03-y01"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Sigma^{*+}\\bar\\Sigma^{*-}$"]["data"] = ["/BESIII_2016_I1422780/d02-x01-y06","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Xi^{-}\\bar\\Xi^{+}$" ]["data"] = ["/BESIII_2016_I1422780/d02-x01-y04","/BESIII_2016_I1422780/d01-x01-y03"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Xi^{0}\\bar\\Xi^{0}$" ]["data"] = ["/BESIII_2017_I1506414/d01-x01-y04","/BESIII_2017_I1506414/d02-x04-y01"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Lambda^{0}\\bar\\Lambda^{0}$"]["data"] = ["/BESIII_2017_I1510563/d01-x01-y02","/BESIII_2017_I1510563/d02-x03-y01"]
analyses["HadronDecays"][100443]["Modes"]["$\\psi(2S)\\to \\Sigma^{0}\\bar\\Sigma^{0}$" ]["data"] = ["/BESIII_2017_I1510563/d01-x01-y04","/BESIII_2017_I1510563/d02-x04-y01"]
# bottomonium
# upsilon(1s)
analyses["HadronDecays"][553] = { "Mult" : {}, "Spectrum" : {} }
analyses["HadronDecays"][553]["Mult"][3122 ] = ["/ARGUS_1988_I251097/d01-x01-y01"]
analyses["HadronDecays"][553]["Mult"][3312 ] = ["/ARGUS_1988_I251097/d01-x01-y02"]
analyses["HadronDecays"][553]["Mult"][3212 ] = ["/ARGUS_1988_I251097/d01-x01-y03"]
analyses["HadronDecays"][553]["Mult"][3114 ] = ["/ARGUS_1988_I251097/d01-x01-y04"]
analyses["HadronDecays"][553]["Mult"][3224 ] = ["/ARGUS_1988_I251097/d01-x01-y05"]
analyses["HadronDecays"][553]["Mult"][3324 ] = ["/ARGUS_1988_I251097/d01-x01-y06"]
analyses["HadronDecays"][553]["Mult"][3334 ] = ["/ARGUS_1988_I251097/d01-x01-y07"]
analyses["HadronDecays"][553]["Mult"][333 ] = ["/ARGUS_1989_I262551/d03-x01-y01","/ARGUS_1993_S2789213/d02-x01-y05"]
analyses["HadronDecays"][553]["Mult"][211 ] = ["/ARGUS_1989_I276860/d01-x01-y01","/ARGUS_1989_I276860/d01-x01-y02"]
analyses["HadronDecays"][553]["Mult"][311 ] = ["/ARGUS_1989_I276860/d02-x01-y01"]
analyses["HadronDecays"][553]["Mult"][321 ] = ["/ARGUS_1989_I276860/d03-x01-y01"]
analyses["HadronDecays"][553]["Mult"][2212 ] = ["/ARGUS_1989_I276860/d04-x01-y01","/ARGUS_1989_I276860/d04-x01-y02"]
analyses["HadronDecays"][553]["Mult"][111 ] = ["/ARGUS_1990_I278933/d01-x01-y02"]
analyses["HadronDecays"][553]["Mult"][221 ] = ["/ARGUS_1990_I278933/d02-x01-y02"]
analyses["HadronDecays"][553]["Mult"][331 ] = ["/ARGUS_1993_S2669951/d01-x01-y01","/ARGUS_1993_S2669951/d01-x01-y02"]
analyses["HadronDecays"][553]["Mult"][113 ] = ["/ARGUS_1993_S2789213/d02-x01-y02"]
analyses["HadronDecays"][553]["Mult"][223 ] = ["/ARGUS_1993_S2789213/d02-x01-y01"]
analyses["HadronDecays"][553]["Mult"][313 ] = ["/ARGUS_1993_S2789213/d02-x01-y03"]
analyses["HadronDecays"][553]["Mult"][323 ] = ["/ARGUS_1993_S2789213/d02-x01-y04"]
analyses["HadronDecays"][553]["Mult"][9010221] = ["/ARGUS_1993_S2669951/d05-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][3122] = ["/ARGUS_1988_I251097/d03-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][3312] = ["/ARGUS_1988_I251097/d07-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][3124] = ["/ARGUS_1989_I262415/d03-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][333 ] = ["/ARGUS_1989_I262551/d02-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][211 ] = ["/ARGUS_1989_I276860/d05-x01-y01","/ARGUS_1989_I276860/d09-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][321 ] = ["/ARGUS_1989_I276860/d06-x01-y01","/ARGUS_1989_I276860/d10-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][311 ] = ["/ARGUS_1989_I276860/d07-x01-y01","/ARGUS_1989_I276860/d11-x01-y01",
"/PLUTO_1981_I165122/d06-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][2212] = ["/ARGUS_1989_I276860/d08-x01-y01","/ARGUS_1989_I276860/d12-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][111 ] = ["/ARGUS_1990_I278933/d04-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][221 ] = ["/ARGUS_1990_I278933/d06-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][9010221] = ["/ARGUS_1993_S2669951/d03-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][323] = ["/ARGUS_1993_S2789213/d05-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][313] = ["/ARGUS_1993_S2789213/d08-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][113] = ["/ARGUS_1993_S2789213/d11-x01-y01"]
analyses["HadronDecays"][553]["Spectrum"][223] = ["/ARGUS_1993_S2789213/d14-x01-y01"]
# upsion(2s)
analyses["HadronDecays"][100553] = { "Mult" : {}, "Spectrum" : {},
"Modes" : { "$\\Upsilon(2S)\\to J/\\psi\\pi^0\\pi^0$" : {},
"$\\Upsilon(2S)\\to J/\\psi\\pi^+\\pi^-$" : {},
"$\\Upsilon(2S)\\to \\Upsilon(1S))\\pi^0\\pi^0$" : {},
"$\\Upsilon(2S)\\to \\Upsilon(1S)\\pi^+\\pi^-$" : {},}}
analyses["HadronDecays"][100553]["Mult"][111]= ["/ARGUS_1990_I278933/d01-x01-y03"]
analyses["HadronDecays"][100553]["Mult"][221]= ["/ARGUS_1990_I278933/d02-x01-y03"]
analyses["HadronDecays"][100553]["Mult"][333]= ["/ARGUS_1989_I262551/d04-x01-y01"]
analyses["HadronDecays"][100553]["Spectrum"][3122] = ["/ARGUS_1988_I251097/d04-x01-y01"]
analyses["HadronDecays"][100553]["Spectrum"][3312] = ["/ARGUS_1988_I251097/d08-x01-y01"]
analyses["HadronDecays"][100553]["Spectrum"][333 ] = ["/ARGUS_1989_I262551/d02-x01-y02"]
analyses["HadronDecays"][100553]["Spectrum"][111 ] = ["/ARGUS_1990_I278933/d04-x01-y02"]
analyses["HadronDecays"][100553]["Spectrum"][221 ] = ["/ARGUS_1990_I278933/d06-x01-y02"]
analyses["HadronDecays"][100553]["Spectrum"][9010221] = ["/ARGUS_1993_S2669951/d04-x01-y01"]
analyses["HadronDecays"][100553]["Modes"]["$\\Upsilon(2S)\\to J/\\psi\\pi^0\\pi^0$"]["MC"] = ["/MC_Onium_PiPi_Decay/h_100443_443_hpi0pi0",
"/MC_Onium_PiPi_Decay/h_100443_443_mpi0pi0"]
analyses["HadronDecays"][100553]["Modes"]["$\\Upsilon(2S)\\to J/\\psi\\pi^+\\pi^-$"]["MC"] = ["/MC_Onium_PiPi_Decay/h_100443_443_hpippim",
"/MC_Onium_PiPi_Decay/h_100443_443_mpippim"]
analyses["HadronDecays"][100553]["Modes"]["$\\Upsilon(2S)\\to \\Upsilon(1S))\\pi^0\\pi^0$"]["MC"] = ["/MC_Onium_PiPi_Decay/h_100553_553_mpi0pi0",
"/MC_Onium_PiPi_Decay/h_100553_553_hpi0pi0"]
analyses["HadronDecays"][100553]["Modes"]["$\\Upsilon(2S)\\to \\Upsilon(1S)\\pi^+\\pi^-$" ]["MC"] = ["/MC_Onium_PiPi_Decay/h_100553_553_mpippim",
"/MC_Onium_PiPi_Decay/h_100553_553_hpippim"]
# upsilon(4s)
analyses["HadronDecays"][300553] = { "Mult" : {}, "Spectrum" : {}, "DistChargedMult" : {},
"Modes" : {"$\\Upsilon(4S)\\to\\Upsilon(1S)\\pi^0\\pi^0$" : {},
"$\\Upsilon(4S)\\to\\Upsilon(1S)\\pi^+\\pi^-$" : {},
"$\\Upsilon(4S)\\to J/\\psi\\pi^0\\pi^0$" : {},
"$\\Upsilon(4S)\\to J/\\psi\\pi^+\\pi^-$" : {},}}
analyses["HadronDecays"][300553]["Modes"]["$\\Upsilon(4S)\\to\\Upsilon(1S)\\pi^0\\pi^0$"]["MC"]=["/MC_Onium_PiPi_Decay/h_300553_100553_hpi0pi0",
"/MC_Onium_PiPi_Decay/h_300553_100553_mpi0pi0"]
analyses["HadronDecays"][300553]["Modes"]["$\\Upsilon(4S)\\to\\Upsilon(1S)\\pi^+\\pi^-$"]["MC"]=["/MC_Onium_PiPi_Decay/h_300553_100553_hpippim",
"/MC_Onium_PiPi_Decay/h_300553_100553_mpippim"]
analyses["HadronDecays"][300553]["Modes"]["$\\Upsilon(4S)\\to J/\\psi\\pi^0\\pi^0$" ]["MC"]=["/MC_Onium_PiPi_Decay/h_300553_553_hpi0pi0",
"/MC_Onium_PiPi_Decay/h_300553_553_mpi0pi0"]
analyses["HadronDecays"][300553]["Modes"]["$\\Upsilon(4S)\\to J/\\psi\\pi^+\\pi^-$" ]["MC"]=["/MC_Onium_PiPi_Decay/h_300553_553_mpippim",
"/MC_Onium_PiPi_Decay/h_300553_553_hpippim"]
analyses["HadronDecays"][300553]["DistChargedMult"]["data"] = ["/ARGUS_1992_I319102/d03-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 211 ] = ["/ARGUS_1993_S2653028/d07-x01-y01","/ARGUS_1993_S2653028/d08-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d87-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 321 ] = ["/ARGUS_1993_S2653028/d09-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d60-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d61-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d62-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 2212] = ["/ARGUS_1993_S2653028/d10-x01-y01","/ARGUS_1993_S2653028/d11-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d110-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 223 ] = ["/ARGUS_1993_S2789213/d03-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 113 ] = ["/ARGUS_1993_S2789213/d03-x01-y02",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d90-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 313 ] = ["/ARGUS_1993_S2789213/d03-x01-y03",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d65-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 323 ] = ["/ARGUS_1993_S2789213/d03-x01-y04",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d64-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 333 ] = ["/ARGUS_1993_S2789213/d03-x01-y05",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d92-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 111 ] = ["/BELLE_2001_S4598261/d02-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d88-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 4222] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d104-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 4112] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d106-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 4122] = ["/BABAR_2007_S6895344/d04-x01-y01",
"/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d96-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 3122] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d113-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 3312] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d116-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 411 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d29-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 421 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d30-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 413 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d31-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 423 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d32-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 431 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d33-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 433 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d34-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 443 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d48-x01-y01",
"/BABAR_2003_I593379/d01-x01-y01","/BABAR_2003_I593379/d01-x01-y02"]
analyses["HadronDecays"][300553]["Mult"][100443 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d50-x01-y01",
"/BABAR_2003_I593379/d01-x01-y07"]
analyses["HadronDecays"][300553]["Mult"][ 20443 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d51-x01-y01",
"/BABAR_2003_I593379/d01-x01-y03","/BABAR_2003_I593379/d01-x01-y04"]
analyses["HadronDecays"][300553]["Mult"][ 445 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d53-x01-y01",
"/BABAR_2003_I593379/d01-x01-y05","/BABAR_2003_I593379/d01-x01-y06"]
analyses["HadronDecays"][300553]["Mult"][ 311 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d63-x01-y01"]
analyses["HadronDecays"][300553]["Mult"][ 221 ] = ["/PDG_Upsilon_4S_HADRON_MULTIPLICITIES/d89-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][111 ] = ["/BELLE_2001_S4598261/d01-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][211 ] = ["/ARGUS_1993_S2653028/d01-x01-y01","/ARGUS_1993_S2653028/d02-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][321 ] = ["/ARGUS_1993_S2653028/d03-x01-y01","/ARGUS_1993_S2653028/d06-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][2212 ] = ["/ARGUS_1993_S2653028/d04-x01-y01","/ARGUS_1993_S2653028/d05-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][113 ] = ["/ARGUS_1993_S2789213/d12-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][4122 ] = ["/BABAR_2007_S6895344/d03-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][4132 ] = ["/BABAR_2005_S6181155/d01-x01-y01","/BABAR_2005_S6181155/d02-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][323 ] = ["/ARGUS_1993_S2789213/d06-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][313 ] = ["/ARGUS_1993_S2789213/d09-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][443 ] = ["/BABAR_2003_I593379/d06-x01-y01","/BABAR_2003_I593379/d10-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][20443 ] = ["/BABAR_2003_I593379/d07-x01-y01"]
analyses["HadronDecays"][300553]["Spectrum"][445 ] = ["/BABAR_2003_I593379/d07-x01-y02"]
analyses["HadronDecays"][300553]["Spectrum"][100443] = ["/BABAR_2003_I593379/d08-x01-y01"]
#
analyses["HadronDecays"][3312] = { "Modes" : { "$\\Xi^-\\to\\Lambda^0\\pi^-$" : {} } }
analyses["HadronDecays"][3312]["Modes"]["$\\Xi^-\\to\\Lambda^0\\pi^-$"]["data"] = ["/E756_2000_I530367/d01-x01-y01","/E756_2000_I530367/d01-x01-y02"]
analyses["HadronDecays"][3312]["Modes"]["$\\Xi^-\\to\\Lambda^0\\pi^-$"]["MC" ] = ["/E756_2000_I530367/cthetaP","/E756_2000_I530367/cthetaM"]
analyses["HadronDecays"][3322] = { "Modes" : { "$\\Xi^0\\to\\Lambda^0\\pi^0$" : {}, "$\\Xi^0\\to\\Sigma^0\\gamma$" : {},
"$\\Xi^0\\to\\Lambda^0\\gamma$" : {} } }
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Lambda^0\\pi^0$"]["data"] = ["/NA48_2010_I868871/d01-x01-y01"]
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Lambda^0\\pi^0$"]["MC" ] = ["/NA48_2010_I868871/ctheta_pi0"]
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Lambda^0\\gamma$"]["data"] = ["/NA48_2010_I868871/d02-x01-y01"]
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Lambda^0\\gamma$"]["MC" ] = ["/NA48_2010_I868871/ctheta_gamma"]
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Sigma^0\\gamma$"]["data"] = ["/NA48_2010_I868871/d03-x01-y01"]
analyses["HadronDecays"][3322]["Modes"]["$\\Xi^0\\to\\Sigma^0\\gamma$"]["MC" ] = ["/NA48_2010_I868871/ctheta_Sigma_0" ,"/NA48_2010_I868871/ctheta_Sigma_1" ,
"/NA48_2010_I868871/ctheta_Sigma_2" ,"/NA48_2010_I868871/ctheta_Sigma_3" ,
"/NA48_2010_I868871/ctheta_Sigma_4" ,"/NA48_2010_I868871/ctheta_Sigma_5" ,
"/NA48_2010_I868871/ctheta_Sigma_6" ,"/NA48_2010_I868871/ctheta_Sigma_7" ,
"/NA48_2010_I868871/ctheta_Sigma_8" ,"/NA48_2010_I868871/ctheta_Sigma_9" ,
"/NA48_2010_I868871/ctheta_Sigma_10","/NA48_2010_I868871/ctheta_Sigma_11",
"/NA48_2010_I868871/ctheta_Sigma_12","/NA48_2010_I868871/ctheta_Sigma_13",
"/NA48_2010_I868871/ctheta_Sigma_14","/NA48_2010_I868871/ctheta_Sigma_15",
"/NA48_2010_I868871/ctheta_Sigma_16","/NA48_2010_I868871/ctheta_Sigma_17",
"/NA48_2010_I868871/ctheta_Sigma_18","/NA48_2010_I868871/ctheta_Sigma_19"]
analyses["HadronDecays"][3334] = { "Modes" : { "$\\Omega^-\\to\\Lambda^0K^-$" : {} } }
analyses["HadronDecays"][3334]["Modes"]["$\\Omega^-\\to\\Lambda^0K^-$"]["data"] = ["/HyperCP_2005_I677384/d01-x01-y01","/HyperCP_2005_I677384/d01-x01-y02",
"/HyperCP_2005_I677384/d01-x01-y03"]
analyses["HadronDecays"][3334]["Modes"]["$\\Omega^-\\to\\Lambda^0K^-$"]["MC" ] = ["/HyperCP_2005_I677384/cthetaM","/HyperCP_2005_I677384/cthetaP",
"/HyperCP_2005_I677384/cthetaAll"]
analyses["HadronDecays"][4132] = { "Modes" : { "$\\Xi^0_c\\to\\Xi^-\\pi^+$" : {} } }
analyses["HadronDecays"][4132]["Modes"]["$\\Xi^0_c\\to\\Xi^-\\pi^+$"]["data"] = ["/CLEO_2000_I537236/d01-x01-y01"]
analyses["HadronDecays"][4132]["Modes"]["$\\Xi^0_c\\to\\Xi^-\\pi^+$"]["MC" ] = ["/CLEO_2000_I537236/ctheta"]
analyses["HadronDecays"][4122] = { "Modes" : { "$\\Lambda^+_c\\to\\Lambda^0\\pi^+$" : {} } }
analyses["HadronDecays"][4122]["Modes"]["$\\Lambda^+_c\\to\\Lambda^0\\pi^+$"]["data"] = ["/FOCUS_2006_I693639/d01-x01-y01"]
analyses["HadronDecays"][4122]["Modes"]["$\\Lambda^+_c\\to\\Lambda^0\\pi^+$"]["MC" ] = ["/FOCUS_2006_I693639/ctheta"]
# charged multiplicity (total)
analyses["Charged"]["TotalChargedMult"][0][12.0 ] = ["/JADE_1983_I190818/d01-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][14.0 ] = ["/TASSO_1989_I277658/d02-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][21.65] = ["/PLUTO_1980_I154270/d01-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][22.0 ] = ["/TASSO_1980_I143691/d01-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][29.0 ] = ["/TPC_1987_I235694/d05-x01-y04","/HRS_1986_I18502/d03-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][50.0 ] = ["/AMY_1990_I295160/d02-x01-y01"]
analyses["Charged"]["TotalChargedMult"][0][55.7 ] = ["/AMY_1990_I295160/d02-x02-y01"]
analyses["Charged"]["TotalChargedMult"][0][91.2 ] = ["/ALEPH_1991_S2435284/d02-x01-y01","/OPAL_1992_I321190/d05-x01-y01",
"/DELPHI_1991_I301657/d04-x01-y01","/ALEPH_2004_S5765862/d01-x01-y01",
"/DELPHI_1996_S3430090/d35-x01-y01","/DELPHI_1998_I473409/d01-x01-y01",
"/OPAL_1998_S3780481/d09-x01-y04","/ALEPH_1996_S3486095/d19-x01-y01"]
# light quark events
analyses["Charged"]["TotalChargedMult"][1][29.0 ] = ["/TPC_1987_I235694/d04-x01-y04"]
analyses["Charged"]["TotalChargedMult"][1][91.2 ] = ["/OPAL_2002_S5361494/d01-x01-y03","/OPAL_1998_S3780481/d09-x01-y01",
"/DELPHI_1998_I473409/d03-x01-y01","/SLD_2004_S5693039/d08-x02-y01",
"/SLD_1996_S3398250/d03-x01-y01"]
analyses["Charged"]["TotalChargedMult"][1 ][195.0] = ["/DELPHI_2000_S4328825/d01-x01-y03"]
# charm events
analyses["Charged"]["TotalChargedMult"][4][29.0 ] = ["/TPC_1987_I235694/d03-x01-y04"]
analyses["Charged"]["TotalChargedMult"][4][91.2 ] = ["/OPAL_2002_S5361494/d01-x01-y02","/OPAL_1998_S3780481/d09-x01-y02",
"/SLD_2004_S5693039/d08-x02-y02","/SLD_1996_S3398250/d02-x01-y01"]
analyses["Charged"]["TotalChargedMult"][4 ][195.0] = ["/DELPHI_2000_S4328825/d01-x01-y02"]
# bottom events
analyses["Charged"]["TotalChargedMult"][5][29.0 ] = ["/TPC_1987_I235694/d02-x01-y04"]
analyses["Charged"]["TotalChargedMult"][5][91.2 ] = ["/OPAL_2002_S5361494/d01-x01-y01","/OPAL_1998_S3780481/d09-x01-y03",
"/DELPHI_1998_I473409/d02-x01-y01","/SLD_2004_S5693039/d08-x02-y03",
"/SLD_1996_S3398250/d01-x01-y01"]
analyses["Charged"]["TotalChargedMult"][5 ][195.0] = ["/DELPHI_2000_S4328825/d01-x01-y01"]
# difference charm-light
analyses["Charged"]["TotalChargedMult"][41][91.2 ] = ["/SLD_2004_S5693039/d08-x03-y02","/SLD_1996_S3398250/d04-x01-y01"]
# difference bottom-light
analyses["Charged"]["TotalChargedMult"][51][91.2 ] = ["/OPAL_2002_S5361494/d01-x01-y04","/SLD_2004_S5693039/d08-x03-y03",
"/SLD_1996_S3398250/d05-x01-y01"]
analyses["Charged"]["TotalChargedMult"][51][195.0] = ["/DELPHI_2000_S4328825/d01-x01-y04"]
# with cuts
analyses["Charged"]["TotalChargedMult"]["C"][91.2] = ["\ALEPH_1996_S3486095/d20-x01-y01","\ALEPH_1996_S3486095/d21-x01-y01",
"\ALEPH_1996_S3486095/d22-x01-y01","\ALEPH_1996_S3486095/d23-x01-y01"]
# charged multiplicity (dist)
analyses["Charged"]["DistChargedMult"][0][10.47] = ["/ARGUS_1992_I319102/d02-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][14.0] = ["/TASSO_1989_I277658/d05-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][22.0] = ["/TASSO_1989_I277658/d05-x01-y02"]
analyses["Charged"]["DistChargedMult"][0][29.0] = ["/HRS_1986_I18502/d01-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][34.8] = ["/TASSO_1989_I277658/d05-x01-y03"]
analyses["Charged"]["DistChargedMult"][0][35.0] = ["/TASSO_1988_I263859/d06-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][43.6] = ["/TASSO_1989_I277658/d05-x01-y04"]
analyses["Charged"]["DistChargedMult"][0][50.0] = ["/AMY_1990_I295160/d01-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][52.0] = ["/AMY_1990_I295160/d01-x01-y02"]
analyses["Charged"]["DistChargedMult"][0][55.0] = ["/AMY_1990_I295160/d01-x01-y03"]
analyses["Charged"]["DistChargedMult"][0][56.0] = ["/AMY_1990_I295160/d01-x01-y04"]
analyses["Charged"]["DistChargedMult"][0][57.0] = ["/AMY_1990_I295160/d01-x01-y05"]
analyses["Charged"]["DistChargedMult"][0][60.0] = ["/AMY_1990_I295160/d01-x01-y06"]
analyses["Charged"]["DistChargedMult"][0][60.8] = ["/AMY_1990_I295160/d01-x01-y07"]
analyses["Charged"]["DistChargedMult"][0][61.4] = ["/AMY_1990_I295160/d01-x01-y08"]
analyses["Charged"]["DistChargedMult"][0][55.7] = ["/AMY_1990_I295160/d01-x01-y09"]
analyses["Charged"]["DistChargedMult"][0][91.2] = ["/ALEPH_1991_S2435284/d01-x01-y01","/OPAL_1992_I321190/d01-x01-y01",
"/DELPHI_1991_I301657/d02-x01-y01","/L3_2004_I652683/d59-x01-y01",
"/ALEPH_1996_S3486095/d18-x01-y01"]
analyses["Charged"]["DistChargedMult"][2][91.2] = ["/L3_2004_I652683/d59-x01-y02"]
analyses["Charged"]["DistChargedMult"][5][91.2] = ["/L3_2004_I652683/d59-x01-y03"]
analyses["Charged"]["DistChargedMult"][0][130.1]=["/L3_2004_I652683/d60-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][136.3]=["/L3_2004_I652683/d60-x01-y02"]
analyses["Charged"]["DistChargedMult"][0][161.3]=["/L3_2004_I652683/d60-x01-y03"]
analyses["Charged"]["DistChargedMult"][0][172.3]=["/L3_2004_I652683/d61-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][182.8]=["/L3_2004_I652683/d61-x01-y02"]
analyses["Charged"]["DistChargedMult"][0][188.6]=["/L3_2004_I652683/d61-x01-y03"]
analyses["Charged"]["DistChargedMult"][0][194.4]=["/L3_2004_I652683/d62-x01-y01"]
analyses["Charged"]["DistChargedMult"][0][200.2]=["/L3_2004_I652683/d62-x01-y02"]
analyses["Charged"]["DistChargedMult"][0][206.2]=["/L3_2004_I652683/d62-x01-y03"]
analyses["Charged"]["DistChargedMult"]["C"][91.2]=["/DELPHI_1991_I324035/d01-x01-y01","/DELPHI_1991_I324035/d02-x01-y01",
"/DELPHI_1991_I324035/d03-x01-y01","/DELPHI_1991_I324035/d04-x01-y01",
"/DELPHI_1991_I324035/d05-x01-y01","/DELPHI_1991_I324035/d06-x01-y01",
"/DELPHI_1991_I324035/d07-x01-y01","/DELPHI_1991_I324035/d08-x01-y01",
"/DELPHI_1991_I324035/d09-x01-y01","/DELPHI_1991_I324035/d10-x01-y01",
"/DELPHI_1991_I324035/d11-x01-y01","/DELPHI_1991_I324035/d12-x01-y01",
"/DELPHI_1991_I324035/d13-x01-y01",
"/DELPHI_1992_I334948/d01-x01-y01","/DELPHI_1992_I334948/d01-x01-y02",
"/DELPHI_1992_I334948/d01-x01-y03","/DELPHI_1992_I334948/d02-x01-y01",
"/DELPHI_1992_I334948/d02-x01-y02","/DELPHI_1992_I334948/d02-x01-y03",
"/DELPHI_1992_I334948/d03-x01-y01","/DELPHI_1992_I334948/d03-x01-y02",
"/DELPHI_1992_I334948/d03-x01-y03",]
analyses["Charged"]["DistChargedMult"][21][ 5.25] = ["/OPAL_2004_I631361/d01-x01-y01"]
analyses["Charged"]["DistChargedMult"][21][ 5.98] = ["/OPAL_2004_I631361/d01-x01-y02"]
analyses["Charged"]["DistChargedMult"][21][ 6.98] = ["/OPAL_2004_I631361/d01-x01-y03"]
analyses["Charged"]["DistChargedMult"][21][ 8.43] = ["/OPAL_2004_I631361/d02-x01-y01"]
analyses["Charged"]["DistChargedMult"][21][10.92] = ["/OPAL_2004_I631361/d02-x01-y02"]
analyses["Charged"]["DistChargedMult"][21][14.24] = ["/OPAL_2004_I631361/d03-x01-y01"]
analyses["Charged"]["DistChargedMult"][21][17.72] = ["/OPAL_2004_I631361/d03-x01-y02"]
# charged particle spectra
# xi
analyses["Charged"]["ChargedSpectrum"][0]["xi"][2.2 ] = ["/BESII_2004_I622224/d01-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][2.6 ] = ["/BESII_2004_I622224/d02-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][3.0 ] = ["/BESII_2004_I622224/d03-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][3.2 ] = ["/BESII_2004_I622224/d04-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][4.6 ] = ["/BESII_2004_I622224/d05-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][4.8 ] = ["/BESII_2004_I622224/d06-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][12.0 ] = ["/TASSO_1980_I153511/d05-x01-y01","/TASSO_1982_I177174/d02-x01-y01",
"/TASSO_1982_I177174/d03-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][58.0 ] = ["/TOPAZ_1995_I381900/d01-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][91.2 ] = ["/ALEPH_1996_S3486095/d17-x01-y01","/DELPHI_1996_S3430090/d08-x01-y01",
"/L3_2004_I652683/d65-x01-y01","/OPAL_1998_S3780481/d08-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][130.1] = ["/L3_2004_I652683/d66-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][133.0] = ["/ALEPH_2004_S5765862/d11-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][136.3] = ["/L3_2004_I652683/d66-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][161.0] = ["/ALEPH_2004_S5765862/d12-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][161.3] = ["/L3_2004_I652683/d66-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][172.0] = ["/ALEPH_2004_S5765862/d13-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][172.3] = ["/L3_2004_I652683/d67-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][182.8] = ["/L3_2004_I652683/d67-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][183.0] = ["/DELPHI_2003_I620250/d32-x01-y01","/ALEPH_2004_S5765862/d14-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][188.6] = ["/L3_2004_I652683/d67-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][189.0] = ["/ALEPH_2004_S5765862/d15-x01-y01","/DELPHI_2003_I620250/d32-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][192.0] = ["/DELPHI_2003_I620250/d32-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][194.4] = ["/L3_2004_I652683/d68-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][200.2] = ["/L3_2004_I652683/d68-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][206.2] = ["/L3_2004_I652683/d68-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][196.0] = ["/DELPHI_2003_I620250/d32-x01-y04","/ALEPH_2004_S5765862/d16-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][200.0] = ["/DELPHI_2003_I620250/d33-x01-y01","/ALEPH_2004_S5765862/d17-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][200.5] = ["/OPAL_2003_I595335/d05-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][202.0] = ["/DELPHI_2003_I620250/d33-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][205.0] = ["/DELPHI_2003_I620250/d33-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][206.0] = ["/ALEPH_2004_S5765862/d18-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["xi"][207.0] = ["/DELPHI_2003_I620250/d33-x01-y04"]
# x
analyses["Charged"]["ChargedSpectrum"][0]["x" ][13.0 ] = ["/TASSO_1980_I143691/d05-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][14.0 ] = ["/TASSO_1982_I177174/d01-x01-y01","/TASSO_1982_I177174/d02-x01-y02",
"/TASSO_1982_I177174/d03-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][19.5 ] = ["/TASSO_1980_I143691/d06-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][22.0 ] = ["/TASSO_1982_I177174/d01-x01-y02","/TASSO_1982_I177174/d02-x01-y03",
"/TASSO_1982_I177174/d03-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][25.0 ] = ["/TASSO_1982_I177174/d02-x01-y04","/TASSO_1982_I177174/d03-x01-y04"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][29.0 ] = ["/TPC_1988_I262143/d01-x01-y04" ,"/HRS_1985_I201482/d10-x01-y01",
"/HRS_1985_I201482/d12-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][30.0 ] = ["/TASSO_1982_I177174/d02-x01-y05","/TASSO_1982_I177174/d03-x01-y05",
"/TASSO_1980_I143691/d07-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][30.8 ] = ["/TASSO_1980_I153511/d06-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][33.0 ] = ["/TASSO_1982_I177174/d01-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][34.0 ] = ["/TASSO_1982_I177174/d02-x01-y06","/TASSO_1982_I177174/d03-x01-y06"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][35.0 ] = ["/TASSO_1982_I177174/d02-x01-y07","/TASSO_1982_I177174/d03-x01-y07",
"/TASSO_1988_I263859/d10-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][55.2 ] = ["/AMY_1990_I283337/d02-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][91.2 ] = ["/DELPHI_1998_I473409/d16-x01-y01","/DELPHI_1998_I473409/d17-x01-y01",
"/ALEPH_1996_S3486095/d09-x01-y01","/OPAL_1998_S3780481/d04-x01-y01",
"/SLD_2004_S5693039/d01-x01-y01","/SLD_1999_S3743934/d04-x01-y01",
"/DELPHI_1996_S3430090/d07-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][133.0] = ["/ALEPH_2004_S5765862/d02-x01-y01","/ALEPH_2004_S5765862/d19-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][161.0] = ["/ALEPH_2004_S5765862/d03-x01-y01","/ALEPH_2004_S5765862/d20-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][172.0] = ["/ALEPH_2004_S5765862/d04-x01-y01","/ALEPH_2004_S5765862/d21-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][183.0] = ["/ALEPH_2004_S5765862/d05-x01-y01","/ALEPH_2004_S5765862/d22-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][189.0] = ["/ALEPH_2004_S5765862/d06-x01-y01","/ALEPH_2004_S5765862/d23-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][196.0] = ["/ALEPH_2004_S5765862/d07-x01-y01","/ALEPH_2004_S5765862/d24-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][200.0] = ["/ALEPH_2004_S5765862/d08-x01-y01","/ALEPH_2004_S5765862/d25-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][200.5] = ["/OPAL_2003_I595335/d04-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][0]["x" ][206.0] = ["/ALEPH_2004_S5765862/d09-x01-y01","/ALEPH_2004_S5765862/d26-x01-y01"]
# with cuts
analyses["Charged"]["ChargedSpectrum"]["C"]["x" ][29.0 ] = ["/HRS_1985_I201482/d11-x01-y01","/HRS_1985_I201482/d13-x01-y01",
"/HRS_1985_I201482/d14-x01-y01","/HRS_1985_I201482/d15-x01-y01"]
# flavour separated
analyses["Charged"]["ChargedSpectrum"][1]["x" ][91.2] = ["/DELPHI_1998_I473409/d32-x01-y01","/DELPHI_1998_I473409/d33-x01-y01",
"/DELPHI_1997_I428178/d01-x01-y03","/OPAL_1998_S3780481/d01-x01-y01",
"/SLD_2004_S5693039/d08-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][1]["xi"][91.2] = ["/OPAL_1998_S3780481/d05-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][13.0 ] = ["/OPAL_2004_I648738/d06-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][28.0 ] = ["/OPAL_2004_I648738/d07-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][49.0 ] = ["/OPAL_2004_I648738/d08-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][100.0] = ["/OPAL_2004_I648738/d09-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][91.2 ] = ["/OPAL_2004_I648738/d10-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["x" ][196.0] = ["/OPAL_2004_I648738/d11-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][2]["xi"][91.2 ] = ["/L3_2004_I652683/d65-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][4]["x" ][91.2 ] = ["/DELPHI_1997_I428178/d01-x01-y02","/OPAL_1998_S3780481/d02-x01-y01",
"/SLD_2004_S5693039/d08-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][4]["xi"][91.2 ] = ["/OPAL_1998_S3780481/d06-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][13.0 ] = ["/OPAL_2004_I648738/d06-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][28.0 ] = ["/OPAL_2004_I648738/d07-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][49.0 ] = ["/OPAL_2004_I648738/d08-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][100.0] = ["/OPAL_2004_I648738/d09-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][91.2 ] = ["/DELPHI_1998_I473409/d24-x01-y01","/DELPHI_1998_I473409/d25-x01-y01",
"/DELPHI_1997_I428178/d01-x01-y01","/OPAL_1998_S3780481/d03-x01-y01",
"/SLD_2004_S5693039/d08-x01-y03","/OPAL_2004_I648738/d10-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][5]["xi"][91.2 ] = ["/OPAL_1998_S3780481/d07-x01-y01","/L3_2004_I652683/d65-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][5]["x" ][196.0] = ["/OPAL_2004_I648738/d11-x01-y02"]
# gluons
analyses["Charged"]["ChargedSpectrum"][21]["x"][ 6.5 ] = ["/OPAL_2004_I648738/d06-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][21]["x"][14.0 ] = ["/OPAL_2004_I648738/d07-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][21]["x"][14.24] = ["/OPAL_2004_I631361/d05-x01-y01"]
analyses["Charged"]["ChargedSpectrum"][21]["x"][17.72] = ["/OPAL_2004_I631361/d05-x01-y02"]
analyses["Charged"]["ChargedSpectrum"][21]["x"][24.5 ] = ["/OPAL_2004_I648738/d08-x01-y03"]
analyses["Charged"]["ChargedSpectrum"][21]["x"][50.0 ] = ["/OPAL_2004_I648738/d09-x01-y03"]
# rapidity w.r.t thrust
analyses["Charged"]["ChargedRapidityThrust"][13.0 ] = ["/TASSO_1980_I143691/d02-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][19.5 ] = ["/TASSO_1980_I143691/d03-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][29.0 ] = ["/HRS_1985_I201482/d19-x01-y01","/HRS_1985_I201482/d20-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][30.0 ] = ["/TASSO_1980_I143691/d04-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][55.2 ] = ["/AMY_1990_I283337/d01-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][91.2 ] = ["/DELPHI_1996_S3430090/d05-x01-y01","/ALEPH_1996_S3486095/d10-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][133.0] = ["/ALEPH_2004_S5765862/d36-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][161.0] = ["/ALEPH_2004_S5765862/d37-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][172.0] = ["/ALEPH_2004_S5765862/d38-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][183.0] = ["/DELPHI_2003_I620250/d30-x01-y01","/ALEPH_2004_S5765862/d39-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][189.0] = ["/DELPHI_2003_I620250/d30-x01-y02","/ALEPH_2004_S5765862/d40-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][192.0] = ["/DELPHI_2003_I620250/d30-x01-y03"]
analyses["Charged"]["ChargedRapidityThrust"][196.0] = ["/DELPHI_2003_I620250/d30-x01-y04","/ALEPH_2004_S5765862/d41-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][200.0] = ["/DELPHI_2003_I620250/d31-x01-y01","/ALEPH_2004_S5765862/d42-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][200.5] = ["/OPAL_2003_I595335/d03-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][202.0] = ["/DELPHI_2003_I620250/d31-x01-y02"]
analyses["Charged"]["ChargedRapidityThrust"][205.0] = ["/DELPHI_2003_I620250/d31-x01-y03"]
analyses["Charged"]["ChargedRapidityThrust"][206.0] = ["/ALEPH_2004_S5765862/d43-x01-y01"]
analyses["Charged"]["ChargedRapidityThrust"][207.0] = ["/DELPHI_2003_I620250/d31-x01-y04"]
# pt in w.r.t thrust
analyses["Charged"]["ChargedpTInThrust" ][91.2 ] = ["/DELPHI_1996_S3430090/d01-x01-y01","/ALEPH_1996_S3486095/d11-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][133.0] = ["/ALEPH_2004_S5765862/d27-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][161.0] = ["/ALEPH_2004_S5765862/d28-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][172.0] = ["/ALEPH_2004_S5765862/d29-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][183.0] = ["/DELPHI_2003_I620250/d34-x01-y01","/ALEPH_2004_S5765862/d30-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][189.0] = ["/DELPHI_2003_I620250/d34-x01-y02","/ALEPH_2004_S5765862/d31-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][192.0] = ["/DELPHI_2003_I620250/d34-x01-y03"]
analyses["Charged"]["ChargedpTInThrust" ][196.0] = ["/DELPHI_2003_I620250/d34-x01-y04","/ALEPH_2004_S5765862/d32-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][200.0] = ["/DELPHI_2003_I620250/d35-x01-y01","/ALEPH_2004_S5765862/d33-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][200.5] = ["/OPAL_2003_I595335/d01-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][202.0] = ["/DELPHI_2003_I620250/d35-x01-y02"]
analyses["Charged"]["ChargedpTInThrust" ][205.0] = ["/DELPHI_2003_I620250/d35-x01-y03"]
analyses["Charged"]["ChargedpTInThrust" ][206.0] = ["/ALEPH_2004_S5765862/d34-x01-y01"]
analyses["Charged"]["ChargedpTInThrust" ][207.0] = ["/DELPHI_2003_I620250/d35-x01-y04"]
# pt out thrust
analyses["Charged"]["ChargedpTOutThrust"][91.2 ] = ["/DELPHI_1996_S3430090/d02-x01-y01","/ALEPH_1996_S3486095/d12-x01-y01"]
analyses["Charged"]["ChargedpTOutThrust"][183.0] = ["/DELPHI_2003_I620250/d36-x01-y01"]
analyses["Charged"]["ChargedpTOutThrust"][189.0] = ["/DELPHI_2003_I620250/d36-x01-y02"]
analyses["Charged"]["ChargedpTOutThrust"][192.0] = ["/DELPHI_2003_I620250/d36-x01-y03"]
analyses["Charged"]["ChargedpTOutThrust"][196.0] = ["/DELPHI_2003_I620250/d36-x01-y04"]
analyses["Charged"]["ChargedpTOutThrust"][200.0] = ["/DELPHI_2003_I620250/d37-x01-y01"]
analyses["Charged"]["ChargedpTOutThrust"][200.5] = ["/OPAL_2003_I595335/d02-x01-y01"]
analyses["Charged"]["ChargedpTOutThrust"][202.0] = ["/DELPHI_2003_I620250/d37-x01-y02"]
analyses["Charged"]["ChargedpTOutThrust"][205.0] = ["/DELPHI_2003_I620250/d37-x01-y03"]
analyses["Charged"]["ChargedpTOutThrust"][206.0] = ["/ALEPH_2004_S5765862/d35-x01-y01"]
analyses["Charged"]["ChargedpTOutThrust"][207.0] = ["/DELPHI_2003_I620250/d37-x01-y04"]
# pT
analyses["Charged"]["ChargedpTThrust" ][29.0] = ["/HRS_1985_I201482/d22-x01-y01","/HRS_1985_I201482/d23-x01-y01"]
analyses["Charged"]["ChargedpTvsxpThrust" ][91.2] = ["/DELPHI_1996_S3430090/d10-x01-y01"]
analyses["Charged"]["ChargedpTOutvsxpThrust"][91.2] = ["/DELPHI_1996_S3430090/d09-x01-y01"]
# averages
analyses["Charged"]["ChargedAveragepTThrust" ][20.] = ["/PLUTO_1983_I191161/d01-x01-y01"]
analyses["Charged"]["ChargedAveragepT2Thrust" ][20.] = ["/PLUTO_1983_I191161/d01-x01-y02"]
analyses["Charged"]["ChargedSumpTThrust" ][20.] = ["/PLUTO_1983_I191161/d01-x01-y03"]
analyses["Charged"]["ChargedSumpT2Thrust" ][20.] = ["/PLUTO_1983_I191161/d01-x01-y04"]
analyses["Charged"]["ChargedAveragepTSphericity" ][20.] = ["/PLUTO_1983_I191161/d02-x01-y01"]
analyses["Charged"]["ChargedAveragepT2Sphericity"][20.] = ["/PLUTO_1983_I191161/d02-x01-y02"]
analyses["Charged"]["ChargedSumpTSphericity" ][20.] = ["/PLUTO_1983_I191161/d02-x01-y03"]
analyses["Charged"]["ChargedSumpT2Sphericity" ][20.] = ["/PLUTO_1983_I191161/d02-x01-y04"]
# xF
analyses["Charged"]["ChargedxFThrust"][29.0] = ["/HRS_1985_I201482/d16-x01-y01","/HRS_1985_I201482/d17-x01-y01"]
# rapidity sphericity
analyses["Charged"]["ChargedRapiditySphericity"][35.0 ] = ["/TASSO_1988_I263859/d11-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][91.2 ] = ["/DELPHI_1996_S3430090/d06-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][133.0] = ["/ALEPH_2004_S5765862/d44-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][161.0] = ["/ALEPH_2004_S5765862/d45-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][172.0] = ["/ALEPH_2004_S5765862/d46-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][183.0] = ["/ALEPH_2004_S5765862/d47-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][189.0] = ["/ALEPH_2004_S5765862/d48-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][196.0] = ["/ALEPH_2004_S5765862/d49-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][200.0] = ["/ALEPH_2004_S5765862/d50-x01-y01"]
analyses["Charged"]["ChargedRapiditySphericity"][206.0] = ["/ALEPH_2004_S5765862/d51-x01-y01"]
# pt in sphericity
analyses["Charged"]["ChargedpTInSphericity" ][35.0 ] = ["/TASSO_1988_I263859/d07-x01-y01"]
analyses["Charged"]["ChargedpTInSphericity" ][55.2 ] = ["/AMY_1990_I283337/d06-x01-y01"]
analyses["Charged"]["ChargedpTInSphericity" ][91.2 ] = ["/DELPHI_1996_S3430090/d03-x01-y01"]
# pt out sphericity
analyses["Charged"]["ChargedpTOutSphericity"][35.0 ] = ["/TASSO_1988_I263859/d08-x01-y01"]
analyses["Charged"]["ChargedpTOutSphericity"][55.2 ] = ["/AMY_1990_I283337/d07-x01-y01"]
analyses["Charged"]["ChargedpTOutSphericity"][91.2 ] = ["/DELPHI_1996_S3430090/d04-x01-y01"]
# others
analyses["Charged"]["ChargedpLSphericity" ][55.2] = ["/AMY_1990_I283337/d03-x01-y01" ]
analyses["Charged"]["ChargedpTSphericity" ][55.2] = ["/AMY_1990_I283337/d04-x01-y01" ]
analyses["Charged"]["ChargedpTSphericity" ][35.0] = ["/TASSO_1988_I263859/d09-x01-y01"]
analyses["Charged"]["ChargedpT2Sphericity"][55.2] = ["/AMY_1990_I283337/d05-x01-y01" ]
analyses["Charged"]["ChargedFlowSphericity"][55.2] = ["/AMY_1990_I283337/d10-x01-y01" ]
analyses["Charged"]["ChargedEnergyFlowSphericity"][55.2] = ["/AMY_1990_I283337/d11-x01-y01" ]
analyses["Charged"]["ChargedAveragepT2inSphericity" ][29.0] = ["/HRS_1985_I201482/d24-x01-y01"]
analyses["Charged"]["ChargedAveragepT2inSphericity" ][35.0] = ["/TASSO_1988_I263859/d04-x01-y01"]
analyses["Charged"]["ChargedAveragepT2inSphericity" ][55.2] = ["/AMY_1990_I283337/d08-x01-y01"]
analyses["Charged"]["ChargedAveragepT2outSphericity"][29.0] = ["/HRS_1985_I201482/d25-x01-y01"]
analyses["Charged"]["ChargedAveragepT2outSphericity"][35.0] = ["/TASSO_1988_I263859/d05-x01-y01"]
analyses["Charged"]["ChargedAveragepT2outSphericity"][55.2] = ["/AMY_1990_I283337/d09-x01-y01"]
# identified particle (flavour sep)
analyses["IdentifiedParticleFlavour"][111 ][5]["x"][91.2]=["/DELPHI_1996_I401100/d03-x01-y01","/SLD_2004_S5693039/d05-x01-y03"]
analyses["IdentifiedParticleFlavour"][211 ][5]["x"][91.2]=["/DELPHI_1998_I473409/d26-x01-y01","/DELPHI_1998_I473409/d27-x01-y01",
"/SLD_1999_S3743934/d10-x01-y03"]
analyses["IdentifiedParticleFlavour"][321 ][5]["x"][91.2]=["/DELPHI_1998_I473409/d28-x01-y01","/DELPHI_1998_I473409/d29-x01-y01",
"/SLD_2004_S5693039/d06-x01-y03","/SLD_1999_S3743934/d12-x01-y03"]
analyses["IdentifiedParticleFlavour"][2212][5]["x"][91.2]=["/DELPHI_1998_I473409/d30-x01-y01","/DELPHI_1998_I473409/d31-x01-y01",
"/SLD_2004_S5693039/d07-x01-y03","/SLD_1999_S3743934/d16-x01-y03"]
analyses["IdentifiedParticleFlavour"][211 ][4]["x"][91.2]=["/SLD_2004_S5693039/d05-x01-y02","/SLD_1999_S3743934/d10-x01-y02"]
analyses["IdentifiedParticleFlavour"][321 ][4]["x"][91.2]=["/SLD_2004_S5693039/d06-x01-y02","/SLD_1999_S3743934/d12-x01-y02"]
analyses["IdentifiedParticleFlavour"][2212][4]["x"][91.2]=["/SLD_2004_S5693039/d07-x01-y02","/SLD_1999_S3743934/d16-x01-y02"]
analyses["IdentifiedParticleFlavour"][211 ][1]["x"][91.2]=["/DELPHI_1998_I473409/d34-x01-y01","/DELPHI_1998_I473409/d35-x01-y01",
"/SLD_2004_S5693039/d05-x01-y01","/SLD_1999_S3743934/d10-x01-y01"]
analyses["IdentifiedParticleFlavour"][321 ][1]["x"][91.2]=["/DELPHI_1998_I473409/d36-x01-y01","/DELPHI_1998_I473409/d37-x01-y01",
"/SLD_2004_S5693039/d06-x01-y01","/SLD_1999_S3743934/d12-x01-y01"]
analyses["IdentifiedParticleFlavour"][2212][1]["x"][91.2]=["/DELPHI_1998_I473409/d38-x01-y01","/DELPHI_1998_I473409/d39-x01-y01",
"/SLD_2004_S5693039/d07-x01-y01","/SLD_1999_S3743934/d16-x01-y01"]
analyses["IdentifiedParticleFlavour"][413][5]["x"][91.2]=["/OPAL_1995_I382219/d04-x01-y01"]
analyses["IdentifiedParticleFlavour"][413][4]["x"][91.2]=["/OPAL_1995_I382219/d05-x01-y01"]
analyses["IdentifiedParticleFlavour"][313 ][1]["x"][91.2]=["/SLD_1999_S3743934/d14-x01-y01"]
analyses["IdentifiedParticleFlavour"][313 ][4]["x"][91.2]=["/SLD_1999_S3743934/d14-x01-y02"]
analyses["IdentifiedParticleFlavour"][313 ][5]["x"][91.2]=["/SLD_1999_S3743934/d14-x01-y03"]
analyses["IdentifiedParticleFlavour"][3122][1]["x"][91.2]=["/SLD_1999_S3743934/d18-x01-y01"]
analyses["IdentifiedParticleFlavour"][3122][4]["x"][91.2]=["/SLD_1999_S3743934/d18-x01-y02"]
analyses["IdentifiedParticleFlavour"][3122][5]["x"][91.2]=["/SLD_1999_S3743934/d18-x01-y03"]
analyses["IdentifiedParticleFlavour"][311 ][1]["x"][91.2]=["/SLD_1999_S3743934/d20-x01-y01"]
analyses["IdentifiedParticleFlavour"][311 ][4]["x"][91.2]=["/SLD_1999_S3743934/d20-x01-y02"]
analyses["IdentifiedParticleFlavour"][311 ][5]["x"][91.2]=["/SLD_1999_S3743934/d20-x01-y03"]
analyses["IdentifiedParticleFlavour"][333 ][1]["x"][91.2]=["/SLD_1999_S3743934/d22-x01-y01"]
analyses["IdentifiedParticleFlavour"][333 ][4]["x"][91.2]=["/SLD_1999_S3743934/d22-x01-y02"]
analyses["IdentifiedParticleFlavour"][333 ][5]["x"][91.2]=["/SLD_1999_S3743934/d22-x01-y03"]
analyses["IdentifiedParticleFlavour"][211 ][41]["x"][91.2]=["/SLD_1999_S3743934/d11-x01-y01"]
analyses["IdentifiedParticleFlavour"][211 ][51]["x"][91.2]=["/SLD_1999_S3743934/d11-x01-y02"]
analyses["IdentifiedParticleFlavour"][321 ][41]["x"][91.2]=["/SLD_1999_S3743934/d13-x01-y01"]
analyses["IdentifiedParticleFlavour"][321 ][51]["x"][91.2]=["/SLD_1999_S3743934/d13-x01-y02"]
analyses["IdentifiedParticleFlavour"][313 ][41]["x"][91.2]=["/SLD_1999_S3743934/d15-x01-y01"]
analyses["IdentifiedParticleFlavour"][313 ][51]["x"][91.2]=["/SLD_1999_S3743934/d15-x01-y02"]
analyses["IdentifiedParticleFlavour"][2212][41]["x"][91.2]=["/SLD_1999_S3743934/d17-x01-y01"]
analyses["IdentifiedParticleFlavour"][2212][51]["x"][91.2]=["/SLD_1999_S3743934/d17-x01-y02"]
analyses["IdentifiedParticleFlavour"][3122][41]["x"][91.2]=["/SLD_1999_S3743934/d19-x01-y01"]
analyses["IdentifiedParticleFlavour"][3122][51]["x"][91.2]=["/SLD_1999_S3743934/d19-x01-y02"]
analyses["IdentifiedParticleFlavour"][311 ][41]["x"][91.2]=["/SLD_1999_S3743934/d21-x01-y01"]
analyses["IdentifiedParticleFlavour"][311 ][51]["x"][91.2]=["/SLD_1999_S3743934/d21-x01-y02"]
analyses["IdentifiedParticleFlavour"][333 ][41]["x"][91.2]=["/SLD_1999_S3743934/d23-x01-y01"]
analyses["IdentifiedParticleFlavour"][333 ][51]["x"][91.2]=["/SLD_1999_S3743934/d23-x01-y02"]
analyses["IdentifiedParticleFlavour"][211][5]["Ratio"][91.2]=["/DELPHI_1998_I473409/d08-x01-y01"]
analyses["IdentifiedParticleFlavour"][211][1]["Ratio"][91.2]=["/DELPHI_1998_I473409/d12-x01-y01"]
analyses["IdentifiedParticleFlavour"][321][5]["Ratio"][91.2]=["/DELPHI_1998_I473409/d09-x01-y01"]
analyses["IdentifiedParticleFlavour"][321][1]["Ratio"][91.2]=["/DELPHI_1998_I473409/d13-x01-y01"]
analyses["IdentifiedParticleFlavour"][2212][5]["Ratio"][91.2]=["/DELPHI_1998_I473409/d10-x01-y01"]
analyses["IdentifiedParticleFlavour"][2212][1]["Ratio"][91.2]=["/DELPHI_1998_I473409/d14-x01-y01"]
analyses["IdentifiedParticleFlavour"]["321/2212"][5]["Ratio"][91.2]=["/DELPHI_1998_I473409/d11-x01-y01"]
analyses["IdentifiedParticleFlavour"]["321/2212"][1]["Ratio"][91.2]=["/DELPHI_1998_I473409/d15-x01-y01"]
analyses["IdentifiedParticleFlavour"][311][4]["Other"][29.0]=["/HRS_1990_I280958/d05-x01-y01"]
analyses["IdentifiedParticleFlavour"][311][1]["Other"][29.0]=["/HRS_1990_I280958/d06-x01-y01"]
analyses["MultiplicityFlavour"]["321/2212"][1][91.2] = ["/DELPHI_1998_I473409/d03-x01-y05"]
analyses["MultiplicityFlavour"]["321/2212"][5][91.2] = ["/DELPHI_1998_I473409/d02-x01-y05"]
analyses["MultiplicityFlavour"][211 ][41][91.2]=["/SLD_1999_S3743934/d25-x01-y01"]
analyses["MultiplicityFlavour"][211 ][51][91.2]=["/SLD_1999_S3743934/d25-x01-y02"]
analyses["MultiplicityFlavour"][321 ][41][91.2]=["/SLD_1999_S3743934/d25-x02-y01"]
analyses["MultiplicityFlavour"][321 ][51][91.2]=["/SLD_1999_S3743934/d25-x02-y02"]
analyses["MultiplicityFlavour"][311 ][41][91.2]=["/SLD_1999_S3743934/d25-x03-y01"]
analyses["MultiplicityFlavour"][311 ][51][91.2]=["/SLD_1999_S3743934/d25-x03-y02"]
analyses["MultiplicityFlavour"][313 ][41][91.2]=["/SLD_1999_S3743934/d25-x04-y01"]
analyses["MultiplicityFlavour"][313 ][51][91.2]=["/SLD_1999_S3743934/d25-x04-y02"]
analyses["MultiplicityFlavour"][333 ][41][91.2]=["/SLD_1999_S3743934/d25-x05-y01"]
analyses["MultiplicityFlavour"][333 ][51][91.2]=["/SLD_1999_S3743934/d25-x05-y02"]
analyses["MultiplicityFlavour"][2212][41][91.2]=["/SLD_1999_S3743934/d25-x06-y01"]
analyses["MultiplicityFlavour"][2212][51][91.2]=["/SLD_1999_S3743934/d25-x06-y02"]
analyses["MultiplicityFlavour"][3122][41][91.2]=["/SLD_1999_S3743934/d25-x07-y01"]
analyses["MultiplicityFlavour"][3122][51][91.2]=["/SLD_1999_S3743934/d25-x07-y02"]
analyses["MultiplicityFlavour"][211 ][1][91.2]=["/SLD_2004_S5693039/d05-x02-y01","/SLD_1999_S3743934/d24-x01-y02",
"/DELPHI_1998_I473409/d03-x01-y02"]
analyses["MultiplicityFlavour"][211 ][4][91.2]=["/SLD_2004_S5693039/d05-x02-y02","/SLD_1999_S3743934/d24-x01-y03"]
analyses["MultiplicityFlavour"][211 ][5][91.2]=["/SLD_2004_S5693039/d05-x02-y03","/SLD_1999_S3743934/d24-x01-y04",
"/DELPHI_1998_I473409/d02-x01-y02"]
analyses["MultiplicityFlavour"][321 ][1][91.2]=["/SLD_2004_S5693039/d06-x02-y01","/SLD_1999_S3743934/d24-x02-y02",
"/DELPHI_1998_I473409/d03-x01-y03"]
analyses["MultiplicityFlavour"][321 ][4][91.2]=["/SLD_2004_S5693039/d06-x02-y02","/SLD_1999_S3743934/d24-x02-y03"]
analyses["MultiplicityFlavour"][321 ][5][91.2]=["/SLD_2004_S5693039/d06-x02-y03","/SLD_1999_S3743934/d24-x02-y04",
"/DELPHI_1998_I473409/d02-x01-y03"]
analyses["MultiplicityFlavour"][311 ][1][91.2]=["/SLD_1999_S3743934/d24-x03-y02"]
analyses["MultiplicityFlavour"][311 ][4][91.2]=["/SLD_1999_S3743934/d24-x03-y03"]
analyses["MultiplicityFlavour"][311 ][5][91.2]=["/SLD_1999_S3743934/d24-x03-y04"]
analyses["MultiplicityFlavour"][313 ][1][91.2]=["/SLD_1999_S3743934/d24-x04-y02"]
analyses["MultiplicityFlavour"][313 ][4][91.2]=["/SLD_1999_S3743934/d24-x04-y03"]
analyses["MultiplicityFlavour"][313 ][5][91.2]=["/SLD_1999_S3743934/d24-x04-y04"]
analyses["MultiplicityFlavour"][333 ][1][91.2]=["/SLD_1999_S3743934/d24-x05-y02"]
analyses["MultiplicityFlavour"][333 ][4][91.2]=["/SLD_1999_S3743934/d24-x05-y03"]
analyses["MultiplicityFlavour"][333 ][5][91.2]=["/SLD_1999_S3743934/d24-x05-y04"]
analyses["MultiplicityFlavour"][2212][1][91.2]=["/SLD_2004_S5693039/d07-x02-y01","/SLD_1999_S3743934/d24-x06-y02",
"/DELPHI_1998_I473409/d03-x01-y04"]
analyses["MultiplicityFlavour"][2212][4][91.2]=["/SLD_2004_S5693039/d07-x02-y02","/SLD_1999_S3743934/d24-x06-y03"]
analyses["MultiplicityFlavour"][2212][5][91.2]=["/SLD_2004_S5693039/d07-x02-y03","/SLD_1999_S3743934/d24-x06-y04",
"/DELPHI_1998_I473409/d02-x01-y04"]
analyses["MultiplicityFlavour"][3122][1][91.2]=["/SLD_1999_S3743934/d24-x07-y02"]
analyses["MultiplicityFlavour"][3122][4][91.2]=["/SLD_1999_S3743934/d24-x07-y03"]
analyses["MultiplicityFlavour"][3122][5][91.2]=["/SLD_1999_S3743934/d24-x07-y04"]
# identified particle distributions
# photons
# x_E
analyses["IdentifiedParticle"][22 ]["x" ][14.0]=["/CELLO_1983_I191415/d01-x01-y01"]
analyses["IdentifiedParticle"][22 ]["x" ][22.0]=["/CELLO_1983_I191415/d02-x01-y01"]
analyses["IdentifiedParticle"][22 ]["x" ][29.0]=["/TPC_1985_I205868/d01-x01-y01" ]
analyses["IdentifiedParticle"][22 ]["x" ][34.0]=["/CELLO_1983_I191415/d03-x01-y01"]
analyses["IdentifiedParticle"][22 ]["x" ][35.0]=["/CELLO_1989_I276764/d02-x01-y01","/JADE_1990_I282847/d01-x01-y01"]
analyses["IdentifiedParticle"][22 ]["x" ][44.0]=["/JADE_1990_I282847/d02-x01-y01"]
analyses["IdentifiedParticle"][22 ]["x" ][91.2]=["/OPAL_1998_S3749908/d02-x01-y01"]
# xi
analyses["IdentifiedParticle"][22 ]["xi"][91.2]=["/ALEPH_1996_S3486095/d28-x01-y01","/OPAL_1998_S3749908/d03-x01-y01"]
# charged pions
# x
analyses["IdentifiedParticle"][211 ]["x" ][3.635] = ["/DASP_1979_I132045/d18-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][4.04 ] = ["/DASP_1979_I132045/d18-x01-y02"]
analyses["IdentifiedParticle"][211 ]["x" ][4.17 ] = ["/DASP_1979_I132045/d18-x01-y03"]
analyses["IdentifiedParticle"][211 ]["x" ][4.30 ] = ["/DASP_1979_I132045/d18-x01-y04"]
analyses["IdentifiedParticle"][211 ]["x" ][4.41 ] = ["/DASP_1979_I132045/d18-x01-y05"]
analyses["IdentifiedParticle"][211 ]["x" ][4.72 ] = ["/DASP_1979_I132045/d18-x01-y06"]
analyses["IdentifiedParticle"][211 ]["x" ][5.0 ] = ["/DASP_1979_I132045/d18-x01-y07"]
analyses["IdentifiedParticle"][211 ]["x" ][5.2 ] = ["/DASP_1979_I132045/d18-x01-y08"]
analyses["IdentifiedParticle"][211 ]["x" ][10.0 ] = ["/ARGUS_1989_I276860/d09-x01-y02"]
analyses["IdentifiedParticle"][211 ]["x" ][10.52] = ["/BELLE_2013_I1216515/d01-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][12.0 ] = ["/TASSO_1980_I153656/d02-x01-y02"]
analyses["IdentifiedParticle"][211 ]["x" ][14.0 ] = ["/TASSO_1983_I181470/d20-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][22.0 ] = ["/TASSO_1983_I181470/d22-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][29.0 ] = ["/TPC_1988_I262143/d01-x01-y01","/TPC_1988_I262143/d05-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][30.0 ] = ["/TASSO_1980_I153656/d05-x01-y02"]
analyses["IdentifiedParticle"][211 ]["x" ][34.0 ] = ["/TASSO_1989_I267755/d07-x01-y01","/TASSO_1983_I181470/d24-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][44.0 ] = ["/TASSO_1989_I267755/d10-x01-y01"]
analyses["IdentifiedParticle"][211 ]["x" ][91.2 ] = ["/ALEPH_1995_I382179/d01-x01-y01","/DELPHI_1998_I473409/d19-x01-y01",
"/ALEPH_1996_S3486095/d25-x01-y01","/SLD_2004_S5693039/d02-x01-y02",
"/SLD_1999_S3743934/d01-x01-y02"]
analyses["IdentifiedParticle"][211 ]["Other" ][91.2 ] = ["/SLD_1999_S3743934/d26-x01-y01","/SLD_1999_S3743934/d26-x01-y02",
"/SLD_1999_S3743934/d27-x01-y01","/SLD_2004_S5693039/d09-x01-y01",
"/SLD_2004_S5693039/d09-x01-y02","/SLD_2004_S5693039/d09-x01-y03",]
# p
analyses["IdentifiedParticle"][211 ]["p" ][3.635] = ["/DASP_1979_I132045/d01-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][4.04 ] = ["/DASP_1979_I132045/d01-x01-y02"]
analyses["IdentifiedParticle"][211 ]["p" ][4.17 ] = ["/DASP_1979_I132045/d01-x01-y03"]
analyses["IdentifiedParticle"][211 ]["p" ][4.30 ] = ["/DASP_1979_I132045/d01-x01-y04"]
analyses["IdentifiedParticle"][211 ]["p" ][4.41 ] = ["/DASP_1979_I132045/d01-x01-y05"]
analyses["IdentifiedParticle"][211 ]["p" ][4.72 ] = ["/DASP_1979_I132045/d01-x01-y06"]
analyses["IdentifiedParticle"][211 ]["p" ][5.0 ] = ["/DASP_1979_I132045/d01-x01-y07"]
analyses["IdentifiedParticle"][211 ]["p" ][5.2 ] = ["/DASP_1979_I132045/d01-x01-y08"]
analyses["IdentifiedParticle"][211 ]["p" ][10.0 ] = ["/ARGUS_1989_I276860/d05-x01-y02"]
analyses["IdentifiedParticle"][211 ]["p" ][10.54] = ["/BABAR_2013_I1238276/d01-x01-y01","/BABAR_2013_I1238276/d02-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][12.0 ] = ["/TASSO_1980_I153656/d02-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][14.0 ] = ["/TASSO_1983_I181470/d19-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][22.0 ] = ["/TASSO_1983_I181470/d25-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][30.0 ] = ["/TASSO_1980_I153656/d05-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][34.0 ] = ["/TASSO_1983_I181470/d13-x01-y01"]
analyses["IdentifiedParticle"][211 ]["p" ][91.2 ] = ["/DELPHI_1998_I473409/d18-x01-y01","/OPAL_1994_S2927284/d01-x01-y01"]
# xi
analyses["IdentifiedParticle"][211 ]["xi"][58.0 ] = ["/TOPAZ_1995_I381900/d02-x01-y01"]
# ratios
analyses["IdentifiedParticle"][211 ]["Ratio"][12.0 ] = ["/TASSO_1980_I153656/d08-x01-y01"]
analyses["IdentifiedParticle"][211 ]["Ratio"][29.0 ] = ["/TPC_1988_I262143/d06-x01-y01"]
analyses["IdentifiedParticle"][211 ]["Ratio"][30.0 ] = ["/TASSO_1980_I153656/d11-x01-y01"]
analyses["IdentifiedParticle"][211 ]["Ratio"][34.0 ] = ["/TASSO_1989_I267755/d01-x01-y01"]
analyses["IdentifiedParticle"][211 ]["Ratio"][44.0 ] = ["/TASSO_1989_I267755/d04-x01-y01"]
analyses["IdentifiedParticle"][211 ]["Ratio"][91.2 ] = ["/DELPHI_1998_I473409/d04-x01-y01","/SLD_1999_S3743934/d01-x01-y01"]
# neutral pions
# x
analyses["IdentifiedParticle"][111 ]["x" ][10.0]=["/ARGUS_1990_I278933/d03-x01-y01","/ARGUS_1990_I278933/d03-x01-y02"]
analyses["IdentifiedParticle"][111 ]["x" ][14.0]=["/TASSO_1982_I168232/d02-x03-y03","/CELLO_1983_I191415/d04-x01-y01"]
analyses["IdentifiedParticle"][111 ]["x" ][22.0]=["/CELLO_1983_I191415/d05-x01-y01"]
analyses["IdentifiedParticle"][111 ]["x" ][29.0]=["/TPC_1985_I205868/d02-x01-y01" ]
analyses["IdentifiedParticle"][111 ]["x" ][34.0]=["/TASSO_1982_I168232/d03-x03-y03","/TASSO_1986_I230950/d02-x01-y01",
"/CELLO_1983_I191415/d06-x01-y01"]
analyses["IdentifiedParticle"][111 ]["x" ][35.0]=["/CELLO_1989_I276764/d03-x01-y01","/CELLO_1989_I276764/d04-x01-y01",
"/JADE_1990_I282847/d03-x01-y01"]
analyses["IdentifiedParticle"][111 ]["x" ][44.0]=["/TASSO_1989_I267755/d13-x01-y01","/JADE_1990_I282847/d04-x01-y01"]
analyses["IdentifiedParticle"][111 ]["x" ][91.2]=["/DELPHI_1996_I401100/d01-x01-y01","/ALEPH_1996_S3486095/d29-x01-y01",
"/OPAL_1998_S3749908/d04-x01-y01",]
# p/E
analyses["IdentifiedParticle"][111 ]["p" ][14.0]=["/TASSO_1982_I168232/d02-x01-y01","/TASSO_1982_I168232/d02-x02-y02"]
analyses["IdentifiedParticle"][111 ]["p" ][34.0]=["/TASSO_1982_I168232/d03-x01-y01","/TASSO_1982_I168232/d03-x02-y02",
"/TASSO_1986_I230950/d01-x01-y01"]
# xi
analyses["IdentifiedParticle"][111 ]["xi"][91.2]=["/OPAL_1998_S3749908/d05-x01-y01"]
# eta
#x
analyses["IdentifiedParticle"][221 ]["x" ][10.0]=["/ARGUS_1990_I278933/d05-x01-y01","/ARGUS_1990_I278933/d05-x01-y02"]
analyses["IdentifiedParticle"][221 ]["x" ][29.0]=["/HRS_1988_I250824/d01-x01-y01"]
analyses["IdentifiedParticle"][221 ]["x" ][35.0]=["/CELLO_1989_I276764/d05-x01-y01" ,"/JADE_1990_I282847/d05-x01-y01"]
analyses["IdentifiedParticle"][221 ]["x" ][91.2]=["/ALEPH_2002_S4823664/d02-x01-y02","/L3_1992_I336180/d01-x01-y01",
"/ALEPH_1996_S3486095/d30-x01-y01","/OPAL_1998_S3749908/d06-x01-y01",]
# xi
analyses["IdentifiedParticle"][221 ]["xi"][91.2]=["/L3_1992_I336180/d02-x01-y01","/OPAL_1998_S3749908/d07-x01-y01"]
# eta'
# x
analyses["IdentifiedParticle"][331 ]["x" ][91.2]=["/L3_1997_I427107/d07-x01-y01" ,"/L3_1997_I427107/d09-x01-y01",
"/ALEPH_1996_S3486095/d31-x01-y01","/OPAL_1998_S3749908/d12-x01-y01"]
# xi
analyses["IdentifiedParticle"][331 ]["xi"][91.2]=["/L3_1997_I427107/d08-x01-y01","/L3_1997_I427107/d10-x01-y01",
"/OPAL_1998_S3749908/d13-x01-y01"]
# rho +/-
analyses["IdentifiedParticle"][213 ]["x" ][91.2] = ["/OPAL_1998_S3749908/d08-x01-y01"]
analyses["IdentifiedParticle"][213 ]["xi"][91.2] = ["/OPAL_1998_S3749908/d09-x01-y01"]
# rho0
analyses["IdentifiedParticle"][113 ]["x" ][10.0] = ["/ARGUS_1993_S2789213/d10-x01-y01"]
analyses["IdentifiedParticle"][113 ]["x" ][35.0] = ["/JADE_1984_I203145/d02-x01-y01"]
analyses["IdentifiedParticle"][113 ]["x" ][91.2] = ["/DELPHI_1999_S3960137/d01-x01-y01","/ALEPH_1996_S3486095/d37-x01-y01"]
# omega
analyses["IdentifiedParticle"][223 ]["x" ][10.0] = ["/ARGUS_1993_S2789213/d13-x01-y01"]
analyses["IdentifiedParticle"][223 ]["x" ][91.2] = ["/ALEPH_2002_S4823664/d03-x01-y02","/L3_1997_I427107/d05-x01-y01",
"/ALEPH_1996_S3486095/d38-x01-y01","/OPAL_1998_S3749908/d10-x01-y01",]
analyses["IdentifiedParticle"][223 ]["xi"][91.2] = ["/L3_1997_I427107/d06-x01-y01","/OPAL_1998_S3749908/d11-x01-y01"]
# phi
analyses["IdentifiedParticle"][333 ]["x" ][10.0] = ["/ARGUS_1989_I262551/d01-x01-y01"]
analyses["IdentifiedParticle"][333 ]["x" ][29.0] = ["/TPC_1984_I200105/d01-x01-y01"]
analyses["IdentifiedParticle"][333 ]["x" ][91.2] = ["/DELPHI_1996_I420528/d03-x01-y01","/ALEPH_1996_S3486095/d40-x01-y01",
"/OPAL_1998_S3702294/d02-x01-y03","/SLD_1999_S3743934/d09-x01-y01"]
analyses["IdentifiedParticle"][333 ]["Other"][29.0] = ["/TPC_1984_I200105/d03-x01-y01"]
# f_2
analyses["IdentifiedParticle"][225]["x" ][91.2]=["/DELPHI_1999_S3960137/d01-x01-y03","/OPAL_1998_S3702294/d02-x01-y02"]
# f_2'
analyses["IdentifiedParticle"][335]["x" ][91.2]=["/DELPHI_1996_I416741/d01-x01-y01"]
# f_0(980)
analyses["IdentifiedParticle"][9010221]["x" ][10.0]=["/ARGUS_1993_S2669951/d02-x01-y01"]
analyses["IdentifiedParticle"][9010221]["x" ][91.2]=["/DELPHI_1999_S3960137/d01-x01-y02","/OPAL_1998_S3702294/d02-x01-y01"]
# a_0 =/-
analyses["IdentifiedParticle"][9000211]["x" ][91.2]=["/OPAL_1998_S3749908/d14-x01-y01"]
analyses["IdentifiedParticle"][9000211]["xi" ][91.2]=["/OPAL_1998_S3749908/d15-x01-y01"]
# strange mesons
# K0
# x
analyses["IdentifiedParticle"][311 ]["x" ][3.63] = ["/PLUTO_1977_I118873/d02-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][4.03] = ["/PLUTO_1977_I118873/d03-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][4.5] = ["/PLUTO_1977_I118873/d04-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][9.4] = ["/PLUTO_1981_I165122/d05-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][10.0] = ["/ARGUS_1989_I276860/d11-x01-y02"]
analyses["IdentifiedParticle"][311 ]["x" ][14.0] = ["/TASSO_1980_I153341/d04-x01-y01","/TASSO_1985_I205119/d01-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][22.0] = ["/TASSO_1985_I205119/d02-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][29.0] = ["/TPC_1984_I205869/d04-x01-y01","/HRS_1990_I280958/d03-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][30.0] = ["/PLUTO_1981_I165122/d04-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][34.0] = ["/TASSO_1985_I205119/d03-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][34.5] = ["/TASSO_1990_I284251/d01-x01-y03"]
analyses["IdentifiedParticle"][311 ]["x" ][35.0] = ["/TASSO_1990_I284251/d01-x01-y02","/CELLO_1990_I283026/d01-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][42.6] = ["/TASSO_1990_I284251/d01-x01-y01"]
analyses["IdentifiedParticle"][311 ]["x" ][91.2] = ["/OPAL_2000_S4418603/d03-x01-y01","/DELPHI_1995_I377487/d08-x01-y01",
"/ALEPH_1996_S3486095/d32-x01-y01","/SLD_1999_S3743934/d05-x01-y01"]
# p
analyses["IdentifiedParticle"][311 ]["p" ][10.0] = ["/ARGUS_1989_I276860/d07-x01-y02"]
analyses["IdentifiedParticle"][311 ]["p" ][14.0] = ["/TASSO_1980_I153341/d02-x01-y01","/TASSO_1985_I205119/d07-x01-y01"]
analyses["IdentifiedParticle"][311 ]["p" ][22.0] = ["/TASSO_1985_I205119/d08-x01-y01"]
analyses["IdentifiedParticle"][311 ]["p" ][34.0] = ["/TASSO_1985_I205119/d09-x01-y01"]
# xi
analyses["IdentifiedParticle"][311 ]["xi" ][58.0] = ["/TOPAZ_1995_I381900/d03-x01-y01"]
analyses["IdentifiedParticle"][311 ]["xi" ][91.2] = ["/DELPHI_1995_I377487/d09-x01-y01"]
# other
analyses["IdentifiedParticle"][311 ]["Other"][14.8 ] = ["/TASSO_1990_I284251/d06-x01-y01","/TASSO_1990_I284251/d06-x01-y02"]
analyses["IdentifiedParticle"][311 ]["Other"][21.5 ] = ["/TASSO_1990_I284251/d07-x01-y01","/TASSO_1990_I284251/d07-x01-y02"]
analyses["IdentifiedParticle"][311 ]["Other"][29.0 ] = ["/HRS_1990_I280958/d04-x01-y01"]
analyses["IdentifiedParticle"][311 ]["Other"][35.0 ] = ["/TASSO_1990_I284251/d05-x01-y03","/TASSO_1990_I284251/d05-x01-y04"]
analyses["IdentifiedParticle"][311 ]["Other"][42.6 ] = ["/TASSO_1990_I284251/d05-x01-y01","/TASSO_1990_I284251/d05-x01-y02"]
# K+/-
# x
analyses["IdentifiedParticle"][321 ]["x" ][3.635] = ["/DASP_1979_I132045/d19-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][4.04 ] = ["/DASP_1979_I132045/d20-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][4.17 ] = ["/DASP_1979_I132045/d21-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][4.30 ] = ["/DASP_1979_I132045/d22-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][4.41 ] = ["/DASP_1979_I132045/d23-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][4.72 ] = ["/DASP_1979_I132045/d24-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][5.0 ] = ["/DASP_1979_I132045/d25-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][5.2 ] = ["/DASP_1979_I132045/d26-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][10.0 ] = ["/ARGUS_1989_I276860/d10-x01-y02"]
analyses["IdentifiedParticle"][321 ]["x" ][10.52] = ["/BELLE_2013_I1216515/d01-x01-y02"]
analyses["IdentifiedParticle"][321 ]["x" ][12.0 ] = ["/TASSO_1980_I153656/d03-x01-y02"]
analyses["IdentifiedParticle"][321 ]["x" ][14.0 ] = ["/TASSO_1983_I181470/d26-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][22.0 ] = ["/TASSO_1983_I181470/d10-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][29.0 ] = ["/TPC_1988_I262143/d01-x01-y02","/TPC_1988_I262143/d05-x01-y02"]
analyses["IdentifiedParticle"][321 ]["x" ][30.0 ] = ["/TASSO_1980_I153656/d06-x01-y02"]
analyses["IdentifiedParticle"][321 ]["x" ][34.0 ] = ["/TASSO_1989_I267755/d08-x01-y01","/TASSO_1983_I181470/d12-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][44.0 ] = ["/TASSO_1989_I267755/d11-x01-y01"]
analyses["IdentifiedParticle"][321 ]["x" ][91.2 ] = ["/ALEPH_1995_I382179/d02-x01-y01","/DELPHI_1995_I394052/d05-x01-y01",
"/DELPHI_1998_I473409/d21-x01-y01","/SLD_1999_S3743934/d02-x01-y02",
"/ALEPH_1996_S3486095/d26-x01-y01","/SLD_2004_S5693039/d03-x01-y02"]
# p
analyses["IdentifiedParticle"][321 ]["p" ][3.635] = ["/DASP_1979_I132045/d02-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][4.04 ] = ["/DASP_1979_I132045/d03-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][4.17 ] = ["/DASP_1979_I132045/d04-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][4.30 ] = ["/DASP_1979_I132045/d05-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][4.41 ] = ["/DASP_1979_I132045/d06-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][4.72 ] = ["/DASP_1979_I132045/d07-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][5.0 ] = ["/DASP_1979_I132045/d08-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][5.2 ] = ["/DASP_1979_I132045/d09-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][10.0 ] = ["/ARGUS_1989_I276860/d06-x01-y02"]
analyses["IdentifiedParticle"][321 ]["p" ][10.54] = ["/BABAR_2013_I1238276/d01-x01-y02","/BABAR_2013_I1238276/d02-x01-y02"]
analyses["IdentifiedParticle"][321 ]["p" ][12.0 ] = ["/TASSO_1980_I153656/d03-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][14.0 ] = ["/TASSO_1983_I181470/d21-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][22.0 ] = ["/TASSO_1983_I181470/d27-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][30.0 ] = ["/TASSO_1980_I153656/d06-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][34.0 ] = ["/TASSO_1983_I181470/d15-x01-y01"]
analyses["IdentifiedParticle"][321 ]["p" ][91.2 ] = ["/DELPHI_1995_I394052/d03-x01-y01","/DELPHI_1998_I473409/d20-x01-y01",
"/OPAL_1994_S2927284/d02-x01-y01"]
# xi
analyses["IdentifiedParticle"][321 ]["xi" ][58.0 ] = ["/TOPAZ_1995_I381900/d02-x01-y02"]
# ratio
analyses["IdentifiedParticle"][321 ]["Ratio"][12.0 ] = ["/TASSO_1980_I153656/d09-x01-y01"]
analyses["IdentifiedParticle"][321 ]["Ratio"][29.0 ] = ["/TPC_1988_I262143/d07-x01-y01","/TPC_1988_I262143/d06-x01-y02"]
analyses["IdentifiedParticle"][321 ]["Ratio"][30.0 ] = ["/TASSO_1980_I153656/d12-x01-y01"]
analyses["IdentifiedParticle"][321 ]["Ratio"][34.0 ] = ["/TASSO_1989_I267755/d02-x01-y01"]
analyses["IdentifiedParticle"][321 ]["Ratio"][44.0 ] = ["/TASSO_1989_I267755/d05-x01-y01"]
analyses["IdentifiedParticle"][321 ]["Ratio"][91.2 ] = ["/DELPHI_1998_I473409/d05-x01-y01","/SLD_1999_S3743934/d02-x01-y01"]
# other
analyses["IdentifiedParticle"][321 ]["Other"][91.2 ] = ["/SLD_1999_S3743934/d30-x01-y01","/SLD_1999_S3743934/d30-x01-y02",
"/SLD_1999_S3743934/d31-x01-y01","/SLD_2004_S5693039/d10-x01-y01",
"/SLD_2004_S5693039/d10-x01-y02","/SLD_2004_S5693039/d10-x01-y03"]
# K*0
analyses["IdentifiedParticle"][313 ]["x" ][10.0 ] = ["/ARGUS_1993_S2789213/d07-x01-y01"]
analyses["IdentifiedParticle"][313 ]["x" ][29.0 ] = ["/TPC_1984_I205869/d03-x01-y01"]
analyses["IdentifiedParticle"][313 ]["x" ][91.2 ] = ["/DELPHI_1996_I420528/d01-x01-y01","/ALEPH_1996_S3486095/d39-x01-y01",
"/OPAL_1997_S3608263/d01-x01-y01","/SLD_1999_S3743934/d08-x01-y01"]
analyses["IdentifiedParticle"][313 ]["Other"][91.2 ] = ["/SLD_1999_S3743934/d28-x01-y01","/SLD_1999_S3743934/d28-x01-y02",
"/SLD_1999_S3743934/d29-x01-y01"]
# K* +/-
analyses["IdentifiedParticle"][323 ]["x" ][10.0 ] = ["/ARGUS_1993_S2789213/d04-x01-y01"]
analyses["IdentifiedParticle"][323 ]["x" ][14.8 ] = ["/TASSO_1990_I284251/d02-x01-y01"]
analyses["IdentifiedParticle"][323 ]["x" ][21.5 ] = ["/TASSO_1990_I284251/d03-x01-y01"]
analyses["IdentifiedParticle"][323 ]["x" ][34.5 ] = ["/TASSO_1990_I284251/d08-x01-y03"]
analyses["IdentifiedParticle"][323 ]["x" ][35.0 ] = ["/TASSO_1990_I284251/d08-x01-y02","/CELLO_1990_I283026/d02-x01-y01",
"/JADE_1984_I203145/d03-x01-y01"]
analyses["IdentifiedParticle"][323 ]["x" ][42.6 ] = ["/TASSO_1990_I284251/d08-x01-y01"]
analyses["IdentifiedParticle"][323 ]["x" ][91.2 ] = ["/OPAL_1993_I342766/d01-x01-y01","/DELPHI_1995_I377487/d10-x01-y01",
"/ALEPH_1996_S3486095/d43-x01-y01"]
analyses["IdentifiedParticle"][323 ]["Other"][35.0 ] = ["/TASSO_1990_I284251/d10-x01-y01","/TASSO_1990_I284251/d10-x01-y02"]
# charm
# D+/-
analyses["IdentifiedParticle"][421 ]["x" ][10.5 ] = ["/CLEO_2004_S5809304/d03-x01-y01","/CLEO_2004_S5809304/d04-x01-y01"]
analyses["IdentifiedParticle"][421 ]["x" ][29.0 ] = ["/HRS_1988_I23360/d02-x01-y01"]
# D0
analyses["IdentifiedParticle"][411 ]["x" ][10.5 ] = ["/CLEO_2004_S5809304/d02-x01-y01","/CLEO_2004_S5809304/d09-x01-y01"]
analyses["IdentifiedParticle"][411 ]["x" ][29.0 ] = ["/HRS_1988_I23360/d02-x01-y02"]
# D* 0
analyses["IdentifiedParticle"][423 ]["x" ][10.5]=["/CLEO_2004_S5809304/d07-x01-y01","/CLEO_2004_S5809304/d08-x01-y01"]
# D* +/-
analyses["IdentifiedParticle"][413 ]["x" ][29.0 ] = ["/TPC_1986_I217416/d01-x01-y01","/TPC_1986_I217416/d01-x01-y02",
"/HRS_1988_I23360/d01-x01-y01","/HRS_1988_I23360/d01-x01-y02"]
analyses["IdentifiedParticle"][413 ]["x" ][34.4 ] = ["/JADE_1984_I202785/d01-x01-y01"]
analyses["IdentifiedParticle"][413 ]["x" ][36.2 ] = ["/TASSO_1989_I278856/d01-x01-y01","/TASSO_1989_I278856/d01-x01-y02",
"/TASSO_1989_I278856/d02-x01-y01","/TASSO_1989_I278856/d02-x01-y02"]
analyses["IdentifiedParticle"][413 ]["x" ][91.2 ] = ["/ALEPH_1999_S4193598/d01-x01-y01"]
analyses["IdentifiedParticle"][413 ]["x" ][10.5 ] = ["/CLEO_2004_S5809304/d05-x01-y01","/CLEO_2004_S5809304/d06-x01-y01"]
analyses["IdentifiedParticle"][413 ]["Other"][34.4 ] = ["/JADE_1984_I202785/d03-x01-y01"]
# D_2
analyses["IdentifiedParticle"][425 ]["x" ][10.0 ] = ["/ARGUS_1989_I268577/d02-x01-y01"]
# D_s+
analyses["IdentifiedParticle"][431 ]["x" ][10.5 ] = ["/CLEO_2000_I526554/d02-x01-y01","/CLEO_2000_I526554/d04-x01-y01"]
# D_s*+
analyses["IdentifiedParticle"][433 ]["x" ][10.5 ] = ["/CLEO_2000_I526554/d01-x01-y01","/CLEO_2000_I526554/d03-x01-y01"]
# charmonium
analyses["IdentifiedParticle"][443 ]["x" ][91.2 ] = ["/OPAL_1996_S3257789/d01-x01-y01"]
# other
analyses["IdentifiedParticle"]["321/2212"]["Ratio"][91.2 ] = ["/DELPHI_1998_I473409/d07-x01-y01"]
#
# Baryons
#
# light unflavoured
# proton
# x
analyses["IdentifiedParticle"][2212]["x" ][3.635] = ["/DASP_1979_I132045/d27-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][4.04 ] = ["/DASP_1979_I132045/d28-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][4.17 ] = ["/DASP_1979_I132045/d29-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][4.30 ] = ["/DASP_1979_I132045/d30-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][4.41 ] = ["/DASP_1979_I132045/d31-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][4.72 ] = ["/DASP_1979_I132045/d32-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][5.0 ] = ["/DASP_1979_I132045/d33-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][5.2 ] = ["/DASP_1979_I132045/d34-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][10.0 ] = ["/ARGUS_1989_I276860/d12-x01-y02"]
analyses["IdentifiedParticle"][2212]["x" ][12.0 ] = ["/TASSO_1980_I153656/d04-x01-y02"]
analyses["IdentifiedParticle"][2212]["x" ][14.0 ] = ["/TASSO_1983_I181470/d14-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][22.0 ] = ["/TASSO_1983_I181470/d16-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][29.0 ] = ["/TPC_1988_I262143/d01-x01-y03","/TPC_1988_I262143/d05-x01-y03"]
analyses["IdentifiedParticle"][2212]["x" ][30.0 ] = ["/TASSO_1980_I153656/d07-x01-y02"]
analyses["IdentifiedParticle"][2212]["x" ][34.0 ] = ["/TASSO_1989_I267755/d09-x01-y01","/TASSO_1983_I181470/d18-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][44.0 ] = ["/TASSO_1989_I267755/d12-x01-y01"]
analyses["IdentifiedParticle"][2212]["x" ][91.2 ] = ["/ALEPH_1995_I382179/d03-x01-y01","/DELPHI_1995_I394052/d06-x01-y01",
"/DELPHI_1998_I473409/d23-x01-y01","/ALEPH_1996_S3486095/d27-x01-y01",
"/SLD_2004_S5693039/d04-x01-y02","/SLD_1999_S3743934/d03-x01-y02"]
# p
analyses["IdentifiedParticle"][2212]["p" ][3.635] = ["/DASP_1979_I132045/d10-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][4.04 ] = ["/DASP_1979_I132045/d11-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][4.17 ] = ["/DASP_1979_I132045/d12-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][4.30 ] = ["/DASP_1979_I132045/d13-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][4.41 ] = ["/DASP_1979_I132045/d14-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][4.72 ] = ["/DASP_1979_I132045/d15-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][5.0 ] = ["/DASP_1979_I132045/d16-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][5.2 ] = ["/DASP_1979_I132045/d17-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][10.0 ] = ["/ARGUS_1989_I276860/d08-x01-y02"]
analyses["IdentifiedParticle"][2212]["p" ][10.54] = ["/BABAR_2013_I1238276/d01-x01-y03","/BABAR_2013_I1238276/d02-x01-y03"]
analyses["IdentifiedParticle"][2212]["p" ][12.0 ] = ["/TASSO_1980_I153656/d04-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][14.0 ] = ["/TASSO_1983_I181470/d23-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][22.0 ] = ["/TASSO_1983_I181470/d11-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][30.0 ] = ["/TASSO_1980_I153656/d07-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][34.0 ] = ["/TASSO_1989_I267755/d03-x01-y01","/JADE_1981_I166363/d01-x01-y01",
"/TASSO_1983_I181470/d17-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][44.0 ] = ["/TASSO_1989_I267755/d06-x01-y01"]
analyses["IdentifiedParticle"][2212]["p" ][91.2 ] = ["/DELPHI_1995_I394052/d04-x01-y01","/DELPHI_1998_I473409/d22-x01-y01",
"/OPAL_1994_S2927284/d03-x01-y01",]
# xi
analyses["IdentifiedParticle"][2212]["xi" ][58.0 ] = ["/TOPAZ_1995_I381900/d02-x01-y03"]
# ratio
analyses["IdentifiedParticle"][2212]["Ratio"][12.0 ] = ["/TASSO_1980_I153656/d10-x01-y01"]
analyses["IdentifiedParticle"][2212]["Ratio"][29.0 ] = ["/TPC_1988_I262143/d06-x01-y03","/TPC_1988_I262143/d07-x01-y02",
"/TPC_1988_I262143/d07-x01-y03"]
analyses["IdentifiedParticle"][2212]["Ratio"][30.0 ] = ["/TASSO_1980_I153656/d13-x01-y01"]
analyses["IdentifiedParticle"][2212]["Ratio"][91.2 ] = ["/SLD_1999_S3743934/d03-x01-y01","/DELPHI_1998_I473409/d06-x01-y01"]
analyses["IdentifiedParticle"][2212]["Other"][91.2 ] = ["/SLD_1999_S3743934/d32-x01-y01","/SLD_1999_S3743934/d32-x01-y02",
"/SLD_1999_S3743934/d33-x01-y01","/SLD_2004_S5693039/d11-x01-y01",
"/SLD_2004_S5693039/d11-x01-y02","/SLD_2004_S5693039/d11-x01-y03"]
# Delta++
analyses["IdentifiedParticle"][2224]["x" ][91.2 ] = ["/OPAL_1995_S3198391/d01-x01-y01","/DELPHI_1995_I399737/d01-x01-y01"]
# hyperons
# lambda0
# x
analyses["IdentifiedParticle"][3122]["x" ][10.0 ] = ["/ARGUS_1988_I251097/d05-x01-y01","/ARGUS_1988_I251097/d06-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][10.52] = ["/BELLE_2017_I1606201/d01-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][14.0 ] = ["/TASSO_1985_I205119/d04-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][22.0 ] = ["/TASSO_1985_I205119/d05-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][29.0 ] = ["/HRS_1992_I339573/d01-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][34.0 ] = ["/TASSO_1985_I205119/d06-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][34.8 ] = ["/TASSO_1989_I266893/d08-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][35.0 ] = ["/CELLO_1990_I283026/d03-x01-y01"]
analyses["IdentifiedParticle"][3122]["x" ][91.2 ] = ["/OPAL_1997_S3396100/d01-x01-y01","/ALEPH_1996_S3486095/d33-x01-y01",
"/DELPHI_1993_I360638/d01-x01-y01","/SLD_1999_S3743934/d07-x01-y01"]
# p
analyses["IdentifiedParticle"][3122]["p" ][14.0 ] = ["/TASSO_1985_I205119/d10-x01-y01"]
analyses["IdentifiedParticle"][3122]["p" ][22.0 ] = ["/TASSO_1985_I205119/d11-x01-y01"]
analyses["IdentifiedParticle"][3122]["p" ][34.0 ] = ["/JADE_1981_I166363/d02-x01-y01","/TASSO_1985_I205119/d12-x01-y01"]
analyses["IdentifiedParticle"][3122]["p" ][34.8 ] = ["/TASSO_1989_I266893/d03-x01-y01"]
# xi
analyses["IdentifiedParticle"][3122]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d02-x01-y01"]
# other
analyses["IdentifiedParticle"][3122]["Other"][34.8 ] = ["/TASSO_1989_I266893/d04-x01-y01","/TASSO_1989_I266893/d05-x01-y01",
"/TASSO_1989_I266893/d06-x01-y01","/TASSO_1989_I266893/d07-x01-y01",
"/TASSO_1989_I266893/d15-x01-y01","/TASSO_1989_I266893/d15-x01-y02",
"/TASSO_1989_I266893/d15-x01-y03"]
analyses["IdentifiedParticle"][3122]["Other"][91.2 ] = ["/DELPHI_1993_I360638/d03-x01-y01","/DELPHI_1993_I360638/d04-x01-y01",
"/DELPHI_1993_I360638/d05-x01-y01","/DELPHI_1993_I360638/d06-x01-y01",
"/SLD_1999_S3743934/d34-x01-y01","/SLD_1999_S3743934/d34-x01-y02",
"/SLD_1999_S3743934/d35-x01-y01"]
# Sigma+
analyses["IdentifiedParticle"][3222]["x" ][91.2 ] = ["/OPAL_1997_I421977/d01-x01-y01"]
# sigma0
analyses["IdentifiedParticle"][3212]["x" ][10.52] = ["/BELLE_2017_I1606201/d02-x01-y01"]
# sigma-
analyses["IdentifiedParticle"][3112]["x" ][91.2 ] = ["/OPAL_1997_I421977/d02-x01-y01","/DELPHI_2000_I524694/d01-x01-y01"]
# Sigma*+
analyses["IdentifiedParticle"][3224 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d03-x01-y01"]
analyses["IdentifiedParticle"][3224 ]["x" ][91.2 ] = ["/DELPHI_1995_S3137023/d03-x01-y01","/OPAL_1997_S3396100/d05-x01-y01"]
analyses["IdentifiedParticle"][3224 ]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d06-x01-y01"]
analyses["IdentifiedParticle"]["3224B"]["x" ][91.2 ] = ["/ALEPH_1996_S3486095/d35-x01-y01"]
# sigma*-
analyses["IdentifiedParticle"][3114 ]["x" ][91.2 ] = ["/OPAL_1997_S3396100/d07-x01-y01"]
analyses["IdentifiedParticle"][3114 ]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d08-x01-y01"]
# xi-
analyses["IdentifiedParticle"][3312]["x" ][10.0 ] = ["/ARGUS_1988_I251097/d09-x01-y01"]
analyses["IdentifiedParticle"][3312]["x" ][10.52] = ["/BELLE_2017_I1606201/d05-x01-y01"]
analyses["IdentifiedParticle"][3312]["x" ][34.4 ] = ["/TASSO_1983_I192072/d02-x01-y01"]
analyses["IdentifiedParticle"][3312]["x" ][34.8 ] = ["/TASSO_1989_I266893/d23-x01-y01"]
analyses["IdentifiedParticle"][3312]["p" ][34.8 ] = ["/TASSO_1989_I266893/d18-x01-y01"]
analyses["IdentifiedParticle"][3312]["x" ][91.2 ] = ["/OPAL_1997_S3396100/d03-x01-y01","/DELPHI_1995_S3137023/d02-x01-y01",
"/ALEPH_1996_S3486095/d34-x01-y01"]
analyses["IdentifiedParticle"][3312]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d04-x01-y01","/DELPHI_2006_I719387/d01-x03-y01",]
analyses["IdentifiedParticle"][3312]["Other"][34.8 ] = ["/TASSO_1989_I266893/d19-x01-y01","/TASSO_1989_I266893/d20-x01-y01",
"/TASSO_1989_I266893/d21-x01-y01","/TASSO_1989_I266893/d22-x01-y01"]
# xi*0
analyses["IdentifiedParticle"][3324]["x" ][10.52] = ["/BELLE_2017_I1606201/d07-x01-y01"]
analyses["IdentifiedParticle"][3324]["x" ][91.2 ] = ["/OPAL_1997_S3396100/d09-x01-y01","/ALEPH_1996_S3486095/d36-x01-y01"]
analyses["IdentifiedParticle"][3324]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d10-x01-y01"]
# omega
analyses["IdentifiedParticle"][3334]["x" ][10.52] = ["/BELLE_2017_I1606201/d06-x01-y01"]
# lambda 1520
analyses["IdentifiedParticle"][3124]["x" ][10.0 ] = ["/ARGUS_1989_I262415/d04-x01-y01"]
analyses["IdentifiedParticle"][3124]["x" ][10.52] = ["/BELLE_2017_I1606201/d04-x01-y01"]
analyses["IdentifiedParticle"][3124]["x" ][91.2 ] = ["/OPAL_1997_S3396100/d11-x01-y01","/DELPHI_2000_I524694/d03-x01-y01"]
analyses["IdentifiedParticle"][3124]["xi" ][91.2 ] = ["/OPAL_1997_S3396100/d12-x01-y01"]
# charm baryons
# lambda_c
analyses["IdentifiedParticle"][4122 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d08-x01-y01"]
analyses["IdentifiedParticle"][4122 ]["x" ][10.54] = ["/BABAR_2007_S6895344/d01-x01-y01"]
analyses["IdentifiedParticle"][4122 ]["Other"][10.5 ] = ["/CLEO_2001_I552541/d03-x01-y01","/CLEO_2001_I552541/d03-x01-y02",
"/CLEO_2001_I552541/d03-x01-y03","/CLEO_2001_I552541/d03-x01-y04",
"/CLEO_2001_I552541/d04-x01-y01","/CLEO_2001_I552541/d04-x01-y02",
"/CLEO_2001_I552541/d04-x01-y03","/CLEO_2001_I552541/d04-x01-y04",]
# sigma_c0
analyses["IdentifiedParticle"][4112 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d11-x01-y01"]
# sigma_c*0
analyses["IdentifiedParticle"][4114 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d12-x01-y01"]
# xi_c
analyses["IdentifiedParticle"][4132 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d14-x01-y01","/BELLE_2017_I1606201/d15-x01-y01"]
analyses["IdentifiedParticle"][4132 ]["p" ][10.58] = ["/BABAR_2005_S6181155/d02-x01-y02"]
# omega_c
analyses["IdentifiedParticle"][4332 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d13-x01-y01"]
# lambda_c(2595)
analyses["IdentifiedParticle"][14122]["x" ][10.52] = ["/BELLE_2017_I1606201/d09-x01-y01"]
# lambda_c(2625)
analyses["IdentifiedParticle"][4124 ]["x" ][10.52] = ["/BELLE_2017_I1606201/d10-x01-y01"]
# b fragmentation
analyses["IdentifiedParticle"][511]["weak" ] = ["/DELPHI_2011_I890503/d01-x01-y01","/SLD_2002_S4869273/d01-x01-y01",
"/ALEPH_2001_S4656318/d01-x01-y01","/OPAL_2003_I599181/d01-x01-y01"]
analyses["IdentifiedParticle"][511]["weak_mean"] = ["/DELPHI_2011_I890503/d02-x01-y01","/ALEPH_2001_S4656318/d07-x01-y01",
"/OPAL_2003_I599181/d02-x01-y01"]
analyses["IdentifiedParticle"][511]["lead" ] = ["/ALEPH_2001_S4656318/d01-x01-y02"]
analyses["IdentifiedParticle"][511]["lead_mean"] = ["/ALEPH_2001_S4656318/d07-x01-y02"]
# multiplcities
analyses["Multiplicity"]["321/2212"][91.2] = ["/DELPHI_1998_I473409/d01-x01-y05"]
# mesons
analyses["Multiplicity"][211 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d01-x01-y01"]
analyses["Multiplicity"][211 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d01-x01-y02"]
analyses["Multiplicity"][211 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d01-x01-y03","/DELPHI_1996_S3430090/d36-x01-y01",
"/DELPHI_1998_I473409/d01-x01-y02","/SLD_2004_S5693039/d02-x02-y02",
"/SLD_1999_S3743934/d24-x01-y01"]
analyses["Multiplicity"][211 ][165.0] = ["/PDG_HADRON_MULTIPLICITIES/d01-x01-y04"]
analyses["Multiplicity"][111 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d02-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d02-x01-y01","/ARGUS_1990_I278933/d01-x01-y01"]
analyses["Multiplicity"][111 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d02-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d02-x01-y02"]
analyses["Multiplicity"][111 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d02-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d02-x01-y03",
"/DELPHI_1996_S3430090/d36-x01-y02","/ALEPH_1996_S3486095/d44-x01-y02"]
analyses["Multiplicity"][321 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d03-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d03-x01-y01"]
analyses["Multiplicity"][321 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d03-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d03-x01-y02"]
analyses["Multiplicity"][321 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d03-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d03-x01-y03",
"/DELPHI_1996_S3430090/d36-x01-y03","/DELPHI_1998_I473409/d01-x01-y03",
"/SLD_2004_S5693039/d03-x02-y02","/SLD_1999_S3743934/d24-x02-y01"]
analyses["Multiplicity"][321 ][165.0] = ["/PDG_HADRON_MULTIPLICITIES/d03-x01-y04","/PDG_HADRON_MULTIPLICITIES_RATIOS/d03-x01-y04"]
analyses["Multiplicity"][311 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d04-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d04-x01-y01","/PLUTO_1981_I165122/d02-x01-y01"]
analyses["Multiplicity"][311 ][30. ] = ["/TASSO_1990_I284251/d04-x01-y01"]
analyses["Multiplicity"][311 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d04-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d04-x01-y02"]
analyses["Multiplicity"][311 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d04-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d04-x01-y03",
"/DELPHI_1996_S3430090/d36-x01-y04","/ALEPH_1996_S3486095/d44-x01-y05","/SLD_1999_S3743934/d24-x03-y01"]
analyses["Multiplicity"][311 ][165.0] = ["/PDG_HADRON_MULTIPLICITIES/d04-x01-y04","/PDG_HADRON_MULTIPLICITIES_RATIOS/d04-x01-y04"]
analyses["Multiplicity"][221 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d05-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d05-x01-y01","/ARGUS_1990_I278933/d02-x01-y01"]
analyses["Multiplicity"][221 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d05-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d05-x01-y02"]
analyses["Multiplicity"][221 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d05-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d05-x01-y03",
"/DELPHI_1996_S3430090/d36-x01-y05","/ALEPH_1996_S3486095/d44-x01-y03"]
analyses["Multiplicity"][331 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d06-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d06-x01-y01"]
analyses["Multiplicity"][331 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d06-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d06-x01-y02"]
analyses["Multiplicity"][331 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d06-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d06-x01-y03",
"/DELPHI_1996_S3430090/d36-x01-y06","/ALEPH_1996_S3486095/d44-x01-y04"]
analyses["Multiplicity"][411 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d07-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d07-x01-y01"]
analyses["Multiplicity"][411 ][10.58] = ["/CLEO_2004_S5809304/d01-x01-y01"]
analyses["Multiplicity"][411 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d07-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d07-x01-y02"]
analyses["Multiplicity"][411 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d07-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d07-x01-y03","/DELPHI_1996_S3430090/d36-x01-y07"]
analyses["Multiplicity"][421 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d08-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d08-x01-y01"]
analyses["Multiplicity"][421 ][10.58] = ["/CLEO_2004_S5809304/d01-x01-y02","/CLEO_2004_S5809304/d01-x01-y03"]
analyses["Multiplicity"][421 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d08-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d08-x01-y02"]
analyses["Multiplicity"][421 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d08-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d08-x01-y03","/DELPHI_1996_S3430090/d36-x01-y08"]
analyses["Multiplicity"][431 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d09-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d09-x01-y01"]
analyses["Multiplicity"][431 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d09-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d09-x01-y02"]
analyses["Multiplicity"][431 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d09-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d09-x01-y03"]
analyses["Multiplicity"]["511B"][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d10-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d10-x01-y01","/DELPHI_1996_S3430090/d36-x01-y09"]
analyses["Multiplicity"][521 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d11-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d11-x01-y01"]
analyses["Multiplicity"][531 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d12-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d12-x01-y01"]
analyses["Multiplicity"][9010221][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d13-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d13-x01-y01"]
analyses["Multiplicity"][9010221][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d13-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d13-x01-y02"]
analyses["Multiplicity"][9010221][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d13-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d13-x01-y03","/DELPHI_1996_S3430090/d37-x01-y01"]
analyses["Multiplicity"][9000211][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d14-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d14-x01-y01"]
analyses["Multiplicity"][113 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d15-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d15-x01-y01","/ARGUS_1993_S2789213/d01-x01-y02"]
analyses["Multiplicity"][113 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d15-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d15-x01-y02"]
analyses["Multiplicity"][113 ][34.0 ] = ["/TASSO_1982_I179022/d01-x01-y01"]
analyses["Multiplicity"][113 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d15-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d15-x01-y03",
"/ALEPH_1996_S3486095/d44-x01-y06","/DELPHI_1996_S3430090/d38-x01-y01"]
analyses["Multiplicity"][213 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d16-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d16-x01-y01"]
analyses["Multiplicity"][223 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d17-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d17-x01-y01","/ARGUS_1993_S2789213/d01-x01-y01"]
analyses["Multiplicity"][223 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d17-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d17-x01-y02",
"/ALEPH_1996_S3486095/d44-x01-y07"]
analyses["Multiplicity"][323 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d18-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d18-x01-y01","/ARGUS_1993_S2789213/d01-x01-y04"]
analyses["Multiplicity"][323 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d18-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d18-x01-y02"]
analyses["Multiplicity"][323 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d18-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d18-x01-y03",
"/OPAL_1993_I342766/d02-x01-y01","/DELPHI_1996_S3430090/d38-x01-y02","/ALEPH_1996_S3486095/d44-x01-y09"]
analyses["Multiplicity"][313 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d19-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d19-x01-y01","/ARGUS_1993_S2789213/d01-x01-y03"]
analyses["Multiplicity"][313 ][30. ] = ["/TASSO_1990_I284251/d09-x01-y01"]
analyses["Multiplicity"][313 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d19-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d19-x01-y02"]
analyses["Multiplicity"][313 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d19-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d19-x01-y03",
"/DELPHI_1996_S3430090/d38-x01-y03","/ALEPH_1996_S3486095/d44-x01-y10","/SLD_1999_S3743934/d24-x04-y01"]
analyses["Multiplicity"][333 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d20-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d20-x01-y01","/ARGUS_1993_S2789213/d01-x01-y05"]
analyses["Multiplicity"][333 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d20-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d20-x01-y02"]
analyses["Multiplicity"][333 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d20-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d20-x01-y03",
"/DELPHI_1996_S3430090/d38-x01-y04","/ALEPH_1996_S3486095/d44-x01-y08","/SLD_1999_S3743934/d24-x05-y01"]
analyses["Multiplicity"][413 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d21-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d21-x01-y01"]
analyses["Multiplicity"][413 ][10.58] = ["/CLEO_2004_S5809304/d01-x01-y04","/CLEO_2004_S5809304/d01-x01-y05"]
analyses["Multiplicity"][413 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d21-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d21-x01-y02"]
analyses["Multiplicity"][413 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d21-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d21-x01-y03",
"/DELPHI_1996_S3430090/d38-x01-y05","/OPAL_1995_I382219/d03-x01-y01"]
analyses["Multiplicity"][423 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d22-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d22-x01-y01"]
analyses["Multiplicity"][423 ][10.58] = ["/CLEO_2004_S5809304/d01-x01-y06","/CLEO_2004_S5809304/d01-x01-y07"]
analyses["Multiplicity"][423 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d22-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d22-x01-y02"]
analyses["Multiplicity"][433 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d23-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d23-x01-y01"]
analyses["Multiplicity"][433 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d23-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d23-x01-y02"]
analyses["Multiplicity"][513 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d24-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d24-x01-y01"]
analyses["Multiplicity"][443 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d25-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d25-x01-y01"]
analyses["Multiplicity"][443 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d25-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d25-x01-y02",
"/OPAL_1996_S3257789/d02-x01-y01"]
analyses["Multiplicity"][100443 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d26-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d26-x01-y01",
"/OPAL_1996_S3257789/d02-x01-y02"]
analyses["Multiplicity"][553 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d27-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d27-x01-y01"]
analyses["Multiplicity"][20223 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d28-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d28-x01-y01"]
analyses["Multiplicity"][20333 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d29-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d29-x01-y01"]
analyses["Multiplicity"][20443 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d30-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d30-x01-y01"]
analyses["Multiplicity"][225 ][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d31-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d31-x01-y01"]
analyses["Multiplicity"][225 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d31-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d31-x01-y02"]
analyses["Multiplicity"][225 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d31-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d31-x01-y03","/DELPHI_1996_S3430090/d39-x01-y01"]
analyses["Multiplicity"][335 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d32-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d32-x01-y01"]
analyses["Multiplicity"][325 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d33-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d33-x01-y01"]
analyses["Multiplicity"][315 ][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d34-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d34-x01-y01"]
analyses["Multiplicity"][315 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d34-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d34-x01-y02","/DELPHI_1996_S3430090/d39-x01-y02"]
analyses["Multiplicity"][515 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d35-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d35-x01-y01"]
analyses["Multiplicity"][20431][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d36-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d36-x01-y01"]
analyses["Multiplicity"][435 ][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d37-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d37-x01-y01"]
#baryons
analyses["Multiplicity"][2212][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d38-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d38-x01-y01"]
analyses["Multiplicity"][2212][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d38-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d38-x01-y02"]
analyses["Multiplicity"][2212][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d38-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d38-x01-y03",
"/DELPHI_1996_S3430090/d40-x01-y01","/DELPHI_1998_I473409/d01-x01-y04",
"/SLD_2004_S5693039/d04-x02-y02","/SLD_1999_S3743934/d24-x06-y01"]
analyses["Multiplicity"][2212][165.0] = ["/PDG_HADRON_MULTIPLICITIES/d38-x01-y04","/PDG_HADRON_MULTIPLICITIES_RATIOS/d38-x01-y04"]
analyses["Multiplicity"][3122][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d39-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d39-x01-y01","/ARGUS_1988_I251097/d02-x01-y01"]
analyses["Multiplicity"][3122][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d39-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d39-x01-y02"]
analyses["Multiplicity"][3122][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d39-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d39-x01-y03",
"/DELPHI_1996_S3430090/d40-x01-y02","/ALEPH_1996_S3486095/d44-x01-y11","/DELPHI_1993_I360638/d02-x01-y01",
"/SLD_1999_S3743934/d24-x07-y01"]
analyses["Multiplicity"][3122][165.0] = ["/PDG_HADRON_MULTIPLICITIES/d39-x01-y04","/PDG_HADRON_MULTIPLICITIES_RATIOS/d39-x01-y04"]
analyses["Multiplicity"][3212][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d40-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d40-x01-y01","/ARGUS_1988_I251097/d02-x01-y03"]
analyses["Multiplicity"][3212][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d40-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d40-x01-y02"]
analyses["Multiplicity"][3112][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d41-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d41-x01-y01"]
analyses["Multiplicity"][3222][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d42-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d42-x01-y01","/ALEPH_1996_S3486095/d44-x01-y12"]
analyses["Multiplicity"][3312][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d44-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d44-x01-y01","/ARGUS_1988_I251097/d02-x01-y02"]
analyses["Multiplicity"][3312][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d44-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d44-x01-y02"]
analyses["Multiplicity"][3312][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d44-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d44-x01-y03",
"/DELPHI_1996_S3430090/d40-x01-y03","/ALEPH_1996_S3486095/d44-x01-y13"]
analyses["Multiplicity"][2224][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d45-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d45-x01-y01"]
analyses["Multiplicity"][2224][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d45-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d45-x01-y02","/DELPHI_1996_S3430090/d40-x01-y05"]
analyses["Multiplicity"][3114][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d46-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d46-x01-y01","/ARGUS_1988_I251097/d02-x01-y04"]
analyses["Multiplicity"][3114][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d46-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d46-x01-y02"]
analyses["Multiplicity"][3114][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d46-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d46-x01-y03"]
analyses["Multiplicity"][3224][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d47-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d47-x01-y01","/ARGUS_1988_I251097/d02-x01-y05"]
analyses["Multiplicity"][3224][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d47-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d47-x01-y02"]
analyses["Multiplicity"][3224][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d47-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d47-x01-y03"]
analyses["Multiplicity"][3324][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d49-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d49-x01-y01","/ARGUS_1988_I251097/d02-x01-y06"]
analyses["Multiplicity"][3324][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d49-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d49-x01-y02",
"/DELPHI_1996_S3430090/d40-x01-y07","/ALEPH_1996_S3486095/d44-x01-y15"]
analyses["Multiplicity"][3334][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d50-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d50-x01-y01","/ARGUS_1988_I251097/d02-x01-y07"]
analyses["Multiplicity"][3334][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d50-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d50-x01-y02"]
analyses["Multiplicity"][3334][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d50-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d50-x01-y03",
"/DELPHI_1996_S3430090/d40-x01-y04","/ALEPH_1996_S3486095/d44-x01-y16"]
analyses["Multiplicity"][4122][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d51-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d51-x01-y01",
"/BABAR_2007_S6895344/d02-x01-y01"]
analyses["Multiplicity"][4122][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d51-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d51-x01-y02"]
analyses["Multiplicity"][4122][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d51-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d51-x01-y03"]
analyses["Multiplicity"][5122][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d52-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d52-x01-y01","/DELPHI_1996_S3430090/d40-x01-y08"]
analyses["Multiplicity"][4222][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d53-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d53-x01-y01"]
analyses["Multiplicity"][3124][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d54-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d54-x01-y01"]
analyses["Multiplicity"][3124][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d54-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d54-x01-y02"]
#
analyses["Multiplicity"]["3222B"][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d43-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d43-x01-y01"]
analyses["Multiplicity"]["3224B"][10. ] = ["/PDG_HADRON_MULTIPLICITIES/d48-x01-y01","/PDG_HADRON_MULTIPLICITIES_RATIOS/d48-x01-y01"]
analyses["Multiplicity"]["3224B"][32.0 ] = ["/PDG_HADRON_MULTIPLICITIES/d48-x01-y02","/PDG_HADRON_MULTIPLICITIES_RATIOS/d48-x01-y02"]
analyses["Multiplicity"]["3224B"][91.2 ] = ["/PDG_HADRON_MULTIPLICITIES/d48-x01-y03","/PDG_HADRON_MULTIPLICITIES_RATIOS/d48-x01-y03",
"/DELPHI_1996_S3430090/d40-x01-y06","/ALEPH_1996_S3486095/d44-x01-y14"]
analyses["Multiplicity"][4132][10.52] = ["/BABAR_2005_S6181155/d03-x01-y01"]
# event shapes
# thrust based
analyses["EventShapes"]["T"][14.0 ] = ["/TASSO_1990_S2148048/d08-x01-y01"]
analyses["EventShapes"]["T"][22.0 ] = ["/TASSO_1990_S2148048/d08-x01-y02"]
analyses["EventShapes"]["T"][29.0 ] = ["/HRS_1985_I201482/d03-x01-y01","/HRS_1985_I201482/d04-x01-y01"]
analyses["EventShapes"]["T"][35.0 ] = ["/TASSO_1990_S2148048/d08-x01-y03","/TASSO_1988_I263859/d03-x01-y01",
"/JADE_1998_S3612880/d06-x01-y01"]
analyses["EventShapes"]["T"][44.0 ] = ["/TASSO_1990_S2148048/d08-x01-y04","/JADE_1998_S3612880/d02-x01-y01"]
analyses["EventShapes"]["T"][45.0 ] = ["/DELPHI_2003_I620250/d01-x01-y01"]
analyses["EventShapes"]["T"][55.2 ] = ["/AMY_1990_I283337/d12-x01-y01"]
analyses["EventShapes"]["T"][58.0 ] = ["/TOPAZ_1993_I361661/d01-x01-y01"]
analyses["EventShapes"]["T"][66.0 ] = ["/DELPHI_2003_I620250/d01-x01-y02"]
analyses["EventShapes"]["T"][76.0 ] = ["/DELPHI_2003_I620250/d01-x01-y03"]
analyses["EventShapes"]["T"][91.2 ] = ["/DELPHI_1996_S3430090/d11-x01-y01","/ALEPH_1996_S3486095/d03-x01-y01",
"/OPAL_2004_S6132243/d01-x01-y01","/ALEPH_2004_S5765862/d54-x01-y01"]
analyses["EventShapes"]["T"][133.0] = ["/ALEPH_2004_S5765862/d55-x01-y01","/OPAL_2004_S6132243/d01-x01-y02"]
analyses["EventShapes"]["T"][161.0] = ["/ALEPH_2004_S5765862/d56-x01-y01"]
analyses["EventShapes"]["T"][172.0] = ["/ALEPH_2004_S5765862/d57-x01-y01"]
analyses["EventShapes"]["T"][177.0] = ["/OPAL_2004_S6132243/d01-x01-y03"]
analyses["EventShapes"]["T"][183.0] = ["/DELPHI_2003_I620250/d38-x01-y01","/ALEPH_2004_S5765862/d58-x01-y01"]
analyses["EventShapes"]["T"][189.0] = ["/DELPHI_2003_I620250/d38-x01-y02","/ALEPH_2004_S5765862/d59-x01-y01"]
analyses["EventShapes"]["T"][192.0] = ["/DELPHI_2003_I620250/d38-x01-y03"]
analyses["EventShapes"]["T"][196.0] = ["/DELPHI_2003_I620250/d38-x01-y04"]
analyses["EventShapes"]["T"][200.0] = ["/DELPHI_2003_I620250/d39-x01-y01","/ALEPH_2004_S5765862/d60-x01-y01"]
analyses["EventShapes"]["T"][197.0] = ["/OPAL_2004_S6132243/d01-x01-y04"]
analyses["EventShapes"]["T"][202.0] = ["/DELPHI_2003_I620250/d39-x01-y02"]
analyses["EventShapes"]["T"][205.0] = ["/DELPHI_2003_I620250/d39-x01-y03"]
analyses["EventShapes"]["T"][206.0] = ["/ALEPH_2004_S5765862/d61-x01-y01"]
analyses["EventShapes"]["T"][207.0] = ["/DELPHI_2003_I620250/d39-x01-y04"]
analyses["EventShapes"]["T"][41.4 ] = ["/L3_2004_I652683/d21-x01-y01"]
analyses["EventShapes"]["T"][55.3 ] = ["/L3_2004_I652683/d21-x01-y02"]
analyses["EventShapes"]["T"][65.4 ] = ["/L3_2004_I652683/d21-x01-y03"]
analyses["EventShapes"]["T"][75.7 ] = ["/L3_2004_I652683/d22-x01-y01"]
analyses["EventShapes"]["T"][82.3 ] = ["/L3_2004_I652683/d22-x01-y02"]
analyses["EventShapes"]["T"][85.1 ] = ["/L3_2004_I652683/d22-x01-y03"]
analyses["EventShapes"]["T"][130.1] = ["/L3_2004_I652683/d23-x01-y01"]
analyses["EventShapes"]["T"][136.3] = ["/L3_2004_I652683/d23-x01-y02"]
analyses["EventShapes"]["T"][161.3] = ["/L3_2004_I652683/d23-x01-y03"]
analyses["EventShapes"]["T"][172.3] = ["/L3_2004_I652683/d24-x01-y01"]
analyses["EventShapes"]["T"][182.8] = ["/L3_2004_I652683/d24-x01-y02"]
analyses["EventShapes"]["T"][188.6] = ["/L3_2004_I652683/d24-x01-y03"]
analyses["EventShapes"]["T"][194.4] = ["/L3_2004_I652683/d25-x01-y01"]
analyses["EventShapes"]["T"][200.2] = ["/L3_2004_I652683/d25-x01-y02"]
analyses["EventShapes"]["T"][206.2] = ["/L3_2004_I652683/d25-x01-y03"]
analyses["EventShapes"]["Moment_T"][91.2 ] = ["/OPAL_2004_S6132243/d15-x01-y01"]
analyses["EventShapes"]["Moment_T"][133.0] = ["/OPAL_2004_S6132243/d15-x01-y02"]
analyses["EventShapes"]["Moment_T"][177.0] = ["/OPAL_2004_S6132243/d15-x01-y03"]
analyses["EventShapes"]["Moment_T"][197.0] = ["/OPAL_2004_S6132243/d15-x01-y04"]
analyses["EventShapesFlavour"]["T"][2][91.2] = ["/L3_2004_I652683/d47-x01-y01"]
analyses["EventShapesFlavour"]["T"][5][91.2] = ["/L3_2004_I652683/d47-x01-y02"]
analyses["EventShapesFlavour"]["HeavyJetMass"][2][91.2] = ["/L3_2004_I652683/d48-x01-y01"]
analyses["EventShapesFlavour"]["HeavyJetMass"][5][91.2] = ["/L3_2004_I652683/d48-x01-y02"]
analyses["EventShapesFlavour"]["BT"][2][91.2] = ["/L3_2004_I652683/d49-x01-y01"]
analyses["EventShapesFlavour"]["BT"][5][91.2] = ["/L3_2004_I652683/d49-x01-y02"]
analyses["EventShapesFlavour"]["BW"][2][91.2] = ["/L3_2004_I652683/d50-x01-y01"]
analyses["EventShapesFlavour"]["BW"][5][91.2] = ["/L3_2004_I652683/d50-x01-y02"]
analyses["EventShapesFlavour"]["C"][2][91.2] = ["/L3_2004_I652683/d51-x01-y01"]
analyses["EventShapesFlavour"]["C"][5][91.2] = ["/L3_2004_I652683/d51-x01-y02"]
analyses["EventShapesFlavour"]["D"][2][91.2] = ["/L3_2004_I652683/d52-x01-y01"]
analyses["EventShapesFlavour"]["D"][5][91.2] = ["/L3_2004_I652683/d52-x01-y02"]
analyses["EventShapes"]["Moment_H" ][91.2 ] = ["/OPAL_2004_S6132243/d16-x01-y01"]
analyses["EventShapes"]["Moment_H" ][133.0] = ["/OPAL_2004_S6132243/d16-x01-y02"]
analyses["EventShapes"]["Moment_H" ][177.0] = ["/OPAL_2004_S6132243/d16-x01-y03"]
analyses["EventShapes"]["Moment_H" ][197.0] = ["/OPAL_2004_S6132243/d16-x01-y04"]
analyses["EventShapes"]["Moment_C" ][91.2 ] = ["/OPAL_2004_S6132243/d17-x01-y01"]
analyses["EventShapes"]["Moment_C" ][133.0] = ["/OPAL_2004_S6132243/d17-x01-y02"]
analyses["EventShapes"]["Moment_C" ][177.0] = ["/OPAL_2004_S6132243/d17-x01-y03"]
analyses["EventShapes"]["Moment_C" ][197.0] = ["/OPAL_2004_S6132243/d17-x01-y04"]
analyses["EventShapes"]["Moment_BT"][91.2 ] = ["/OPAL_2004_S6132243/d18-x01-y01"]
analyses["EventShapes"]["Moment_BT"][133.0] = ["/OPAL_2004_S6132243/d18-x01-y02"]
analyses["EventShapes"]["Moment_BT"][177.0] = ["/OPAL_2004_S6132243/d18-x01-y03"]
analyses["EventShapes"]["Moment_BT"][197.0] = ["/OPAL_2004_S6132243/d18-x01-y04"]
analyses["EventShapes"]["Moment_BW"][91.2 ] = ["/OPAL_2004_S6132243/d19-x01-y01"]
analyses["EventShapes"]["Moment_BW"][133.0] = ["/OPAL_2004_S6132243/d19-x01-y02"]
analyses["EventShapes"]["Moment_BW"][177.0] = ["/OPAL_2004_S6132243/d19-x01-y03"]
analyses["EventShapes"]["Moment_BW"][197.0] = ["/OPAL_2004_S6132243/d19-x01-y04"]
analyses["EventShapes"]["Moment_y" ][91.2 ] = ["/OPAL_2004_S6132243/d20-x01-y01"]
analyses["EventShapes"]["Moment_y" ][133.0] = ["/OPAL_2004_S6132243/d20-x01-y02"]
analyses["EventShapes"]["Moment_y" ][177.0] = ["/OPAL_2004_S6132243/d20-x01-y03"]
analyses["EventShapes"]["Moment_y" ][197.0] = ["/OPAL_2004_S6132243/d20-x01-y04"]
analyses["EventShapes"]["Moment_M" ][91.2 ] = ["/OPAL_2004_S6132243/d21-x01-y01"]
analyses["EventShapes"]["Moment_M" ][133.0] = ["/OPAL_2004_S6132243/d21-x01-y02"]
analyses["EventShapes"]["Moment_M" ][177.0] = ["/OPAL_2004_S6132243/d21-x01-y03"]
analyses["EventShapes"]["Moment_M" ][197.0] = ["/OPAL_2004_S6132243/d21-x01-y04"]
analyses["EventShapes"]["Moment_m" ][91.2 ] = ["/OPAL_2004_S6132243/d22-x01-y01"]
analyses["EventShapes"]["Moment_m" ][133.0] = ["/OPAL_2004_S6132243/d22-x01-y02"]
analyses["EventShapes"]["Moment_m" ][177.0] = ["/OPAL_2004_S6132243/d22-x01-y03"]
analyses["EventShapes"]["Moment_m" ][197.0] = ["/OPAL_2004_S6132243/d22-x01-y04"]
analyses["EventShapes"]["Moment_S" ][91.2 ] = ["/OPAL_2004_S6132243/d23-x01-y01"]
analyses["EventShapes"]["Moment_S" ][133.0] = ["/OPAL_2004_S6132243/d23-x01-y02"]
analyses["EventShapes"]["Moment_S" ][177.0] = ["/OPAL_2004_S6132243/d23-x01-y03"]
analyses["EventShapes"]["Moment_S" ][197.0] = ["/OPAL_2004_S6132243/d23-x01-y04"]
analyses["EventShapes"]["Moment_O" ][91.2 ] = ["/OPAL_2004_S6132243/d24-x01-y01"]
analyses["EventShapes"]["Moment_O" ][133.0] = ["/OPAL_2004_S6132243/d24-x01-y02"]
analyses["EventShapes"]["Moment_O" ][177.0] = ["/OPAL_2004_S6132243/d24-x01-y03"]
analyses["EventShapes"]["Moment_O" ][197.0] = ["/OPAL_2004_S6132243/d24-x01-y04"]
analyses["EventShapes"]["Moment_L" ][91.2 ] = ["/OPAL_2004_S6132243/d25-x01-y01"]
analyses["EventShapes"]["Moment_L" ][133.0] = ["/OPAL_2004_S6132243/d25-x01-y02"]
analyses["EventShapes"]["Moment_L" ][177.0] = ["/OPAL_2004_S6132243/d25-x01-y03"]
analyses["EventShapes"]["Moment_L" ][197.0] = ["/OPAL_2004_S6132243/d25-x01-y04"]
analyses["EventShapes"]["Moment_BN"][91.2 ] = ["/OPAL_2004_S6132243/d26-x01-y01"]
analyses["EventShapes"]["Moment_BN"][133.0] = ["/OPAL_2004_S6132243/d26-x01-y02"]
analyses["EventShapes"]["Moment_BN"][177.0] = ["/OPAL_2004_S6132243/d26-x01-y03"]
analyses["EventShapes"]["Moment_BN"][197.0] = ["/OPAL_2004_S6132243/d26-x01-y04"]
analyses["EventShapes"]["Major"][45.0 ] = ["/DELPHI_2003_I620250/d02-x01-y01"]
analyses["EventShapes"]["Major"][55.2 ] = ["/AMY_1990_I283337/d13-x01-y01"]
analyses["EventShapes"]["Major"][66.0 ] = ["/DELPHI_2003_I620250/d02-x01-y02"]
analyses["EventShapes"]["Major"][76.0 ] = ["/DELPHI_2003_I620250/d02-x01-y03"]
analyses["EventShapes"]["Major"][91.2 ] = ["/DELPHI_1996_S3430090/d12-x01-y01","/OPAL_2004_S6132243/d07-x01-y01",
"/ALEPH_2004_S5765862/d94-x01-y01"]
analyses["EventShapes"]["Major"][133.0] = ["/ALEPH_2004_S5765862/d95-x01-y01","/OPAL_2004_S6132243/d07-x01-y02"]
analyses["EventShapes"]["Major"][161.0] = ["/ALEPH_2004_S5765862/d96-x01-y01"]
analyses["EventShapes"]["Major"][172.0] = ["/ALEPH_2004_S5765862/d97-x01-y01"]
analyses["EventShapes"]["Major"][177.0] = ["/OPAL_2004_S6132243/d07-x01-y03"]
analyses["EventShapes"]["Major"][183.0] = ["/DELPHI_2003_I620250/d40-x01-y01","/ALEPH_2004_S5765862/d98-x01-y01"]
analyses["EventShapes"]["Major"][189.0] = ["/DELPHI_2003_I620250/d40-x01-y02","/ALEPH_2004_S5765862/d99-x01-y01"]
analyses["EventShapes"]["Major"][192.0] = ["/DELPHI_2003_I620250/d40-x01-y03"]
analyses["EventShapes"]["Major"][196.0] = ["/DELPHI_2003_I620250/d40-x01-y04"]
analyses["EventShapes"]["Major"][197.0] = ["/OPAL_2004_S6132243/d07-x01-y04"]
analyses["EventShapes"]["Major"][200.0] = ["/DELPHI_2003_I620250/d41-x01-y01","/ALEPH_2004_S5765862/d100-x01-y01"]
analyses["EventShapes"]["Major"][202.0] = ["/DELPHI_2003_I620250/d41-x01-y02"]
analyses["EventShapes"]["Major"][205.0] = ["/DELPHI_2003_I620250/d41-x01-y03"]
analyses["EventShapes"]["Major"][206.0] = ["/ALEPH_2004_S5765862/d101-x01-y01"]
analyses["EventShapes"]["Major"][207.0] = ["/DELPHI_2003_I620250/d41-x01-y04"]
analyses["EventShapes"]["Minor"][45.0 ] = ["/DELPHI_2003_I620250/d03-x01-y01"]
analyses["EventShapes"]["Minor"][55.2 ] = ["/AMY_1990_I283337/d14-x01-y01"]
analyses["EventShapes"]["Minor"][66.0 ] = ["/DELPHI_2003_I620250/d03-x01-y02"]
analyses["EventShapes"]["Minor"][76.0 ] = ["/DELPHI_2003_I620250/d03-x01-y03"]
analyses["EventShapes"]["Minor"][91.2 ] = ["/DELPHI_1996_S3430090/d13-x01-y01","/ALEPH_2004_S5765862/d102-x01-y01",
"/ALEPH_1996_S3486095/d04-x01-y01","/OPAL_2004_S6132243/d08-x01-y01"]
analyses["EventShapes"]["Minor"][133.0] = ["/ALEPH_2004_S5765862/d103-x01-y01","/OPAL_2004_S6132243/d08-x01-y02"]
analyses["EventShapes"]["Minor"][161.0] = ["/ALEPH_2004_S5765862/d104-x01-y01"]
analyses["EventShapes"]["Minor"][172.0] = ["/ALEPH_2004_S5765862/d105-x01-y01"]
analyses["EventShapes"]["Minor"][177.0] = ["/OPAL_2004_S6132243/d08-x01-y03"]
analyses["EventShapes"]["Minor"][183.0] = ["/DELPHI_2003_I620250/d42-x01-y01","/ALEPH_2004_S5765862/d106-x01-y01"]
analyses["EventShapes"]["Minor"][189.0] = ["/DELPHI_2003_I620250/d42-x01-y02","/ALEPH_2004_S5765862/d107-x01-y01"]
analyses["EventShapes"]["Minor"][192.0] = ["/DELPHI_2003_I620250/d42-x01-y03"]
analyses["EventShapes"]["Minor"][196.0] = ["/DELPHI_2003_I620250/d42-x01-y04"]
analyses["EventShapes"]["Minor"][197.0] = ["/OPAL_2004_S6132243/d08-x01-y04"]
analyses["EventShapes"]["Minor"][200.0] = ["/DELPHI_2003_I620250/d43-x01-y01","/ALEPH_2004_S5765862/d108-x01-y01"]
analyses["EventShapes"]["Minor"][202.0] = ["/DELPHI_2003_I620250/d43-x01-y02"]
analyses["EventShapes"]["Minor"][205.0] = ["/DELPHI_2003_I620250/d43-x01-y03"]
analyses["EventShapes"]["Minor"][206.0] = ["/ALEPH_2004_S5765862/d109-x01-y01"]
analyses["EventShapes"]["Minor"][207.0] = ["/DELPHI_2003_I620250/d43-x01-y04"]
analyses["EventShapes"]["O"][45.0 ] = ["/DELPHI_2003_I620250/d06-x01-y01"]
analyses["EventShapes"]["O"][55.2 ] = ["/AMY_1990_I283337/d15-x01-y01"]
analyses["EventShapes"]["O"][66.0 ] = ["/DELPHI_2003_I620250/d06-x01-y02"]
analyses["EventShapes"]["O"][76.0 ] = ["/DELPHI_2003_I620250/d06-x01-y03"]
analyses["EventShapes"]["O"][91.2 ] = ["/ALEPH_2004_S5765862/d133-x01-y01","/DELPHI_1996_S3430090/d14-x01-y01",
"/ALEPH_1996_S3486095/d08-x01-y01","/OPAL_2004_S6132243/d11-x01-y01"]
analyses["EventShapes"]["O"][133.0] = ["/ALEPH_2004_S5765862/d134-x01-y01","/OPAL_2004_S6132243/d11-x01-y02"]
analyses["EventShapes"]["O"][161.0] = ["/ALEPH_2004_S5765862/d135-x01-y01"]
analyses["EventShapes"]["O"][172.0] = ["/ALEPH_2004_S5765862/d136-x01-y01"]
analyses["EventShapes"]["O"][177.0] = ["/OPAL_2004_S6132243/d11-x01-y03"]
analyses["EventShapes"]["O"][183.0] = ["/DELPHI_2003_I620250/d44-x01-y01","/ALEPH_2004_S5765862/d137-x01-y01"]
analyses["EventShapes"]["O"][189.0] = ["/DELPHI_2003_I620250/d44-x01-y02","/ALEPH_2004_S5765862/d138-x01-y01"]
analyses["EventShapes"]["O"][192.0] = ["/DELPHI_2003_I620250/d44-x01-y03"]
analyses["EventShapes"]["O"][196.0] = ["/DELPHI_2003_I620250/d44-x01-y04"]
analyses["EventShapes"]["O"][197.0] = ["/OPAL_2004_S6132243/d11-x01-y04"]
analyses["EventShapes"]["O"][200.0] = ["/DELPHI_2003_I620250/d45-x01-y01","/ALEPH_2004_S5765862/d139-x01-y01"]
analyses["EventShapes"]["O"][202.0] = ["/DELPHI_2003_I620250/d45-x01-y02"]
analyses["EventShapes"]["O"][205.0] = ["/DELPHI_2003_I620250/d45-x01-y03"]
analyses["EventShapes"]["O"][206.0] = ["/ALEPH_2004_S5765862/d140-x01-y01"]
analyses["EventShapes"]["O"][207.0] = ["/DELPHI_2003_I620250/d45-x01-y04"]
# jet broadenings
analyses["EventShapes"]["BW"][45.0 ] = ["/DELPHI_2003_I620250/d13-x01-y01"]
analyses["EventShapes"]["BW"][66.0 ] = ["/DELPHI_2003_I620250/d13-x01-y02"]
analyses["EventShapes"]["BW"][76.0 ] = ["/DELPHI_2003_I620250/d13-x01-y03"]
analyses["EventShapes"]["BW"][91.2 ] = ["/DELPHI_1996_S3430090/d23-x01-y01","/ALEPH_2004_S5765862/d78-x01-y01","/OPAL_2004_S6132243/d05-x01-y01"]
analyses["EventShapes"]["BW"][133.0] = ["/OPAL_2004_S6132243/d05-x01-y02","/ALEPH_2004_S5765862/d79-x01-y01"]
analyses["EventShapes"]["BW"][161.0] = ["/ALEPH_2004_S5765862/d80-x01-y01"]
analyses["EventShapes"]["BW"][172.0] = ["/ALEPH_2004_S5765862/d81-x01-y01"]
analyses["EventShapes"]["BW"][177.0] = ["/OPAL_2004_S6132243/d05-x01-y03"]
analyses["EventShapes"]["BW"][183.0] = ["/DELPHI_2003_I620250/d46-x01-y01","/ALEPH_2004_S5765862/d82-x01-y01"]
analyses["EventShapes"]["BW"][189.0] = ["/DELPHI_2003_I620250/d46-x01-y02","/ALEPH_2004_S5765862/d83-x01-y01"]
analyses["EventShapes"]["BW"][192.0] = ["/DELPHI_2003_I620250/d46-x01-y03"]
analyses["EventShapes"]["BW"][196.0] = ["/DELPHI_2003_I620250/d46-x01-y04"]
analyses["EventShapes"]["BW"][197.0] = ["/OPAL_2004_S6132243/d05-x01-y04"]
analyses["EventShapes"]["BW"][200.0] = ["/DELPHI_2003_I620250/d47-x01-y01","/ALEPH_2004_S5765862/d84-x01-y01"]
analyses["EventShapes"]["BW"][202.0] = ["/DELPHI_2003_I620250/d47-x01-y02"]
analyses["EventShapes"]["BW"][205.0] = ["/DELPHI_2003_I620250/d47-x01-y03"]
analyses["EventShapes"]["BW"][206.0] = ["/ALEPH_2004_S5765862/d85-x01-y01"]
analyses["EventShapes"]["BW"][207.0] = ["/DELPHI_2003_I620250/d47-x01-y04"]
analyses["EventShapes"]["BW"][41.4 ] = ["/L3_2004_I652683/d36-x01-y01"]
analyses["EventShapes"]["BW"][55.3 ] = ["/L3_2004_I652683/d36-x01-y02"]
analyses["EventShapes"]["BW"][65.4 ] = ["/L3_2004_I652683/d36-x01-y03"]
analyses["EventShapes"]["BW"][75.7 ] = ["/L3_2004_I652683/d37-x01-y01"]
analyses["EventShapes"]["BW"][82.3 ] = ["/L3_2004_I652683/d37-x01-y02"]
analyses["EventShapes"]["BW"][85.1 ] = ["/L3_2004_I652683/d37-x01-y03"]
analyses["EventShapes"]["BW"][130.1] = ["/L3_2004_I652683/d38-x01-y01"]
analyses["EventShapes"]["BW"][136.3] = ["/L3_2004_I652683/d38-x01-y02"]
analyses["EventShapes"]["BW"][161.3] = ["/L3_2004_I652683/d38-x01-y03"]
analyses["EventShapes"]["BW"][172.3] = ["/L3_2004_I652683/d39-x01-y01"]
analyses["EventShapes"]["BW"][182.8] = ["/L3_2004_I652683/d39-x01-y02"]
analyses["EventShapes"]["BW"][188.6] = ["/L3_2004_I652683/d39-x01-y03"]
analyses["EventShapes"]["BW"][194.4] = ["/L3_2004_I652683/d40-x01-y01"]
analyses["EventShapes"]["BW"][200.2] = ["/L3_2004_I652683/d40-x01-y02"]
analyses["EventShapes"]["BW"][206.2] = ["/L3_2004_I652683/d40-x01-y03"]
analyses["EventShapes"]["BW"][35.0] = ["/JADE_1998_S3612880/d09-x01-y01"]
analyses["EventShapes"]["BW"][44.0] = ["/JADE_1998_S3612880/d05-x01-y01"]
analyses["EventShapes"]["BN"][45.0 ] = ["/DELPHI_2003_I620250/d14-x01-y01"]
analyses["EventShapes"]["BN"][66.0 ] = ["/DELPHI_2003_I620250/d14-x01-y02"]
analyses["EventShapes"]["BN"][76.0 ] = ["/DELPHI_2003_I620250/d14-x01-y03"]
analyses["EventShapes"]["BN"][91.2 ] = ["/DELPHI_1996_S3430090/d24-x01-y01","/OPAL_2004_S6132243/d13-x01-y01"]
analyses["EventShapes"]["BN"][133.0] = ["/OPAL_2004_S6132243/d13-x01-y02"]
analyses["EventShapes"]["BN"][177.0] = ["/OPAL_2004_S6132243/d13-x01-y03"]
analyses["EventShapes"]["BN"][197.0] = ["/OPAL_2004_S6132243/d13-x01-y04"]
analyses["EventShapes"]["BT"][41.4 ] = ["/L3_2004_I652683/d31-x01-y01"]
analyses["EventShapes"]["BT"][55.3 ] = ["/L3_2004_I652683/d31-x01-y02"]
analyses["EventShapes"]["BT"][65.4 ] = ["/L3_2004_I652683/d31-x01-y03"]
analyses["EventShapes"]["BT"][75.7 ] = ["/L3_2004_I652683/d32-x01-y01"]
analyses["EventShapes"]["BT"][82.3 ] = ["/L3_2004_I652683/d32-x01-y02"]
analyses["EventShapes"]["BT"][85.1 ] = ["/L3_2004_I652683/d32-x01-y03"]
analyses["EventShapes"]["BT"][91.2 ] = ["/DELPHI_1996_S3430090/d25-x01-y01","/OPAL_2004_S6132243/d04-x01-y01",
"/ALEPH_2004_S5765862/d70-x01-y01"]
analyses["EventShapes"]["BT"][130.1] = ["/L3_2004_I652683/d33-x01-y01"]
analyses["EventShapes"]["BT"][133.0] = ["/OPAL_2004_S6132243/d04-x01-y02","/ALEPH_2004_S5765862/d71-x01-y01"]
analyses["EventShapes"]["BT"][136.3] = ["/L3_2004_I652683/d33-x01-y02"]
analyses["EventShapes"]["BT"][161.3] = ["/L3_2004_I652683/d33-x01-y03"]
analyses["EventShapes"]["BT"][172.3] = ["/L3_2004_I652683/d34-x01-y01"]
analyses["EventShapes"]["BT"][177.0] = ["/OPAL_2004_S6132243/d04-x01-y03"]
analyses["EventShapes"]["BT"][182.8] = ["/L3_2004_I652683/d34-x01-y02"]
analyses["EventShapes"]["BT"][188.6] = ["/L3_2004_I652683/d34-x01-y03"]
analyses["EventShapes"]["BT"][194.4] = ["/L3_2004_I652683/d35-x01-y01"]
analyses["EventShapes"]["BT"][197.0] = ["/OPAL_2004_S6132243/d04-x01-y04"]
analyses["EventShapes"]["BT"][200.2] = ["/L3_2004_I652683/d35-x01-y02"]
analyses["EventShapes"]["BT"][206.2] = ["/L3_2004_I652683/d35-x01-y03"]
analyses["EventShapes"]["BT"][45.0 ] = ["/DELPHI_2003_I620250/d15-x01-y01"]
analyses["EventShapes"]["BT"][66.0 ] = ["/DELPHI_2003_I620250/d15-x01-y02"]
analyses["EventShapes"]["BT"][76.0 ] = ["/DELPHI_2003_I620250/d15-x01-y03"]
analyses["EventShapes"]["BT"][161.0] = ["/ALEPH_2004_S5765862/d72-x01-y01"]
analyses["EventShapes"]["BT"][172.0] = ["/ALEPH_2004_S5765862/d73-x01-y01"]
analyses["EventShapes"]["BT"][183.0] = ["/DELPHI_2003_I620250/d48-x01-y01","/ALEPH_2004_S5765862/d74-x01-y01"]
analyses["EventShapes"]["BT"][189.0] = ["/DELPHI_2003_I620250/d48-x01-y02","/ALEPH_2004_S5765862/d75-x01-y01"]
analyses["EventShapes"]["BT"][192.0] = ["/DELPHI_2003_I620250/d48-x01-y03"]
analyses["EventShapes"]["BT"][196.0] = ["/DELPHI_2003_I620250/d48-x01-y04"]
analyses["EventShapes"]["BT"][200.0] = ["/DELPHI_2003_I620250/d49-x01-y01","/ALEPH_2004_S5765862/d76-x01-y01"]
analyses["EventShapes"]["BT"][202.0] = ["/DELPHI_2003_I620250/d49-x01-y02"]
analyses["EventShapes"]["BT"][205.0] = ["/DELPHI_2003_I620250/d49-x01-y03"]
analyses["EventShapes"]["BT"][206.0] = ["/ALEPH_2004_S5765862/d77-x01-y01"]
analyses["EventShapes"]["BT"][207.0] = ["/DELPHI_2003_I620250/d49-x01-y04"]
analyses["EventShapes"]["BT"][35.0] = ["/JADE_1998_S3612880/d08-x01-y01"]
analyses["EventShapes"]["BT"][44.0] = ["/JADE_1998_S3612880/d04-x01-y01"]
analyses["EventShapes"]["Bdiff"][45.0 ] = ["/DELPHI_2003_I620250/d16-x01-y01"]
analyses["EventShapes"]["Bdiff"][66.0 ] = ["/DELPHI_2003_I620250/d16-x01-y02"]
analyses["EventShapes"]["Bdiff"][76.0 ] = ["/DELPHI_2003_I620250/d16-x01-y03"]
analyses["EventShapes"]["Bdiff"][91.2 ] = ["/DELPHI_1996_S3430090/d26-x01-y01"]
analyses["EventShapes"]["Bdiff"][183.0] = ["/DELPHI_2003_I620250/d50-x01-y01"]
analyses["EventShapes"]["Bdiff"][189.0] = ["/DELPHI_2003_I620250/d50-x01-y02"]
analyses["EventShapes"]["Bdiff"][192.0] = ["/DELPHI_2003_I620250/d50-x01-y03"]
analyses["EventShapes"]["Bdiff"][196.0] = ["/DELPHI_2003_I620250/d50-x01-y04"]
analyses["EventShapes"]["Bdiff"][200.0] = ["/DELPHI_2003_I620250/d51-x01-y01"]
analyses["EventShapes"]["Bdiff"][202.0] = ["/DELPHI_2003_I620250/d51-x01-y02"]
analyses["EventShapes"]["Bdiff"][205.0] = ["/DELPHI_2003_I620250/d51-x01-y03"]
analyses["EventShapes"]["Bdiff"][207.0] = ["/DELPHI_2003_I620250/d51-x01-y04"]
# C and D
analyses["EventShapes"]["C"][45.0 ] = ["/DELPHI_2003_I620250/d17-x01-y01"]
analyses["EventShapes"]["C"][66.0 ] = ["/DELPHI_2003_I620250/d17-x01-y02"]
analyses["EventShapes"]["C"][76.0 ] = ["/DELPHI_2003_I620250/d17-x01-y03"]
analyses["EventShapes"]["C"][91.2 ] = ["/DELPHI_1996_S3430090/d18-x01-y01","/ALEPH_1996_S3486095/d07-x01-y01",
"/ALEPH_2004_S5765862/d86-x01-y01","/OPAL_2004_S6132243/d03-x01-y01"]
analyses["EventShapes"]["C"][133.0] = ["/OPAL_2004_S6132243/d03-x01-y02","/ALEPH_2004_S5765862/d87-x01-y01"]
analyses["EventShapes"]["C"][161.0] = ["/ALEPH_2004_S5765862/d88-x01-y01"]
analyses["EventShapes"]["C"][172.0] = ["/ALEPH_2004_S5765862/d89-x01-y01"]
analyses["EventShapes"]["C"][177.0] = ["/OPAL_2004_S6132243/d03-x01-y03"]
analyses["EventShapes"]["C"][183.0] = ["/DELPHI_2003_I620250/d52-x01-y01","/ALEPH_2004_S5765862/d90-x01-y01"]
analyses["EventShapes"]["C"][189.0] = ["/DELPHI_2003_I620250/d52-x01-y02","/ALEPH_2004_S5765862/d91-x01-y01"]
analyses["EventShapes"]["C"][192.0] = ["/DELPHI_2003_I620250/d52-x01-y03"]
analyses["EventShapes"]["C"][196.0] = ["/DELPHI_2003_I620250/d52-x01-y04"]
analyses["EventShapes"]["C"][197.0] = ["/OPAL_2004_S6132243/d03-x01-y04"]
analyses["EventShapes"]["C"][200.0] = ["/DELPHI_2003_I620250/d53-x01-y01","/ALEPH_2004_S5765862/d92-x01-y01"]
analyses["EventShapes"]["C"][202.0] = ["/DELPHI_2003_I620250/d53-x01-y02"]
analyses["EventShapes"]["C"][205.0] = ["/DELPHI_2003_I620250/d53-x01-y03"]
analyses["EventShapes"]["C"][206.0] = ["/ALEPH_2004_S5765862/d93-x01-y01"]
analyses["EventShapes"]["C"][207.0] = ["/DELPHI_2003_I620250/d53-x01-y04"]
analyses["EventShapes"]["C"][130.1] = ["/L3_2004_I652683/d41-x01-y01"]
analyses["EventShapes"]["C"][136.3] = ["/L3_2004_I652683/d41-x01-y02"]
analyses["EventShapes"]["C"][161.3] = ["/L3_2004_I652683/d41-x01-y03"]
analyses["EventShapes"]["C"][172.3] = ["/L3_2004_I652683/d42-x01-y01"]
analyses["EventShapes"]["C"][182.8] = ["/L3_2004_I652683/d42-x01-y02"]
analyses["EventShapes"]["C"][188.6] = ["/L3_2004_I652683/d42-x01-y03"]
analyses["EventShapes"]["C"][194.4] = ["/L3_2004_I652683/d43-x01-y01"]
analyses["EventShapes"]["C"][200.2] = ["/L3_2004_I652683/d43-x01-y02"]
analyses["EventShapes"]["C"][206.2] = ["/L3_2004_I652683/d43-x01-y03"]
analyses["EventShapes"]["D"][91.2 ] = ["/DELPHI_1996_S3430090/d19-x01-y01","/OPAL_2004_S6132243/d14-x01-y01"]
analyses["EventShapes"]["D"][130.1] = ["/L3_2004_I652683/d44-x01-y01"]
analyses["EventShapes"]["D"][133.0] = ["/OPAL_2004_S6132243/d14-x01-y02"]
analyses["EventShapes"]["D"][136.3] = ["/L3_2004_I652683/d44-x01-y02"]
analyses["EventShapes"]["D"][161.3] = ["/L3_2004_I652683/d44-x01-y03"]
analyses["EventShapes"]["D"][172.3] = ["/L3_2004_I652683/d45-x01-y01"]
analyses["EventShapes"]["D"][177.0] = ["/OPAL_2004_S6132243/d14-x01-y03"]
analyses["EventShapes"]["D"][182.8] = ["/L3_2004_I652683/d45-x01-y02"]
analyses["EventShapes"]["D"][188.6] = ["/L3_2004_I652683/d45-x01-y03"]
analyses["EventShapes"]["D"][194.4] = ["/L3_2004_I652683/d46-x01-y01"]
analyses["EventShapes"]["D"][197.0] = ["/OPAL_2004_S6132243/d14-x01-y04"]
analyses["EventShapes"]["D"][200.2] = ["/L3_2004_I652683/d46-x01-y02"]
analyses["EventShapes"]["D"][206.2] = ["/L3_2004_I652683/d46-x01-y03"]
analyses["EventShapes"]["D"][183.0] = ["/DELPHI_2003_I620250/d54-x01-y01"]
analyses["EventShapes"]["D"][189.0] = ["/DELPHI_2003_I620250/d54-x01-y02"]
analyses["EventShapes"]["D"][192.0] = ["/DELPHI_2003_I620250/d54-x01-y03"]
analyses["EventShapes"]["D"][196.0] = ["/DELPHI_2003_I620250/d54-x01-y04"]
analyses["EventShapes"]["D"][200.0] = ["/DELPHI_2003_I620250/d55-x01-y01"]
analyses["EventShapes"]["D"][202.0] = ["/DELPHI_2003_I620250/d55-x01-y02"]
analyses["EventShapes"]["D"][205.0] = ["/DELPHI_2003_I620250/d55-x01-y03"]
analyses["EventShapes"]["D"][207.0] = ["/DELPHI_2003_I620250/d55-x01-y04"]
# hemispheres
analyses["EventShapes"]["HeavyJetMass"][14.0] = ["/TASSO_1989_I279165/d02-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][22.0] = ["/TASSO_1989_I279165/d02-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][34.8] = ["/TASSO_1989_I279165/d02-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][35.0] = ["/JADE_1998_S3612880/d07-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][43.5] = ["/TASSO_1989_I279165/d02-x01-y04"]
analyses["EventShapes"]["HeavyJetMass"][44.0] = ["/JADE_1998_S3612880/d03-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][45.0] = ["/DELPHI_2003_I620250/d07-x01-y01","/DELPHI_2003_I620250/d08-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][55.2] = ["/AMY_1990_I283337/d21-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][58.0] = ["/TOPAZ_1993_I361661/d02-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][66.0] = ["/DELPHI_2003_I620250/d07-x01-y02","/DELPHI_2003_I620250/d08-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][76.0] = ["/DELPHI_2003_I620250/d07-x01-y03","/DELPHI_2003_I620250/d08-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][91.2] = ["/DELPHI_1996_S3430090/d20-x01-y01","/ALEPH_1996_S3486095/d06-x01-y01","/OPAL_2004_S6132243/d02-x01-y01","/ALEPH_2004_S5765862/d62-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][133.0] = ["/OPAL_2004_S6132243/d02-x01-y02","/ALEPH_2004_S5765862/d63-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][161.0] = ["/ALEPH_2004_S5765862/d64-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][172.0] = ["/ALEPH_2004_S5765862/d65-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][177.0] = ["/OPAL_2004_S6132243/d02-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][183.0] = ["/DELPHI_2003_I620250/d56-x01-y01","/DELPHI_2003_I620250/d58-x01-y01",
"/DELPHI_2003_I620250/d60-x01-y01","/ALEPH_2004_S5765862/d66-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][189.0] = ["/DELPHI_2003_I620250/d56-x01-y02","/DELPHI_2003_I620250/d58-x01-y02",
"/DELPHI_2003_I620250/d60-x01-y02","/ALEPH_2004_S5765862/d67-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][192.0] = ["/DELPHI_2003_I620250/d56-x01-y03","/DELPHI_2003_I620250/d58-x01-y03",
"/DELPHI_2003_I620250/d60-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][196.0] = ["/DELPHI_2003_I620250/d56-x01-y04","/DELPHI_2003_I620250/d58-x01-y04",
"/DELPHI_2003_I620250/d60-x01-y04"]
analyses["EventShapes"]["HeavyJetMass"][197.0] = ["/OPAL_2004_S6132243/d02-x01-y04"]
analyses["EventShapes"]["HeavyJetMass"][200.0] = ["/DELPHI_2003_I620250/d57-x01-y01","/DELPHI_2003_I620250/d59-x01-y01",
"/DELPHI_2003_I620250/d61-x01-y01","/ALEPH_2004_S5765862/d68-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][202.0] = ["/DELPHI_2003_I620250/d57-x01-y02","/DELPHI_2003_I620250/d59-x01-y02",
"/DELPHI_2003_I620250/d61-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][205.0] = ["/DELPHI_2003_I620250/d57-x01-y03","/DELPHI_2003_I620250/d59-x01-y03",
"/DELPHI_2003_I620250/d61-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][206.0] = ["/ALEPH_2004_S5765862/d69-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][207.0] = ["/DELPHI_2003_I620250/d57-x01-y04","/DELPHI_2003_I620250/d59-x01-y04",
"/DELPHI_2003_I620250/d61-x01-y04"]
analyses["EventShapes"]["HeavyJetMass"][41.4 ] = ["/L3_2004_I652683/d26-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][55.3 ] = ["/L3_2004_I652683/d26-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][65.4 ] = ["/L3_2004_I652683/d26-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][75.7 ] = ["/L3_2004_I652683/d27-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][82.3 ] = ["/L3_2004_I652683/d27-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][85.1 ] = ["/L3_2004_I652683/d27-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][130.1] = ["/L3_2004_I652683/d28-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][136.3] = ["/L3_2004_I652683/d28-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][161.3] = ["/L3_2004_I652683/d28-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][172.3] = ["/L3_2004_I652683/d29-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][182.8] = ["/L3_2004_I652683/d29-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][188.6] = ["/L3_2004_I652683/d29-x01-y03"]
analyses["EventShapes"]["HeavyJetMass"][194.4] = ["/L3_2004_I652683/d30-x01-y01"]
analyses["EventShapes"]["HeavyJetMass"][200.2] = ["/L3_2004_I652683/d30-x01-y02"]
analyses["EventShapes"]["HeavyJetMass"][206.2] = ["/L3_2004_I652683/d30-x01-y03"]
analyses["EventShapes"]["JetMassDifference"][14.0] = ["/TASSO_1989_I279165/d01-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][22.0] = ["/TASSO_1989_I279165/d01-x01-y02"]
analyses["EventShapes"]["JetMassDifference"][34.8] = ["/TASSO_1989_I279165/d01-x01-y03"]
analyses["EventShapes"]["JetMassDifference"][43.5] = ["/TASSO_1989_I279165/d01-x01-y04"]
analyses["EventShapes"]["JetMassDifference"][45.0] = ["/DELPHI_2003_I620250/d10-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][55.2] = ["/AMY_1990_I283337/d22-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][66.0] = ["/DELPHI_2003_I620250/d10-x01-y02"]
analyses["EventShapes"]["JetMassDifference"][76.0] = ["/DELPHI_2003_I620250/d10-x01-y03"]
analyses["EventShapes"]["JetMassDifference"][91.2] = ["/DELPHI_1996_S3430090/d22-x01-y01","/ALEPH_2004_S5765862/d110-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][133.0] = ["/ALEPH_2004_S5765862/d111-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][161.0] = ["/ALEPH_2004_S5765862/d112-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][172.0] = ["/ALEPH_2004_S5765862/d113-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][183.0] = ["/DELPHI_2003_I620250/d64-x01-y01","/ALEPH_2004_S5765862/d114-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][189.0] = ["/DELPHI_2003_I620250/d64-x01-y02","/ALEPH_2004_S5765862/d115-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][192.0] = ["/DELPHI_2003_I620250/d64-x01-y03"]
analyses["EventShapes"]["JetMassDifference"][196.0] = ["/DELPHI_2003_I620250/d64-x01-y04"]
analyses["EventShapes"]["JetMassDifference"][200.0] = ["/DELPHI_2003_I620250/d65-x01-y01","/ALEPH_2004_S5765862/d116-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][202.0] = ["/DELPHI_2003_I620250/d65-x01-y02"]
analyses["EventShapes"]["JetMassDifference"][205.0] = ["/DELPHI_2003_I620250/d65-x01-y03"]
analyses["EventShapes"]["JetMassDifference"][206.0] = ["/ALEPH_2004_S5765862/d117-x01-y01"]
analyses["EventShapes"]["JetMassDifference"][207.0] = ["/DELPHI_2003_I620250/d65-x01-y04"]
analyses["EventShapes"]["LightJetMass"][14.0] = ["/TASSO_1989_I279165/d03-x01-y01"]
analyses["EventShapes"]["LightJetMass"][22.0] = ["/TASSO_1989_I279165/d03-x01-y02"]
analyses["EventShapes"]["LightJetMass"][34.8] = ["/TASSO_1989_I279165/d03-x01-y03"]
analyses["EventShapes"]["LightJetMass"][43.5] = ["/TASSO_1989_I279165/d03-x01-y04"]
analyses["EventShapes"]["LightJetMass"][45.0] = ["/DELPHI_2003_I620250/d09-x01-y01"]
analyses["EventShapes"]["LightJetMass"][55.2] = ["/AMY_1990_I283337/d20-x01-y01"]
analyses["EventShapes"]["LightJetMass"][66.0] = ["/DELPHI_2003_I620250/d09-x01-y02"]
analyses["EventShapes"]["LightJetMass"][76.0] = ["/DELPHI_2003_I620250/d09-x01-y03"]
analyses["EventShapes"]["LightJetMass"][91.2] = ["/DELPHI_1996_S3430090/d21-x01-y01","/OPAL_2004_S6132243/d12-x01-y01"]
analyses["EventShapes"]["LightJetMass"][133.0] = ["/OPAL_2004_S6132243/d12-x01-y02"]
analyses["EventShapes"]["LightJetMass"][177.0] = ["/OPAL_2004_S6132243/d12-x01-y03"]
analyses["EventShapes"]["LightJetMass"][183.0] = ["/DELPHI_2003_I620250/d62-x01-y01"]
analyses["EventShapes"]["LightJetMass"][189.0] = ["/DELPHI_2003_I620250/d62-x01-y02"]
analyses["EventShapes"]["LightJetMass"][192.0] = ["/DELPHI_2003_I620250/d62-x01-y03"]
analyses["EventShapes"]["LightJetMass"][196.0] = ["/DELPHI_2003_I620250/d62-x01-y04"]
analyses["EventShapes"]["LightJetMass"][197.0] = ["/OPAL_2004_S6132243/d12-x01-y04"]
analyses["EventShapes"]["LightJetMass"][200.0] = ["/DELPHI_2003_I620250/d63-x01-y01"]
analyses["EventShapes"]["LightJetMass"][202.0] = ["/DELPHI_2003_I620250/d63-x01-y02"]
analyses["EventShapes"]["LightJetMass"][205.0] = ["/DELPHI_2003_I620250/d63-x01-y03"]
analyses["EventShapes"]["LightJetMass"][207.0] = ["/DELPHI_2003_I620250/d63-x01-y04"]
analyses["EventShapes"]["TotalJetMass"][45.0] = ["/DELPHI_2003_I620250/d11-x01-y01","/DELPHI_2003_I620250/d12-x01-y01"]
analyses["EventShapes"]["TotalJetMass"][66.0] = ["/DELPHI_2003_I620250/d11-x01-y02","/DELPHI_2003_I620250/d12-x01-y02"]
analyses["EventShapes"]["TotalJetMass"][76.0] = ["/DELPHI_2003_I620250/d11-x01-y03","/DELPHI_2003_I620250/d12-x01-y03"]
# jets
# y12
analyses["EventShapes"]["y12_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d149-x01-y01"]
analyses["EventShapes"]["y12_dur"][133.0] = ["/ALEPH_2004_S5765862/d150-x01-y01"]
analyses["EventShapes"]["y12_dur"][161.0] = ["/ALEPH_2004_S5765862/d151-x01-y01"]
analyses["EventShapes"]["y12_dur"][172.0] = ["/ALEPH_2004_S5765862/d152-x01-y01"]
analyses["EventShapes"]["y12_dur"][183.0] = ["/ALEPH_2004_S5765862/d153-x01-y01"]
analyses["EventShapes"]["y12_dur"][189.0] = ["/ALEPH_2004_S5765862/d154-x01-y01"]
analyses["EventShapes"]["y12_dur"][200.0] = ["/ALEPH_2004_S5765862/d155-x01-y01"]
analyses["EventShapes"]["y12_dur"][206.0] = ["/ALEPH_2004_S5765862/d156-x01-y01"]
# y23
analyses["EventShapes"]["y23_dur"][22.0] = ["/JADE_1998_S3612880/d12-x01-y01"]
analyses["EventShapes"]["y23_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d24-x01-y01","/JADE_1998_S3612880/d11-x01-y01"]
analyses["EventShapes"]["y23_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d25-x01-y01","/JADE_1998_S3612880/d10-x01-y01"]
analyses["EventShapes"]["y23_dur"][58.0 ] = ["/TOPAZ_1993_I361661/d03-x01-y01"]
analyses["EventShapes"]["y23_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d157-x01-y01","/ALEPH_1996_S3486095/d05-x01-y01",
"/OPAL_2004_S6132243/d06-x01-y01","/JADE_OPAL_2000_S4300807/d26-x01-y01",
"/DELPHI_1996_S3430090/d27-x01-y01"]
analyses["EventShapes"]["y23_dur"][133.0] = ["/ALEPH_2004_S5765862/d158-x01-y01","/OPAL_2004_S6132243/d06-x01-y02",
"/JADE_OPAL_2000_S4300807/d27-x01-y01"]
analyses["EventShapes"]["y23_dur"][161.0] = ["/ALEPH_2004_S5765862/d159-x01-y01","/JADE_OPAL_2000_S4300807/d28-x01-y01"]
analyses["EventShapes"]["y23_dur"][172.0] = ["/ALEPH_2004_S5765862/d160-x01-y01","/JADE_OPAL_2000_S4300807/d29-x01-y01"]
analyses["EventShapes"]["y23_dur"][177.0] = ["/OPAL_2004_S6132243/d06-x01-y03"]
analyses["EventShapes"]["y23_dur"][183.0] = ["/ALEPH_2004_S5765862/d161-x01-y01","/JADE_OPAL_2000_S4300807/d30-x01-y01"]
analyses["EventShapes"]["y23_dur"][189.0] = ["/ALEPH_2004_S5765862/d162-x01-y01","/JADE_OPAL_2000_S4300807/d31-x01-y01"]
analyses["EventShapes"]["y23_dur"][197.0] = ["/OPAL_2004_S6132243/d06-x01-y04"]
analyses["EventShapes"]["y23_dur"][200.0] = ["/ALEPH_2004_S5765862/d163-x01-y01"]
analyses["EventShapes"]["y23_dur"][206.0] = ["/ALEPH_2004_S5765862/d164-x01-y01"]
# y34
analyses["EventShapes"]["y34_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d24-x01-y02"]
analyses["EventShapes"]["y34_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d25-x01-y02"]
analyses["EventShapes"]["y34_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d165-x01-y01","/JADE_OPAL_2000_S4300807/d26-x01-y02",
"/DELPHI_1996_S3430090/d29-x01-y01"]
analyses["EventShapes"]["y34_dur"][133.0] = ["/ALEPH_2004_S5765862/d166-x01-y01","/JADE_OPAL_2000_S4300807/d27-x01-y02"]
analyses["EventShapes"]["y34_dur"][161.0] = ["/ALEPH_2004_S5765862/d167-x01-y01","/JADE_OPAL_2000_S4300807/d28-x01-y02"]
analyses["EventShapes"]["y34_dur"][172.0] = ["/ALEPH_2004_S5765862/d168-x01-y01","/JADE_OPAL_2000_S4300807/d29-x01-y02"]
analyses["EventShapes"]["y34_dur"][183.0] = ["/ALEPH_2004_S5765862/d169-x01-y01","/JADE_OPAL_2000_S4300807/d30-x01-y02"]
analyses["EventShapes"]["y34_dur"][189.0] = ["/ALEPH_2004_S5765862/d170-x01-y01","/JADE_OPAL_2000_S4300807/d31-x01-y02"]
analyses["EventShapes"]["y34_dur"][206.0] = ["/ALEPH_2004_S5765862/d172-x01-y01"]
# y45
analyses["EventShapes"]["y45_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d24-x01-y03"]
analyses["EventShapes"]["y45_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d25-x01-y03"]
analyses["EventShapes"]["y45_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d173-x01-y01","/JADE_OPAL_2000_S4300807/d26-x01-y03",
"/DELPHI_1996_S3430090/d31-x01-y01"]
analyses["EventShapes"]["y45_dur"][133.0] = ["/ALEPH_2004_S5765862/d174-x01-y01","/JADE_OPAL_2000_S4300807/d27-x01-y03"]
analyses["EventShapes"]["y45_dur"][161.0] = ["/ALEPH_2004_S5765862/d175-x01-y01","/JADE_OPAL_2000_S4300807/d28-x01-y03"]
analyses["EventShapes"]["y45_dur"][172.0] = ["/ALEPH_2004_S5765862/d176-x01-y01","/JADE_OPAL_2000_S4300807/d29-x01-y03"]
analyses["EventShapes"]["y45_dur"][183.0] = ["/ALEPH_2004_S5765862/d177-x01-y01","/JADE_OPAL_2000_S4300807/d30-x01-y03"]
analyses["EventShapes"]["y45_dur"][189.0] = ["/ALEPH_2004_S5765862/d178-x01-y01","/JADE_OPAL_2000_S4300807/d31-x01-y03"]
analyses["EventShapes"]["y45_dur"][200.0] = ["/ALEPH_2004_S5765862/d179-x01-y01"]
# y56
analyses["EventShapes"]["y56_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d24-x01-y04"]
analyses["EventShapes"]["y56_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d25-x01-y04"]
analyses["EventShapes"]["y56_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d180-x01-y01","/JADE_OPAL_2000_S4300807/d26-x01-y04"]
analyses["EventShapes"]["y56_dur"][133.0] = ["/ALEPH_2004_S5765862/d181-x01-y01","/JADE_OPAL_2000_S4300807/d27-x01-y04"]
analyses["EventShapes"]["y56_dur"][161.0] = ["/ALEPH_2004_S5765862/d182-x01-y01","/JADE_OPAL_2000_S4300807/d28-x01-y04"]
analyses["EventShapes"]["y56_dur"][172.0] = ["/ALEPH_2004_S5765862/d183-x01-y01","/JADE_OPAL_2000_S4300807/d29-x01-y04"]
analyses["EventShapes"]["y56_dur"][183.0] = ["/ALEPH_2004_S5765862/d184-x01-y01","/JADE_OPAL_2000_S4300807/d30-x01-y04"]
analyses["EventShapes"]["y56_dur"][189.0] = ["/ALEPH_2004_S5765862/d185-x01-y01","/JADE_OPAL_2000_S4300807/d31-x01-y04"]
analyses["EventShapes"]["y56_dur"][200.0] = ["/ALEPH_2004_S5765862/d186-x01-y01"]
# jade scheme
analyses["EventShapes"]["y23_jade"][57.7 ] = ["/AMY_1995_I406129/d02-x01-y01","/AMY_1995_I406129/d03-x01-y01",
"/AMY_1995_I406129/d04-x01-y01","/AMY_1995_I406129/d06-x01-y01"]
analyses["EventShapes"]["y23_jade"][91.2 ] = ["/DELPHI_1996_S3430090/d28-x01-y01"]
analyses["EventShapes"]["y34_jade"][91.2 ] = ["/DELPHI_1996_S3430090/d30-x01-y01"]
analyses["EventShapes"]["y45_jade"][91.2 ] = ["/DELPHI_1996_S3430090/d32-x01-y01"]
# jet fractions
# 1 jet
analyses["EventShapes"]["1jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d187-x01-y01"]
analyses["EventShapes"]["1jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d188-x01-y01"]
analyses["EventShapes"]["1jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d189-x01-y01"]
analyses["EventShapes"]["1jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d190-x01-y01"]
analyses["EventShapes"]["1jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d191-x01-y01"]
analyses["EventShapes"]["1jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d192-x01-y01"]
analyses["EventShapes"]["1jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d193-x01-y01"]
analyses["EventShapes"]["1jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d194-x01-y01"]
# 2 jet
analyses["EventShapes"]["2jet_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d16-x01-y01"]
analyses["EventShapes"]["2jet_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d17-x01-y01"]
analyses["EventShapes"]["2jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d195-x01-y01","/JADE_OPAL_2000_S4300807/d18-x01-y01"]
analyses["EventShapes"]["2jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d196-x01-y01","/JADE_OPAL_2000_S4300807/d19-x01-y01"]
analyses["EventShapes"]["2jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d197-x01-y01","/JADE_OPAL_2000_S4300807/d20-x01-y01"]
analyses["EventShapes"]["2jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d198-x01-y01","/JADE_OPAL_2000_S4300807/d21-x01-y01"]
analyses["EventShapes"]["2jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d199-x01-y01","/JADE_OPAL_2000_S4300807/d22-x01-y01"]
analyses["EventShapes"]["2jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d200-x01-y01","/JADE_OPAL_2000_S4300807/d23-x01-y01"]
analyses["EventShapes"]["2jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d201-x01-y01"]
analyses["EventShapes"]["2jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d202-x01-y01"]
# 3 jet
analyses["EventShapes"]["3jet_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d16-x01-y02"]
analyses["EventShapes"]["3jet_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d17-x01-y02"]
analyses["EventShapes"]["3jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d203-x01-y01","/JADE_OPAL_2000_S4300807/d18-x01-y02"]
analyses["EventShapes"]["3jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d204-x01-y01","/JADE_OPAL_2000_S4300807/d19-x01-y02"]
analyses["EventShapes"]["3jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d205-x01-y01","/JADE_OPAL_2000_S4300807/d20-x01-y02"]
analyses["EventShapes"]["3jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d206-x01-y01","/JADE_OPAL_2000_S4300807/d21-x01-y02"]
analyses["EventShapes"]["3jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d207-x01-y01","/JADE_OPAL_2000_S4300807/d22-x01-y02"]
analyses["EventShapes"]["3jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d208-x01-y01","/JADE_OPAL_2000_S4300807/d23-x01-y02"]
analyses["EventShapes"]["3jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d209-x01-y01"]
analyses["EventShapes"]["3jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d210-x01-y01"]
# 4 jet
analyses["EventShapes"]["4jet_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d16-x01-y03"]
analyses["EventShapes"]["4jet_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d17-x01-y03"]
analyses["EventShapes"]["4jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d211-x01-y01","/JADE_OPAL_2000_S4300807/d18-x01-y03"]
analyses["EventShapes"]["4jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d212-x01-y01","/JADE_OPAL_2000_S4300807/d19-x01-y03"]
analyses["EventShapes"]["4jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d213-x01-y01","/JADE_OPAL_2000_S4300807/d20-x01-y03"]
analyses["EventShapes"]["4jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d214-x01-y01","/JADE_OPAL_2000_S4300807/d21-x01-y03"]
analyses["EventShapes"]["4jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d215-x01-y01","/JADE_OPAL_2000_S4300807/d22-x01-y03"]
analyses["EventShapes"]["4jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d216-x01-y01","/JADE_OPAL_2000_S4300807/d23-x01-y03"]
analyses["EventShapes"]["4jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d217-x01-y01"]
analyses["EventShapes"]["4jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d218-x01-y01"]
# 5 jet
analyses["EventShapes"]["5jet_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d16-x01-y04"]
analyses["EventShapes"]["5jet_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d17-x01-y04"]
analyses["EventShapes"]["5jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d219-x01-y01","/JADE_OPAL_2000_S4300807/d18-x01-y04"]
analyses["EventShapes"]["5jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d220-x01-y01","/JADE_OPAL_2000_S4300807/d19-x01-y04"]
analyses["EventShapes"]["5jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d221-x01-y01","/JADE_OPAL_2000_S4300807/d20-x01-y04"]
analyses["EventShapes"]["5jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d222-x01-y01","/JADE_OPAL_2000_S4300807/d21-x01-y04"]
analyses["EventShapes"]["5jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d223-x01-y01","/JADE_OPAL_2000_S4300807/d22-x01-y04"]
analyses["EventShapes"]["5jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d224-x01-y01","/JADE_OPAL_2000_S4300807/d23-x01-y04"]
analyses["EventShapes"]["5jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d225-x01-y01"]
analyses["EventShapes"]["5jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d226-x01-y01"]
# 6 jet
analyses["EventShapes"]["6jet_dur"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d16-x01-y05"]
analyses["EventShapes"]["6jet_dur"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d17-x01-y05"]
analyses["EventShapes"]["6jet_dur"][91.2 ] = ["/ALEPH_2004_S5765862/d227-x01-y01","/JADE_OPAL_2000_S4300807/d18-x01-y05"]
analyses["EventShapes"]["6jet_dur"][133.0] = ["/ALEPH_2004_S5765862/d228-x01-y01","/JADE_OPAL_2000_S4300807/d19-x01-y05"]
analyses["EventShapes"]["6jet_dur"][161.0] = ["/ALEPH_2004_S5765862/d229-x01-y01","/JADE_OPAL_2000_S4300807/d20-x01-y05"]
analyses["EventShapes"]["6jet_dur"][172.0] = ["/ALEPH_2004_S5765862/d230-x01-y01","/JADE_OPAL_2000_S4300807/d21-x01-y05"]
analyses["EventShapes"]["6jet_dur"][183.0] = ["/ALEPH_2004_S5765862/d231-x01-y01","/JADE_OPAL_2000_S4300807/d22-x01-y05"]
analyses["EventShapes"]["6jet_dur"][189.0] = ["/ALEPH_2004_S5765862/d232-x01-y01","/JADE_OPAL_2000_S4300807/d23-x01-y05"]
analyses["EventShapes"]["6jet_dur"][200.0] = ["/ALEPH_2004_S5765862/d233-x01-y01"]
analyses["EventShapes"]["6jet_dur"][206.0] = ["/ALEPH_2004_S5765862/d234-x01-y01"]
# four jet angles
analyses["FourJet"]["BZ" ][91.2] = ["/OPAL_2001_S4553896/d03-x01-y01"]
analyses["FourJet"]["KSW" ][91.2] = ["/OPAL_2001_S4553896/d04-x01-y01"]
analyses["FourJet"]["NR" ][91.2] = ["/OPAL_2001_S4553896/d05-x01-y01"]
analyses["FourJet"]["alpha34"][91.2] = ["/OPAL_2001_S4553896/d06-x01-y01"]
# EEC
analyses["EventShapes"]["EEC" ][7.7 ] = ["/PLUTO_1981_I156315/d01-x01-y01"]
analyses["EventShapes"]["EEC" ][9.4 ] = ["/PLUTO_1981_I156315/d01-x01-y02"]
analyses["EventShapes"]["EEC" ][12.0] = ["/PLUTO_1981_I156315/d01-x01-y03"]
analyses["EventShapes"]["EEC" ][13.0] = ["/PLUTO_1981_I156315/d01-x01-y04"]
analyses["EventShapes"]["EEC" ][14.0] = ["/TASSO_1987_I248660/d01-x01-y01","/JADE_1984_I202784/d01-x01-y01"]
analyses["EventShapes"]["EEC" ][17.0] = ["/PLUTO_1981_I156315/d01-x01-y05"]
analyses["EventShapes"]["EEC" ][22.0] = ["/TASSO_1987_I248660/d02-x01-y01","/JADE_1984_I202784/d01-x01-y02",
"/CELLO_1982_I12010/d01-x01-y01","/PLUTO_1981_I156315/d01-x01-y06"]
analyses["EventShapes"]["EEC" ][27.6] = ["/PLUTO_1981_I156315/d01-x01-y07"]
analyses["EventShapes"]["EEC" ][29.0] = ["/MAC_1985_I202924/d01-x01-y01","/MAC_1985_I202924/d01-x01-y02"]
analyses["EventShapes"]["EEC" ][30.8] = ["/PLUTO_1981_I156315/d01-x01-y08"]
analyses["EventShapes"]["EEC" ][34.0] = ["/JADE_1984_I202784/d01-x01-y03","/CELLO_1982_I12010/d01-x01-y02"]
analyses["EventShapes"]["EEC" ][34.6] = ["/PLUTO_1985_I215869/d01-x01-y01"]
analyses["EventShapes"]["EEC" ][34.8] = ["/TASSO_1987_I248660/d03-x01-y01"]
analyses["EventShapes"]["EEC" ][43.5] = ["/TASSO_1987_I248660/d04-x01-y01"]
analyses["EventShapes"]["EEC" ][53.3] = ["/TOPAZ_1989_I279575/d01-x01-y01","/TOPAZ_1989_I279575/d01-x01-y02"]
analyses["EventShapes"]["EEC" ][91.2] = ["/DELPHI_1996_S3430090/d33-x01-y01"]
analyses["EventShapes"]["EEC" ][59.5] = ["/TOPAZ_1989_I279575/d02-x01-y01","/TOPAZ_1989_I279575/d02-x01-y02"]
# AEEC
analyses["EventShapes"]["AEEC"][8.65] = ["/PLUTO_1981_I156315/d04-x01-y01"]
analyses["EventShapes"]["AEEC"][14.0] = ["/JADE_1984_I202784/d02-x01-y01"]
analyses["EventShapes"]["AEEC"][22.0] = ["/JADE_1984_I202784/d02-x01-y02","/CELLO_1982_I12010/d03-x01-y01"]
analyses["EventShapes"]["AEEC"][29.0] = ["/MAC_1985_I202924/d01-x01-y03"]
analyses["EventShapes"]["AEEC"][30.8] = ["/PLUTO_1981_I156315/d05-x01-y01"]
analyses["EventShapes"]["AEEC"][34.0] = ["/JADE_1984_I202784/d02-x01-y03","/CELLO_1982_I12010/d03-x01-y02"]
analyses["EventShapes"]["AEEC"][53.3] = ["/TOPAZ_1989_I279575/d01-x01-y03"]
analyses["EventShapes"]["AEEC"][59.5] = ["/TOPAZ_1989_I279575/d02-x01-y03"]
analyses["EventShapes"]["AEEC"][91.2] = ["/DELPHI_1996_S3430090/d34-x01-y01"]
# sphericity based
analyses["EventShapes"]["S"][12.0 ] = ["/TASSO_1980_I153511/d01-x01-y01"]
analyses["EventShapes"]["S"][14.0 ] = ["/TASSO_1990_S2148048/d06-x01-y01"]
analyses["EventShapes"]["S"][22.0 ] = ["/TASSO_1990_S2148048/d06-x01-y02"]
analyses["EventShapes"]["S"][29.0 ] = ["/HRS_1985_I201482/d01-x01-y01"]
analyses["EventShapes"]["S"][30.8 ] = ["/TASSO_1980_I153511/d02-x01-y01"]
analyses["EventShapes"]["S"][35.0 ] = ["/TASSO_1990_S2148048/d06-x01-y03","/TASSO_1988_I263859/d01-x01-y01"]
analyses["EventShapes"]["S"][44.0 ] = ["/TASSO_1990_S2148048/d06-x01-y04"]
analyses["EventShapes"]["S"][45.0 ] = ["/DELPHI_2003_I620250/d04-x01-y01"]
analyses["EventShapes"]["S"][55.2 ] = ["/AMY_1990_I283337/d16-x01-y01"]
analyses["EventShapes"]["S"][66.0 ] = ["/DELPHI_2003_I620250/d04-x01-y02"]
analyses["EventShapes"]["S"][76.0 ] = ["/DELPHI_2003_I620250/d04-x01-y03"]
analyses["EventShapes"]["S"][91.2 ] = ["/ALEPH_2004_S5765862/d141-x01-y01","/DELPHI_1996_S3430090/d15-x01-y01",
"/ALEPH_1996_S3486095/d01-x01-y01","/OPAL_2004_S6132243/d10-x01-y01"]
analyses["EventShapes"]["S"][133.0] = ["/ALEPH_2004_S5765862/d142-x01-y01","/OPAL_2004_S6132243/d10-x01-y02"]
analyses["EventShapes"]["S"][161.0] = ["/ALEPH_2004_S5765862/d143-x01-y01"]
analyses["EventShapes"]["S"][172.0] = ["/ALEPH_2004_S5765862/d144-x01-y01"]
analyses["EventShapes"]["S"][177.0] = ["/OPAL_2004_S6132243/d10-x01-y03"]
analyses["EventShapes"]["S"][183.0] = ["/DELPHI_2003_I620250/d66-x01-y01","/ALEPH_2004_S5765862/d145-x01-y01"]
analyses["EventShapes"]["S"][189.0] = ["/DELPHI_2003_I620250/d66-x01-y02","/ALEPH_2004_S5765862/d146-x01-y01"]
analyses["EventShapes"]["S"][192.0] = ["/DELPHI_2003_I620250/d66-x01-y03"]
analyses["EventShapes"]["S"][196.0] = ["/DELPHI_2003_I620250/d66-x01-y04"]
analyses["EventShapes"]["S"][197.0] = ["/OPAL_2004_S6132243/d10-x01-y04"]
analyses["EventShapes"]["S"][200.0] = ["/DELPHI_2003_I620250/d67-x01-y01","/ALEPH_2004_S5765862/d147-x01-y01"]
analyses["EventShapes"]["S"][202.0] = ["/DELPHI_2003_I620250/d67-x01-y02"]
analyses["EventShapes"]["S"][205.0] = ["/DELPHI_2003_I620250/d67-x01-y03"]
analyses["EventShapes"]["S"][206.0] = ["/ALEPH_2004_S5765862/d148-x01-y01"]
analyses["EventShapes"]["S"][207.0] = ["/DELPHI_2003_I620250/d67-x01-y04"]
analyses["EventShapes"]["P"][45.0 ] = ["/DELPHI_2003_I620250/d05-x01-y01"]
analyses["EventShapes"]["P"][66.0 ] = ["/DELPHI_2003_I620250/d05-x01-y02"]
analyses["EventShapes"]["P"][76.0 ] = ["/DELPHI_2003_I620250/d05-x01-y03"]
analyses["EventShapes"]["P"][91.2 ] = ["/DELPHI_1996_S3430090/d17-x01-y01"]
analyses["EventShapes"]["P"][133.0] = ["/ALEPH_2004_S5765862/d126-x01-y01"]
analyses["EventShapes"]["P"][161.0] = ["/ALEPH_2004_S5765862/d127-x01-y01"]
analyses["EventShapes"]["P"][172.0] = ["/ALEPH_2004_S5765862/d128-x01-y01"]
analyses["EventShapes"]["P"][183.0] = ["/DELPHI_2003_I620250/d68-x01-y01","/ALEPH_2004_S5765862/d129-x01-y01"]
analyses["EventShapes"]["P"][189.0] = ["/DELPHI_2003_I620250/d68-x01-y02","/ALEPH_2004_S5765862/d130-x01-y01"]
analyses["EventShapes"]["P"][192.0] = ["/DELPHI_2003_I620250/d68-x01-y03"]
analyses["EventShapes"]["P"][196.0] = ["/DELPHI_2003_I620250/d68-x01-y04"]
analyses["EventShapes"]["P"][200.0] = ["/DELPHI_2003_I620250/d69-x01-y01","/ALEPH_2004_S5765862/d131-x01-y01"]
analyses["EventShapes"]["P"][202.0] = ["/DELPHI_2003_I620250/d69-x01-y02"]
analyses["EventShapes"]["P"][205.0] = ["/DELPHI_2003_I620250/d69-x01-y03"]
analyses["EventShapes"]["P"][206.0] = ["/ALEPH_2004_S5765862/d132-x01-y01"]
analyses["EventShapes"]["P"][207.0] = ["/DELPHI_2003_I620250/d69-x01-y04"]
analyses["EventShapes"]["A"][12.0 ] = ["/TASSO_1980_I153511/d03-x01-y01"]
analyses["EventShapes"]["A"][14.0 ] = ["/TASSO_1990_S2148048/d07-x01-y01"]
analyses["EventShapes"]["A"][22.0 ] = ["/TASSO_1990_S2148048/d07-x01-y02","/HRS_1985_I201482/d06-x01-y01"]
analyses["EventShapes"]["A"][30.8 ] = ["/TASSO_1980_I153511/d04-x01-y01"]
analyses["EventShapes"]["A"][35.0 ] = ["/TASSO_1990_S2148048/d07-x01-y03","/TASSO_1988_I263859/d02-x01-y01"]
analyses["EventShapes"]["A"][44.0 ] = ["/TASSO_1990_S2148048/d07-x01-y04"]
analyses["EventShapes"]["A"][55.2 ] = ["/AMY_1990_I283337/d17-x01-y01"]
analyses["EventShapes"]["A"][91.2 ] = ["/ALEPH_2004_S5765862/d118-x01-y01","/DELPHI_1996_S3430090/d16-x01-y01",
"/ALEPH_1996_S3486095/d02-x01-y01","/OPAL_2004_S6132243/d09-x01-y01"]
analyses["EventShapes"]["A"][133.0] = ["/ALEPH_2004_S5765862/d119-x01-y01","/OPAL_2004_S6132243/d09-x01-y02"]
analyses["EventShapes"]["A"][161.0] = ["/ALEPH_2004_S5765862/d120-x01-y01"]
analyses["EventShapes"]["A"][172.0] = ["/ALEPH_2004_S5765862/d121-x01-y01"]
analyses["EventShapes"]["A"][177.0] = ["/OPAL_2004_S6132243/d09-x01-y03"]
analyses["EventShapes"]["A"][183.0] = ["/DELPHI_2003_I620250/d70-x01-y01","/ALEPH_2004_S5765862/d122-x01-y01"]
analyses["EventShapes"]["A"][189.0] = ["/DELPHI_2003_I620250/d70-x01-y02","/ALEPH_2004_S5765862/d123-x01-y01"]
analyses["EventShapes"]["A"][192.0] = ["/DELPHI_2003_I620250/d70-x01-y03"]
analyses["EventShapes"]["A"][196.0] = ["/DELPHI_2003_I620250/d70-x01-y04"]
analyses["EventShapes"]["A"][197.0] = ["/OPAL_2004_S6132243/d09-x01-y04"]
analyses["EventShapes"]["A"][200.0] = ["/DELPHI_2003_I620250/d71-x01-y01","/ALEPH_2004_S5765862/d124-x01-y01"]
analyses["EventShapes"]["A"][202.0] = ["/DELPHI_2003_I620250/d71-x01-y02"]
analyses["EventShapes"]["A"][205.0] = ["/DELPHI_2003_I620250/d71-x01-y03"]
analyses["EventShapes"]["A"][206.0] = ["/ALEPH_2004_S5765862/d125-x01-y01"]
analyses["EventShapes"]["A"][207.0] = ["/DELPHI_2003_I620250/d71-x01-y04"]
# other
analyses["EventShapes"]["Qx" ][55.2] = ["/AMY_1990_I283337/d18-x01-y01"]
analyses["EventShapes"]["Q21"][55.2] = ["/AMY_1990_I283337/d19-x01-y01"]
analyses["QED"] = ["/ALEPH_1996_S3196992/d03-x01-y01","/ALEPH_1996_S3196992/d04-x01-y01",
"/ALEPH_1996_S3196992/d01-x01-y01","/ALEPH_1996_S3196992/d02-x01-y01",
"/ALEPH_1996_S3196992/d05-x01-y01","/ALEPH_1996_S3196992/d06-x01-y01",
"/ALEPH_1996_S3196992/d07-x01-y01","/ALEPH_1996_S3196992/d08-x01-y01",
"/OPAL_1993_S2692198/d01-x01-y01","/OPAL_1993_S2692198/d02-x01-y01",
"/OPAL_1993_S2692198/d03-x01-y01","/OPAL_1993_S2692198/d03-x01-y02",
"/OPAL_1993_S2692198/d03-x01-y03","/OPAL_1993_S2692198/d03-x01-y04",
"/OPAL_1993_S2692198/d04-x01-y01","/OPAL_1993_S2692198/d04-x01-y02",
"/OPAL_1993_S2692198/d04-x01-y03","/OPAL_1993_S2692198/d04-x01-y04",]
# tau decays
# 2 body
analyses["TauDecays"]["KK" ]["data"] = ["/BABAR_2018_I1679886/d01-x01-y01"]
analyses["TauDecays"]["KK" ]["MC" ] = ["/MC_TAU_Decay/h_2B_m2KK","/MC_TAU_Decay/h_2B_mKK"]
analyses["TauDecays"]["Kpi" ]["data"] = ["/BELLE_2007_I753243/d01-x01-y01"]
analyses["TauDecays"]["Kpi" ]["MC" ] = ["/MC_TAU_Decay/h_2B_m2KpiA","/MC_TAU_Decay/h_2B_m2KpiB",
"/MC_TAU_Decay/h_2B_mKpiA","/MC_TAU_Decay/h_2B_mKpiB"]
analyses["TauDecays"]["2pi" ]["data"] = ["/BELLE_2008_I786560/d01-x01-y01","/ALEPH_2014_I1267648/d01-x01-y01",
"/CLEO_1999_I508944/d01-x01-y01"]
analyses["TauDecays"]["2pi" ]["MC" ] = ["/MC_TAU_Decay/h_2B_m2pipi","/MC_TAU_Decay/h_2B_mpipi"]
analyses["TauDecays"]["3pi" ]["data"] = ["/BELLE_2010_I841618/d01-x01-y01","/BABAR_2007_S7266081/d01-x01-y01",
"/BABAR_2007_S7266081/d02-x01-y01","/BABAR_2007_S7266081/d11-x01-y01",
"/ALEPH_2014_I1267648/d02-x01-y01","/ALEPH_2014_I1267648/d04-x01-y01"]
analyses["TauDecays"]["3pi" ]["MC" ] = ["/MC_TAU_Decay/h_3B_pi0pi0pim_1","/MC_TAU_Decay/h_3B_pi0pi0pim_2","/MC_TAU_Decay/h_3B_pi0pi0pim_3",
"/MC_TAU_Decay/h_3B_pippimpim_1","/MC_TAU_Decay/h_3B_pippimpim_2","/MC_TAU_Decay/h_3B_pippimpim_3"]
analyses["TauDecays"]["Kpipi"]["data"] = ["/BELLE_2010_I841618/d02-x01-y01" ,"/BABAR_2007_S7266081/d03-x01-y01",
"/BABAR_2007_S7266081/d04-x01-y01","/BABAR_2007_S7266081/d05-x01-y01",
"/BABAR_2007_S7266081/d12-x01-y01"]
analyses["TauDecays"]["Kpipi"]["MC" ] = ["/MC_TAU_Decay/h_3B_pi0pi0km_1","/MC_TAU_Decay/h_3B_pi0pi0km_2","/MC_TAU_Decay/h_3B_pi0pi0km_3",
"/MC_TAU_Decay/h_3B_pimk0pi0_1","/MC_TAU_Decay/h_3B_pimk0pi0_2","/MC_TAU_Decay/h_3B_pimk0pi0_3",
"/MC_TAU_Decay/h_3B_pimk0pi0_4"]
analyses["TauDecays"]["KKpi" ]["data"] = ["/BELLE_2010_I841618/d03-x01-y01","/BABAR_2007_S7266081/d06-x01-y01",
"/BABAR_2007_S7266081/d07-x01-y01","/BABAR_2007_S7266081/d08-x01-y01",
"/BABAR_2007_S7266081/d13-x01-y01"]
analyses["TauDecays"]["KKpi" ]["MC" ] = ["/MC_TAU_Decay/h_3B_klpimkl_1","/MC_TAU_Decay/h_3B_klpimkl_2","/MC_TAU_Decay/h_3B_klpimkl_3",
"/MC_TAU_Decay/h_3B_kmpi0k0_1","/MC_TAU_Decay/h_3B_kmpi0k0_2","/MC_TAU_Decay/h_3B_kmpi0k0_3",
"/MC_TAU_Decay/h_3B_kmpi0k0_4","/MC_TAU_Decay/h_3B_kmpimkp_1","/MC_TAU_Decay/h_3B_kmpimkp_2",
"/MC_TAU_Decay/h_3B_kmpimkp_3","/MC_TAU_Decay/h_3B_kmpimkp_4","/MC_TAU_Decay/h_3B_kmpimpip_1",
"/MC_TAU_Decay/h_3B_kmpimpip_2","/MC_TAU_Decay/h_3B_kmpimpip_3","/MC_TAU_Decay/h_3B_kmpimpip_4",
"/MC_TAU_Decay/h_3B_kspimkl_1","/MC_TAU_Decay/h_3B_kspimkl_2","/MC_TAU_Decay/h_3B_kspimkl_3",
"/MC_TAU_Decay/h_3B_kspimkl_4","/MC_TAU_Decay/h_3B_kspimks_1","/MC_TAU_Decay/h_3B_kspimks_2",
"/MC_TAU_Decay/h_3B_kspimks_3"]
analyses["TauDecays"]["3K" ]["data"] = ["/BELLE_2010_I841618/d04-x01-y01","/BABAR_2007_S7266081/d09-x01-y01",
"/BABAR_2007_S7266081/d10-x01-y01","/BABAR_2007_S7266081/d14-x01-y01"]
analyses["TauDecays"]["Keta"]["MC" ] = ["/MC_TAU_Decay/h_2B_m2Keta","/MC_TAU_Decay/h_2B_mKeta"]
analyses["TauDecays"]["lnu" ]["MC" ] = ["/MC_TAU_Decay/h_2B_m2enu","/MC_TAU_Decay/h_2B_m2munu",
"/MC_TAU_Decay/h_2B_menu","/MC_TAU_Decay/h_2B_mmunu"]
analyses["TauDecays"]["2pieta"]["MC" ] = ["/MC_TAU_Decay/h_3B_pimpi0eta_1","/MC_TAU_Decay/h_3B_pimpi0eta_2",
"/MC_TAU_Decay/h_3B_pimpi0eta_3","/MC_TAU_Decay/h_3B_pimpi0eta_4"]
analyses["TauDecays"]["2pigamma"]["MC" ] = ["/MC_TAU_Decay/h_3B_pimpi0gamma_1","/MC_TAU_Decay/h_3B_pimpi0gamma_2",
"/MC_TAU_Decay/h_3B_pimpi0gamma_3","/MC_TAU_Decay/h_3B_pimpi0gamma_4"]
analyses["TauDecays"]["4pi"]["data"] = ["/ALEPH_2014_I1267648/d03-x01-y01","/ALEPH_2014_I1267648/d05-x01-y01"]
analyses["TauDecays"]["4pi"]["MC" ] = ["/MC_TAU_Decay/h_4B_pipi_1","/MC_TAU_Decay/h_4B_pipi_2",
"/MC_TAU_Decay/h_4B_pipi_3","/MC_TAU_Decay/h_4B_pipi_4",
"/MC_TAU_Decay/h_4B_pipi_5","/MC_TAU_Decay/h_4B_pipi_6",
"/MC_TAU_Decay/h_4B_pipipi_1","/MC_TAU_Decay/h_4B_pipipi_2",
"/MC_TAU_Decay/h_4B_pipipi_3","/MC_TAU_Decay/h_4B_pipipi_4",
"/MC_TAU_Decay/h_4B_pipipi_5","/MC_TAU_Decay/h_4B_pipipipi_1",
"/MC_TAU_Decay/h_4B_pipipipi_2"]
analyses["TauDecays"]["5pi"]["MC" ] = ["/MC_TAU_Decay/h_5B_pipi1_1","/MC_TAU_Decay/h_5B_pipi1_2",
"/MC_TAU_Decay/h_5B_pipi1_3","/MC_TAU_Decay/h_5B_pipi1_4",
"/MC_TAU_Decay/h_5B_pipi1_5","/MC_TAU_Decay/h_5B_pipi2_1",
"/MC_TAU_Decay/h_5B_pipi2_2","/MC_TAU_Decay/h_5B_pipi3_1",
"/MC_TAU_Decay/h_5B_pipi3_2","/MC_TAU_Decay/h_5B_pipi3_3",
"/MC_TAU_Decay/h_5B_pipipi1_1","/MC_TAU_Decay/h_5B_pipipi1_2",
"/MC_TAU_Decay/h_5B_pipipi1_3","/MC_TAU_Decay/h_5B_pipipi1_4",
"/MC_TAU_Decay/h_5B_pipipi1_5","/MC_TAU_Decay/h_5B_pipipi2_1",
"/MC_TAU_Decay/h_5B_pipipi2_2","/MC_TAU_Decay/h_5B_pipipi3_1",
"/MC_TAU_Decay/h_5B_pipipi3_2","/MC_TAU_Decay/h_5B_pipipi3_3",
"/MC_TAU_Decay/h_5B_pipipipi1_1","/MC_TAU_Decay/h_5B_pipipipi1_2",
"/MC_TAU_Decay/h_5B_pipipipi1_3","/MC_TAU_Decay/h_5B_pipipipi2_1",
"/MC_TAU_Decay/h_5B_pipipipi2_2","/MC_TAU_Decay/h_5B_pipipipi3_1",
"/MC_TAU_Decay/h_5B_pipipipi3_2","/MC_TAU_Decay/h_5B_q1",
"/MC_TAU_Decay/h_5B_q2","/MC_TAU_Decay/h_5B_q3"]
analyses["EventShapes"]["2jet_jade"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d07-x01-y01"]
analyses["EventShapes"]["3jet_jade"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d07-x01-y02"]
analyses["EventShapes"]["4jet_jade"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d07-x01-y03"]
analyses["EventShapes"]["5jet_jade"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d07-x01-y04"]
analyses["EventShapes"]["6jet_jade"][35.0 ] = ["/JADE_OPAL_2000_S4300807/d07-x01-y05"]
analyses["EventShapes"]["2jet_jade"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d08-x01-y01"]
analyses["EventShapes"]["3jet_jade"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d08-x01-y02"]
analyses["EventShapes"]["4jet_jade"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d08-x01-y03"]
analyses["EventShapes"]["5jet_jade"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d08-x01-y04"]
analyses["EventShapes"]["6jet_jade"][44.0 ] = ["/JADE_OPAL_2000_S4300807/d08-x01-y05"]
analyses["EventShapes"]["2jet_jade"][91.2 ] = ["/JADE_OPAL_2000_S4300807/d09-x01-y01"]
analyses["EventShapes"]["3jet_jade"][91.2 ] = ["/JADE_OPAL_2000_S4300807/d09-x01-y02"]
analyses["EventShapes"]["4jet_jade"][91.2 ] = ["/JADE_OPAL_2000_S4300807/d09-x01-y03"]
analyses["EventShapes"]["5jet_jade"][91.2 ] = ["/JADE_OPAL_2000_S4300807/d09-x01-y04"]
analyses["EventShapes"]["6jet_jade"][91.2 ] = ["/JADE_OPAL_2000_S4300807/d09-x01-y05"]
analyses["EventShapes"]["2jet_jade"][133.0] = ["/JADE_OPAL_2000_S4300807/d10-x01-y01"]
analyses["EventShapes"]["3jet_jade"][133.0] = ["/JADE_OPAL_2000_S4300807/d10-x01-y02"]
analyses["EventShapes"]["4jet_jade"][133.0] = ["/JADE_OPAL_2000_S4300807/d10-x01-y03"]
analyses["EventShapes"]["5jet_jade"][133.0] = ["/JADE_OPAL_2000_S4300807/d10-x01-y04"]
analyses["EventShapes"]["6jet_jade"][133.0] = ["/JADE_OPAL_2000_S4300807/d10-x01-y05"]
analyses["EventShapes"]["2jet_jade"][161.0] = ["/JADE_OPAL_2000_S4300807/d11-x01-y01"]
analyses["EventShapes"]["3jet_jade"][161.0] = ["/JADE_OPAL_2000_S4300807/d11-x01-y02"]
analyses["EventShapes"]["4jet_jade"][161.0] = ["/JADE_OPAL_2000_S4300807/d11-x01-y03"]
analyses["EventShapes"]["5jet_jade"][161.0] = ["/JADE_OPAL_2000_S4300807/d11-x01-y04"]
analyses["EventShapes"]["6jet_jade"][161.0] = ["/JADE_OPAL_2000_S4300807/d11-x01-y05"]
analyses["EventShapes"]["2jet_jade"][172.0] = ["/JADE_OPAL_2000_S4300807/d12-x01-y01"]
analyses["EventShapes"]["3jet_jade"][172.0] = ["/JADE_OPAL_2000_S4300807/d12-x01-y02"]
analyses["EventShapes"]["4jet_jade"][172.0] = ["/JADE_OPAL_2000_S4300807/d12-x01-y03"]
analyses["EventShapes"]["5jet_jade"][172.0] = ["/JADE_OPAL_2000_S4300807/d12-x01-y04"]
analyses["EventShapes"]["6jet_jade"][172.0] = ["/JADE_OPAL_2000_S4300807/d12-x01-y05"]
analyses["EventShapes"]["2jet_jade"][183.0] = ["/JADE_OPAL_2000_S4300807/d13-x01-y01"]
analyses["EventShapes"]["3jet_jade"][183.0] = ["/JADE_OPAL_2000_S4300807/d13-x01-y02"]
analyses["EventShapes"]["4jet_jade"][183.0] = ["/JADE_OPAL_2000_S4300807/d13-x01-y03"]
analyses["EventShapes"]["5jet_jade"][183.0] = ["/JADE_OPAL_2000_S4300807/d13-x01-y04"]
analyses["EventShapes"]["6jet_jade"][183.0] = ["/JADE_OPAL_2000_S4300807/d13-x01-y05"]
analyses["EventShapes"]["2jet_jade"][189.0] = ["/JADE_OPAL_2000_S4300807/d14-x01-y01"]
analyses["EventShapes"]["3jet_jade"][189.0] = ["/JADE_OPAL_2000_S4300807/d14-x01-y02"]
analyses["EventShapes"]["4jet_jade"][189.0] = ["/JADE_OPAL_2000_S4300807/d14-x01-y03"]
analyses["EventShapes"]["5jet_jade"][189.0] = ["/JADE_OPAL_2000_S4300807/d14-x01-y04"]
analyses["EventShapes"]["6jet_jade"][189.0] = ["/JADE_OPAL_2000_S4300807/d14-x01-y05"]
figures=glob.glob("%s/*/*.dat" % directory)
used=[]
plotOutput="""<div style="float:left; font-size:smaller; font-weight:bold;">
<a href="#{name}">&#9875;</a><a href="{dat}">&#8984</a> {name}: {energy} GeV<br/>
<a name="{name}"><a href="{pdf}">
<img src="{png}">
</a></a>
</div>"""
plotOutput2="""<div style="float:left; font-size:smaller; font-weight:bold;">
<a href="#{name}">&#9875;</a><a href="{dat}">&#8984</a> {name}<br/>
<a name="{name}"><a href="{pdf}">
<img src="{png}">
</a></a>
</div>"""
def writePlots(plots,output) :
global figures
output.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
for energy in sorted(plots.keys()) :
try :
float(energy)
except:
continue
for name in sorted(plots[energy]) :
dat=name[1:] +".dat"
figName = ("%s/%s" %(directory,dat))
if(figName not in figures) :
continue
used.append(figName)
pdf=name[1:] +".pdf"
png=name[1:] +".png"
output.write(plotOutput.format(name=name[1:],pdf=pdf,png=png,dat=dat,energy=energy))
output.write("\n")
output.write("</div>")
def writePlots2(plots,output) :
global figures
output.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
for name in sorted(plots) :
dat=name[1:] +".dat"
figName = ("%s/%s" %(directory,dat))
tempName=figName.replace(".dat","")
found = False
names=[]
for name in figures :
if(tempName+"_" in name or tempName+".dat"==name) :
found=True
names.append(name)
if(not found) : continue
for name in names :
used.append(name)
trim = name[:-4].replace("%s/"%directory,"")
pdf=trim+".pdf"
png=trim+".png"
dat=trim+".dat"
output.write(plotOutput2.format(name=trim,pdf=pdf,png=png,dat=dat))
output.write("\n")
output.write("</div>")
def writeMisc(index) :
global figures,used
for val in used :
if(val in figures) :
del figures[figures.index(val)]
index.write("<li> <a href=\"misc.html\">Other Plots</a>\n")
print 'Unused figures',len(figures)
for val in figures:
print val
misc=open(os.path.join(directory,"misc.html"),'w')
misc.write(header.format(title="Comparisions of Herwig7 and Miscellaneous $e^+e^-$ Data"))
misc.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
for val in sorted(figures) :
name=val.replace("Rivet-EE","").replace(".dat","")
dat=name[1:] +".dat"
figName = ("%s/%s" %(directory,dat))
if(figName not in figures) : continue
del figures[figures.index(figName)]
pdf=name[1:] +".pdf"
png=name[1:] +".png"
misc.write(plotOutput.format(name=name[1:],pdf=pdf,png=png,dat=dat,energy=""))
misc.write("\n")
misc.write("</div>")
# footer
misc.write("</body>\n</html>")
misc.close()
def writeQED(index) :
index.write("<li> <a href=\"qed.html\">QED Radiation</a>\n")
qed=open(os.path.join(directory,"qed.html"),'w')
qed.write(header.format(title="Comparisions of Herwig7 and Photon Radiation Data"))
writePlots2(analyses["QED"],qed)
# footer
qed.write("</body>\n</html>")
qed.close()
def writeTauDecays(index) :
index.write("<li> <a href=\"taus.html\">Tau Decays</a>\n")
decays=open(os.path.join(directory,"taus.html"),'w')
decays.write(header.format(title="Comparisions of Herwig7 and Tau Decay Data"))
names = { "2pi" : "$\\tau\\to\\nu_\\tau\\pi^-\\pi^0$",
"Kpi" : "$\\tau\\to\\nu_\\tau K\\pi$",
"KK" : "$\\tau\\to\\nu_\\tau KK$",
"lnu" : "$\\tau\\to\\nu_\\tau \\ell\\nu$",
"Keta" : "$\\tau\\to\\nu_\\tau K\\eta$",
"3pi" : "$\\tau\\to\\nu_\\tau\\pi\\pi\\pi$",
"Kpipi" : "$\\tau\\to\\nu_\\tau K\\pi\\pi$",
"KKpi" : "$\\tau\\to\\nu_\\tau KK\\pi$",
"3K" : "$\\tau\\to\\nu_\\tau K^+K^-K^-$",
"2pieta" : "$\\tau\\to\\nu_\\tau\\eta\\pi\\pi$",
"2pigamma" : "$\\tau\\to\\nu_\\tau\\gamma\\pi\\pi$",
"4pi" : "$\\tau\\to\\nu_\\tau4\\pi$",
"5pi" : "$\\tau\\to\\nu_\\tau5\\pi$",}
index.write("<ul>\n")
# three body
decays.write("<h2 id=\"3body\">Three Body</h2>\n")
index.write("<li> <a href=\"taus.html#3body\">Three Body:</a>\n")
for obs in ["2pi", "Kpi", "KK", "lnu", "Keta" ] :
decays.write("<h3 id=\"%s\">%s</h3>\n" % (obs,names[obs]))
index.write("<a href=\"taus.html#%s\">%s,<a/>\n" % (obs,names[obs]))
for val in ["data","MC"] :
if(val not in analyses["TauDecays"][obs] or len(analyses["TauDecays"][obs][val])==0) : continue
if(val=="data") : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Data"))
else : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Monte Carlo"))
writePlots2(analyses["TauDecays"][obs][val],decays)
# four body
decays.write("<h2 id=\"4body\">Four Body</h2>\n")
index.write("<li> <a href=\"taus.html#4body\">Four Body:</a>\n")
for obs in ["3pi","Kpipi","KKpi","3K","2pieta","2pigamma" ] :
decays.write("<h3 id=\"%s\">%s</h3>\n" % (obs,names[obs]))
index.write("<a href=\"taus.html#%s\">%s,<a/>\n" % (obs,names[obs]))
for val in ["data","MC"] :
if(val not in analyses["TauDecays"][obs] or len(analyses["TauDecays"][obs][val])==0) : continue
if(val=="data") : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Data"))
else : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Monte Carlo"))
writePlots2(analyses["TauDecays"][obs][val],decays)
# five body
decays.write("<h2 id=\"5body\">Five Body</h2>\n")
index.write("<li> <a href=\"taus.html#5body\">FIve Body:</a>")
for obs in ["4pi"] :
decays.write("<h3 id=\"%s\">%s</h3>\n" % (obs,names[obs]))
index.write("<a href=\"taus.html#%s\">%s,<a/>\n" % (obs,names[obs]))
for val in ["data","MC"] :
if(val not in analyses["TauDecays"][obs] or len(analyses["TauDecays"][obs][val])==0) : continue
if(val=="data") : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Data"))
else : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Monte Carlo"))
writePlots2(analyses["TauDecays"][obs][val],decays)
# six body
decays.write("<h2 id=\"6body\">Six Body</h2>\n")
index.write("<li> <a href=\"taus.html#6body\">Six Body:</a>")
for obs in ["5pi"] :
decays.write("<h3 id=\"%s\">%s</h3>\n" % (obs,names[obs]))
index.write("<a href=\"taus.html#%s\">%s,<a/>\n" % (obs,names[obs]))
for val in ["data","MC"] :
if(val not in analyses["TauDecays"][obs] or len(analyses["TauDecays"][obs][val])==0) : continue
if(val=="data") : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Data"))
else : decays.write("<h4 id=\"%s_%s\">%s</h4>\n" % (obs,val,"Monte Carlo"))
writePlots2(analyses["TauDecays"][obs][val],decays)
# footer
index.write("</ul>\n")
decays.write("</body>\n</html>")
decays.close()
def writeParticleDecays(particles,decays,index) :
for val in particles :
if val not in analyses["HadronDecays"] : continue
decays.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
index.write(" <a href=\"decays.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
if("Modes" in analyses["HadronDecays"][val] and len(analyses["HadronDecays"][val]["Modes"]) !=0) :
for mode,plots in analyses["HadronDecays"][val]["Modes"].iteritems() :
decays.write("<h5>Mode: %s</h5>\n" % mode)
if("data" in plots) :
decays.write("<h5>Data</h5>\n")
writePlots2(plots["data"],decays)
if("MC" in plots) :
decays.write("<h5>Monte Carlo</h5>\n")
writePlots2(plots["MC"],decays)
# multiplicity dist
if("DistChargedMult" in analyses["HadronDecays"][val] and
len(analyses["HadronDecays"][val]["DistChargedMult"]) !=0) :
decays.write("<h5>Charged Particle Multplicity Distribution</h5>\n")
if("data" in analyses["HadronDecays"][val]["DistChargedMult"]) :
decays.write("<h5>Data</h5>\n")
writePlots2(analyses["HadronDecays"][val]["DistChargedMult"]["data"],decays)
if("MC" in analyses["HadronDecays"][val]["DistChargedMult"]) :
decays.write("<h5>Monte Carlo</h5>\n")
writePlots2(analyses["HadronDecays"][val]["DistChargedMult"]["MC"],decays)
# multiplicities
if("Mult" in analyses["HadronDecays"][val] and
len(analyses["HadronDecays"][val]["Mult"]) !=0) :
for prod,plots in sorted(analyses["HadronDecays"][val]["Mult"].iteritems()):
if(len(plots)==0) : continue
decays.write("<h5>Multiplicity of %s</h5>\n" % particleNames[prod])
writePlots2(plots,decays)
# spectra
if("Spectrum" in analyses["HadronDecays"][val] and
len(analyses["HadronDecays"][val]["Spectrum"]) !=0) :
for prod,plots in sorted(analyses["HadronDecays"][val]["Spectrum"].iteritems()):
if(len(plots)==0) : continue
decays.write("<h5>Spectrum of %s</h5>\n" % particleNames[prod])
writePlots2(plots,decays)
def writeDecays(index) :
decays=open(os.path.join(directory,"decays.html"),'w')
decays.write(header.format(title="Comparisions of Herwig7 and Hadronic Decay Data"))
index.write("<li> <a href=\"decays.html\">Hadron Decays</a>\n")
index.write(" <ul>\n")
# mesons
decays.write("<h2 id=\"MESONS\">Meson</h2>\n")
# light
decays.write("<h3 id=\"m_light\">Light, Unflavoured</h3>\n")
index.write("<li><a href=\"decays.html#m_light\">Light unflavoured mesons:<a/>\n")
writeParticleDecays(mLight,decays,index)
# charm
decays.write("<h3 id=\"m_charm\">Charm Mesons</h3>\n")
index.write("<li><a href=\"decays.html#m_charm\">Charm mesons:<a/>\n")
writeParticleDecays(mCharm,decays,index)
# bottom
decays.write("<h3 id=\"m_charm\">Bottom Mesons</h3>\n")
index.write("<li><a href=\"decays.html#m_charm\">Bottom mesons:<a/>\n")
writeParticleDecays(mBottom,decays,index)
# charmonium
decays.write("<h3 id=\"m_ccbar\">Charmonium</h3>\n")
index.write("<li><a href=\"decays.html#m_ccbar\">Charmonium:<a/>\n")
writeParticleDecays(mccbar,decays,index)
# bottomonium
decays.write("<h3 id=\"m_bbbar\">Bottomonium</h3>\n")
index.write("<li><a href=\"decays.html#m_bbbar\">Bottomonium:<a/>\n")
writeParticleDecays(mbbbar,decays,index)
# hyperons
decays.write("<h3 id=\"b_strange\">Hyperons</h3>\n")
index.write("<li><a href=\"decays.html#b_strange\">Hyperons:<a/>\n")
writeParticleDecays(bStrange,decays,index)
# hyperons
decays.write("<h3 id=\"b_charm\">Charm Baryons</h3>\n")
index.write("<li><a href=\"decays.html#b_charm\">Charm Baryons:<a/>\n")
writeParticleDecays(bCharm,decays,index)
# footer
index.write(" </ul>\n")
decays.write("</body>\n</html>")
decays.close()
def writeMult(index) :
index.write("<li> <a href=\"mult.html\">Identified Particle Multiplicities</a>\n")
mult=open(os.path.join(directory,"mult.html"),'w')
mult.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Particle Multiplicities"))
# mesons
mult.write("<h2 id=\"MESONS\">Mesons</h2>\n")
mult.write("<h3 id=\"m_light\">Light, Unflavoured</h3>\n")
index.write("<ul>\n")
index.write("<li><a href=\"mult.html#m_light\">Light unflavoured mesons:<a/>\n")
# light
for val in mLight:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
mult.write("</div>\n")
index.write("<li><a href=\"mult.html#m_strange\">Strange mesons:<a/>\n")
mult.write("<h3 id=\"m_strange\">Strange</h3>\n")
# strange
for val in mStrange :
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
mult.write("</div>\n")
# charm
index.write("<li><a href=\"mult.html#m_charm\">Charm mesons:<a/>\n")
mult.write("<h3 id=\"m_charm\">Charm</h3>\n")
for val in mCharm:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
mult.write("</div>\n")
# bottom
mult.write("<h3 id=\"m_bottom\">Bottom</h3>\n")
index.write("<li><a href=\"mult.html#m_bottom\">Bottom mesons:<a/>\n")
for val in mBottom :
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# charmonium
index.write("<li><a href=\"mult.html#m_ccbar\">$c\\bar{c}$ mesons:<a/>\n")
mult.write("<h3 id=\"m_ccbar\">$c\\bar{c}$</h3>\n")
for val in mccbar :
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# bottomonium
index.write("<li><a href=\"mult.html#m_bbbar\">$b\\bar{b}$ mesons:<a/>\n")
mult.write("<h3 id=\"m_bbbar\">$b\\bar{b}$</h3>\n")
for val in mbbbar :
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# baryons
mult.write("<h2 id=\"BARYONS\">Baryons</h2>\n")
# light unflavoured
index.write("<li><a href=\"mult.html#b_light\">Light unflavoured baryons:<a/>\n")
mult.write("<h3 id=\"b_light\">Light, Unflavoured</h3>\n")
for val in bLight:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# hyperons
index.write("<li><a href=\"mult.html#b_strange\">Hyperons:<a/>\n")
mult.write("<h3 id=\"b_strange\">Hyperons</h3>\n")
for val in bStrange:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# charm baryons
index.write("<li><a href=\"mult.html#b_charm\">Charm:<a/>\n")
mult.write("<h3 id=\"b_charm\">Charm Baryons</h3>\n")
for val in bCharm:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# bottom
index.write("<li><a href=\"mult.html#b_bottom\">Bottom:<a/>\n")
mult.write("<h3 id=\"b_bottom\">Bottom Baryons</h3>\n")
for val in bBottom:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# other
index.write("<li><a href=\"mult.html#other\">Other:<a/>\n")
mult.write("<h3 id=\"other\">Other</h3>\n")
for val in ["321/2212"]:
if(val not in analyses["Multiplicity"] or len(analyses["Multiplicity"][val])==0 ) : continue
index.write(" <a href=\"mult.html#%s\">%s,<a/>\n" % (val,particleNames[val]))
mult.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (val,particleNames[val]))
writePlots(analyses["Multiplicity"][val],mult)
# footer
index.write(" </ul>\n")
mult.write("</body>\n</html>")
mult.close()
def writeSpectrum(particles,index,ident) :
latexNames = { "x" : "Scaled Momentum/Energy",
"xi" : "Log of Scaled Momentum/Energy",
"p" : "Momentum/Energy",
"Ratio" : "Ratios of particle multiplicities",
"Other" : "Other distributions" }
for pdgId in particles:
if(pdgId not in analyses["IdentifiedParticle"]) : continue
sumL = len(analyses["IdentifiedParticle"][pdgId]["x"])+len(analyses["IdentifiedParticle"][pdgId]["p"])+\
len(analyses["IdentifiedParticle"][pdgId]["xi"])+len(analyses["IdentifiedParticle"][pdgId]["Ratio"])\
+len(analyses["IdentifiedParticle"][pdgId]["Other"])
if(sumL==0) : continue
# lines in html
ident.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"%s\">%s</h4>\n" % (pdgId,particleNames[pdgId]))
index.write(" <a href=\"identified.html#%s\">%s,<a/>\n" % (pdgId,particleNames[pdgId]))
# plots
for val in ["x","p","xi","Ratio","Other"] :
if(len(analyses["IdentifiedParticle"][pdgId][val])==0) : continue
ident.write("<div style=\"float:none; overflow:auto; \">\n<h3 id=\"%s_%s\">%s</h3>\n" % (pdgId,val,latexNames[val]))
writePlots(analyses["IdentifiedParticle"][pdgId][val],ident)
ident.write("</div>\n")
# output the identified particle plots
def writeIdentified(index) :
ident=open(os.path.join(directory,"identified.html"),'w')
# header for page
ident.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Identified Particle Spectra"))
# line for index
index.write("<li> <a href=\"identified.html\">Identified Particle Spectra</a>\n")
index.write("<ul>\n")
# photons
ident.write("<h2 id=\"gamma\">Photons</h2>\n")
index.write("<li> <a href=\"identified.html#gamma\">Photons:<a/>\n")
writeSpectrum([22],index,ident)
ident.write("<h2 id=\"MESONS\">Mesons</h2>\n")
# Light unflavoured mesons
ident.write("<h3 id=\"m_light\">Light, Unflavoured</h3>\n")
index.write("<li><a href=\"identified.html#m_light\">Light unflavoured mesons:<a/>\n")
writeSpectrum(mLight,index,ident)
# Strange mesons
ident.write("<h3 id=\"m_strange\">Strange</h3>\n")
index.write("<li><a href=\"identified.html#m_strange\">Strange mesons:<a/>\n")
writeSpectrum(mStrange,index,ident)
# charm mesons
ident.write("<h3 id=\"m_charm\">Charm</h3>\n")
index.write("<li><a href=\"identified.html#m_charm\">Charm mesons:<a/>\n")
writeSpectrum(mCharm,index,ident)
# charmonium
ident.write("<h3 id=\"m_charm\">Charmonium</h3>\n")
index.write("<li><a href=\"identified.html#m_charm\">Charmonium:<a/>\n")
writeSpectrum(mccbar,index,ident)
# Baryons
ident.write("<h2 id=\"BARYONS\">Baryons</h2>\n")
# light baryons
ident.write("<h3 id=\"b_light\">Light, Unflavoured</h3>\n")
index.write("<li><a href=\"identified.html#b_light\">Light unflavoured baryons:<a/>\n")
writeSpectrum(bLight,index,ident)
# hyperons
ident.write("<h3 id=\"b_strange\">Hyperons</h3>\n")
index.write("<li><a href=\"identified.html#b_strange\">Hyperons:<a/>\n")
writeSpectrum(bStrange,index,ident)
# charm baryons
ident.write("<h3 id=\"b_charm\">Charm Baryons</h3>\n")
index.write("<li><a href=\"identified.html#b_charm\">Charm baryons:<a/>\n")
# loop over particles
writeSpectrum(bCharm,index,ident)
# other
ident.write("<h3 id=\"other\">Other</h3>\n")
index.write("<li><a href=\"identified.html#other\">Other:<a/>\n")
# loop over particles
writeSpectrum(["321/2212"],index,ident)
# bottom fragmentation
ident.write("<h2 id=\"b_frag\">Bottom Fragmentation Function</h2>\n")
index.write("<li><a href=\"identified.html#b_frag\">Bottom Fragmentation Function:<a/>\n")
for val in ["weak","lead","weak_mean","lead_mean"] :
if val=="weak" :
name="Weakly Decaying B hadron"
name2="Weakly Decaying"
elif val=="lead" :
name="Leading Decaying B hadron"
name2="Leading"
elif val=="weak_mean":
name="Weakly Decaying B hadron (average)"
name2="Weakly Decaying (average)"
elif val=="lead_mean" :
name="Leading Decaying B hadron (average)"
name2="Leading (average)"
ident.write("<div style=\"float:none; overflow:auto; \">\n<h3 id=\"%s\">%s</h3>\n" % (val,name))
index.write("<a href=\"identified.html#%s\">%s,<a/>\n" % (val,name2))
writePlots2(analyses["IdentifiedParticle"][511][val],ident)
ident.write("</div>\n")
# footer
index.write(" </ul>\n")
ident.write("</body>\n</html>")
ident.close()
def writeFlavour(index) :
flavour=open(os.path.join(directory,"flavour.html"),'w')
flavour.write(header.format(title="Comparisions of Herwig7 and Flavour Separated $e^+e^-$ Data"))
index.write("<li> <a href=\"flavour.html\">Flavour Separated</a>\n")
index.write(" <ul>\n")
# total multiplicity
flavour.write("<h2 id=\"mult\">Charged Particle Multiplicity</h2>\n")
index.write("<li> <a href=\"flavour.html#mult\">Total Charged Multiplicity: </a> \n")
titles={ 1 : "Light (uds)", 2 : "Light (udsc)", 4 : "Charm" , 5 : "Bottom", 41 : "Charm-Light difference", 51 : "Charm-bottom difference"}
lFormat="""<div style=\"float:none; overflow:auto; width:100%\">\n<{hlevel} id=\"{tag}\">{name}</{hlevel}>\n"""
for flav in [1,4,5,41,51] :
if(flav in analyses["Charged"]["TotalChargedMult"] and
len(analyses["Charged"]["TotalChargedMult"][flav])!=0) :
if(flav!=51) : index.write(" <a href=\"flavour.html#mult_%s\">%s,<a/>\n" % (flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#mult_%s\">%s.<a/>\n" % (flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h3",tag="mult_%s"%flav,name=titles[flav]))
writePlots(analyses["Charged"]["TotalChargedMult"][flav],flavour)
flavour.write("</div>\n")
# multiplicity dist
flavour.write("<h2 id=\"multdist\">Charged Particle Multiplicity Distribution</h2>\n")
index.write("<li> <a href=\"flavour.html#multdist\">Charged Particle Multiplicity Distribution</a>\n")
for flav in [1,2,4,5] :
if(flav in analyses["Charged"]["DistChargedMult"] and
len(analyses["Charged"]["DistChargedMult"][flav])!=0) :
if(flav!=5) : index.write(" <a href=\"flavour.html#multdist_%s\">%s,<a/>\n" % (flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#multdist_%s\">%s.<a/>\n" % (flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h3",tag="multdist_%s"%flav,name=titles[flav]))
writePlots(analyses["Charged"]["DistChargedMult"][flav],flavour)
flavour.write("</div>\n")
# event shapes
flavour.write("<h2 id=\"EVENT\">Event Shapes</h2>\n")
index.write("<li> <a href=\"flavour.html#event\">Event Shapes: </a> \n")
index.write("<ul>")
# thrust
eventShapes = {"T" : "Thrust" , "HeavyJetMass" : "Heavy Jet Mass", "BT" : "Total Jet Broadening",
"BW" : "Wide Jet Broadening", "C" : "C", "D" : "D"}
for obs in ["T", "HeavyJetMass","BT","BW","C","D"] :
flavour.write(lFormat.format(hlevel="h3",tag="event_%s"%obs,name=eventShapes[obs]))
index.write(" <li> <a href=\"flavour.html#event_%s\">%s:<a/>\n" % (obs,eventShapes[obs]))
for flav in [1,2,4,5] :
if(flav in analyses["EventShapesFlavour"][obs] and
len(analyses["EventShapesFlavour"][obs][flav])!=0) :
if(flav!=5) : index.write(" <a href=\"flavour.html#event_%s_%s\">%s,<a/>\n" % (obs,flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#event_%s_%s\">%s.<a/>\n" % (obs,flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h4",tag="event_%s_%s"%(obs,flav),name=titles[flav]))
writePlots(analyses["EventShapesFlavour"][obs][flav],flavour)
flavour.write("</div>\n")
flavour.write("</div>\n")
index.write("</ul>")
# spectrum
flavour.write("<h2 id=\"spectrum\">Charged Particle Spectra</h2>\n")
index.write("<li> <a href=\"flavour.html#spectrum\">Charged Particle Spectra: </a> \n")
for flav in [1,2,4,5] :
if(flav in analyses["Charged"]["ChargedSpectrum"] and
len(analyses["Charged"]["ChargedSpectrum"][flav])!=0) :
if(flav!=5) : index.write(" <a href=\"flavour.html#spectra_%s\">%s,<a/>\n" % (flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#spectra_%s\">%s.<a/>\n" % (flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h3",tag="spectra_%s"%flav,name=titles[flav]))
for obs in ["x","xi"] :
if obs== "x" : name="Scaled Momentum"
else : name="Log of the scaled Momentum"
flavour.write(lFormat.format(hlevel="h4",tag="spectra_%s_%s"% (flav,obs),name=name))
writePlots(analyses["Charged"]["ChargedSpectrum"][flav][obs],flavour)
flavour.write("</div>\n")
flavour.write("</div>\n")
# multiplicities
flavour.write("<h2 id=\"mults\">Identified Particle Multiplicities</h2>\n")
index.write("<li> <a href=\"flavour.html#mults\">Identified Particle Multiplicities: </a> \n")
for flav in [1,4,5,41,51] :
if(flav!=51) : index.write(" <a href=\"flavour.html#mults_%s\">%s,<a/>\n" % (flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#mults_%s\">%s.<a/>\n" % (flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h3",tag="mults_%s"%flav,name=titles[flav]))
for val in mLight+mStrange+bLight+bStrange+["321/2212"] :
if(val not in analyses["MultiplicityFlavour"] or
flav not in analyses["MultiplicityFlavour"][val] or
len(analyses["MultiplicityFlavour"][val][flav])==0) : continue
flavour.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"f_%s_%s\">%s</h4>\n" % (flav,val,particleNames[val]))
writePlots(analyses["MultiplicityFlavour"][val][flav],flavour)
flavour.write("</div>\n")
# identified particle specrtra
flavour.write("<h2 id=\"ident\">Identified Particle Spectra</h2>\n")
index.write("<li> <a href=\"flavour.html#ident\">Identified Particle Spectra: </a> \n")
titles[41] = "Ratio Charm to Light"
titles[51] = "Ratio Bottom to Light"
obsName = { "x" : "Scaled Momentum",
"xi" : "Log of Scaled Momentum",
"Ratio" : "Ratios of Particle Multiplicities",
"Other" : "Other Distributions" }
for flav in [1,4,5,41,51] :
if(flav!=51) : index.write(" <a href=\"flavour.html#identf_%s\">%s,<a/>\n" % (flav,titles[flav]) )
else : index.write(" <a href=\"flavour.html#identf_%s\">%s.<a/>\n" % (flav,titles[flav]) )
flavour.write(lFormat.format(hlevel="h3",tag="identf_%s"%flav,name=titles[flav]))
for val in [111,211,311,321,313,333,2212,3122,413,"321/2212"] :
if(val not in analyses["IdentifiedParticleFlavour"]) : continue
if(flav not in analyses["IdentifiedParticleFlavour"][val]) : continue
aSum=0
for key,temp in analyses["IdentifiedParticleFlavour"][val][flav].iteritems():
aSum+=len(temp)
if(aSum==0) : continue
flavour.write("<div style=\"float:none; overflow:auto; \">\n<h4 id=\"f_%s_%s\">%s</h4>\n" % (flav,val,particleNames[val]))
for obs in ["x","xi","Ratio","Other"] :
if(obs not in analyses["IdentifiedParticleFlavour"][val][flav] or
len(analyses["IdentifiedParticleFlavour"][val][flav][obs])==0) : continue
flavour.write("<div style=\"float:none; overflow:auto; \">\n<h5 id=\"f_%s_%s_%s\">%s</h5>\n" % (flav,val,obs,obsName[obs]))
writePlots(analyses["IdentifiedParticleFlavour"][val][flav][obs],flavour)
flavour.write("</div>\n")
flavour.write("</div>\n")
# footer
index.write("</ul>\n")
flavour.write("</body>\n</html>")
flavour.close()
def writeCharged(index) :
# headers
charged=open(os.path.join(directory,"charged.html"),'w')
charged.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Data on Charged Particles"))
index.write("<li> <a href=\"charged.html\">Charged Particles</a>\n")
index.write("<ul>\n")
# total multiplicity
index.write("<li> <a href=\"charged.html#mult\">Total Charged Multiplicity</a> \n")
charged.write("<h2 id=\"mult\">Charged Particle Multiplicity</h2>\n")
charged.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["TotalChargedMult"][0],charged)
charged.write("</div>\n")
# with cuts
charged.write("<h2 id=\"mult_c\">Charged Particle Multiplicity, With Cuts</h2>\n")
index.write("<a href=\"charged.html#mult_c\">(with cuts)</a> \n")
charged.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["TotalChargedMult"]["C"],charged)
charged.write("</div>\n")
# multiplicity dist
charged.write("<h2 id=\"multdist\">Charged Particle Multiplicity Distribution</h2>\n")
index.write("<li> <a href=\"charged.html#multdist\">Charged Multiplicity Distribution</a> \n")
charged.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["DistChargedMult"][0],charged)
charged.write("</div>\n")
index.write("<a href=\"charged.html#multdist_c\">(with cuts)</a> \n")
charged.write("<h2 id=\"multdist_c\">Charged Particle Multiplicity Distributions, with cuts</h2>\n")
charged.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["DistChargedMult"]["C"],charged)
charged.write("</div>\n")
# spectra
index.write("<li> <a href=\"charged.html#spectra\">Charged Spectra</a> \n")
charged.write("<h2 id=\"spectra\">Charged Particle Spectra</h2>\n")
for val2 in [0,"C"] :
if(val2=="C") :
charged.write("<h3 id=\"spectra_c\">With cuts</h2>\n")
index.write("<a href=\"charged.html#spectra_c\">(with cuts)</a> \n")
for val in ["x","p","xi"] :
if(len(analyses["Charged"]["ChargedSpectrum"][val2][val])==0) : continue
if(val=="x") :
charged.write("<h4 id=\"spectra\">Scaled Momentum</h2>\n")
elif(val=="p") :
charged.write("<h4 id=\"spectra\">Momentum</h2>\n")
elif(val=="xi") :
charged.write("<h4 id=\"spectra\">Log of the Scaled Momentum</h2>\n")
charged.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["ChargedSpectrum"][val2][val],charged)
charged.write("</div>\n")
# with respect to axes
lFormat="""<div style=\"float:none; overflow:auto; width:100%\">\n<{hlevel} id=\"{tag}\">{name}</{hlevel}>\n"""
for axis in ["Thrust","Sphericity"] :
if axis=="Thrust" :
abbrev = "T"
else :
abbrev = "S"
charged.write("<h2 id=\"%s\">Charged Particle Distribution w.r.t the %s axis</h2>\n" % (abbrev,axis))
index.write("<li> <a href=\"charged.html#%s\">Distributions w.r.t %s axis:</a> \n" % (abbrev,axis))
# rapidity
index.write(" <a href=\"charged.html#%srap\">rapidity,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%srap"%abbrev,name="Rapidity"))
writePlots(analyses["Charged"]["ChargedRapidity%s"%axis],charged)
charged.write("</div>\n")
# pT in
index.write(" <a href=\"charged.html#%sptin\">$p_\\perp^{\\text{in}}$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sptin"%abbrev,name="$p_\\perp^{\\text{in}}$"))
writePlots(analyses["Charged"]["ChargedpTIn%s"%axis],charged)
charged.write("</div>\n")
# pT out
index.write(" <a href=\"charged.html#%sptout\">$p_\\perp^{\\text{out}}$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sptout"%abbrev,name="$p_\\perp^{\\text{out}}$"))
writePlots(analyses["Charged"]["ChargedpTOut%s"%axis],charged)
charged.write("</div>\n")
# pL
if("ChargedpL%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedpL%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spL\">$p_\\parallel$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spL"%abbrev,name="$p_\\parallel$"))
writePlots(analyses["Charged"]["ChargedpL%s"%axis],charged)
charged.write("</div>\n")
# pT
if("ChargedpT%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedpT%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spt\">$p_\\perp$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spt"%abbrev,name="$p_\\perp$"))
writePlots(analyses["Charged"]["ChargedpT%s"%axis],charged)
charged.write("</div>\n")
# pT average
if("ChargedAveragepT%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedAveragepT%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sptaver\">$\langle p_\\perp\\rangle$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sptaver"%abbrev,name="$\langle p_\\perp\\rangle$"))
writePlots(analyses["Charged"]["ChargedAveragepT%s"%axis],charged)
charged.write("</div>\n")
# pT2 average
if("ChargedAveragepT2%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedAveragepT2%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spt2aver\">$\langle p^2_\\perp\\rangle$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spt2aver"%abbrev,name="$\langle p^2_\\perp\\rangle$"))
writePlots(analyses["Charged"]["ChargedAveragepT2%s"%axis],charged)
charged.write("</div>\n")
# pT sum
if("ChargedSumpT%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedSumpT%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sptsum\">$\sum p_\\perp$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sptsum"%abbrev,name="$\sum p_\\perp$"))
writePlots(analyses["Charged"]["ChargedSumpT%s"%axis],charged)
charged.write("</div>\n")
# pT2 sum
if("ChargedSumpT2%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedSumpT2%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sptsum\">$\sum p^2_\\perp$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sptsum"%abbrev,name="$\sum p^2_\\perp$"))
writePlots(analyses["Charged"]["ChargedSumpT2%s"%axis],charged)
charged.write("</div>\n")
# pT vs xp
if("ChargedpTvsxp%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedpTvsxp%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spt\">$p_\\perp$ vs $x_p$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spt"%abbrev,name="$p_\\perp$ vs $x_p$"))
writePlots(analyses["Charged"]["ChargedpTvsxp%s"%axis],charged)
charged.write("</div>\n")
# pT out vs xp
if("ChargedpTOutvsxp%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedpTOutvsxp%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spt\">$p^{\\text{out}}_\\perp$ vs $x_p$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spt"%abbrev,name="$p^{\\text{out}}_\\perp$ vs $x_p$"))
writePlots(analyses["Charged"]["ChargedpTOutvsxp%s"%axis],charged)
charged.write("</div>\n")
# xF
if("ChargedxF%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedxF%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sxF\">$x_F$.<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sxF"%abbrev,name="$x_F$"))
writePlots(analyses["Charged"]["ChargedxF%s"%axis],charged)
charged.write("</div>\n")
# pT2
if("ChargedpT2%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedpT2%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%spt2\">$p^2_\\perp$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%spt2"%abbrev,name="$p^2_\\perp$"))
writePlots(analyses["Charged"]["ChargedpT2%s"%axis],charged)
charged.write("</div>\n")
# average ptin
if("ChargedAveragepT2in%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedAveragepT2in%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%saverpt2in\">$\langle p^2_{\\perp\\text{in}}\\rangle$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%saverpt2in"%abbrev,name="$\langle p^2_{\\perp\\text{in}}\\rangle$"))
writePlots(analyses["Charged"]["ChargedAveragepT2in%s"%axis],charged)
charged.write("</div>\n")
# average ptout
if("ChargedAveragepT2out%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedAveragepT2out%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%saverpt2out\">$\langle p^2_{\\perp\\text{out}}\\rangle$,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%saverpt2out"%abbrev,name="$\langle p^2_{\\perp\\text{out}}\\rangle$"))
writePlots(analyses["Charged"]["ChargedAveragepT2out%s"%axis],charged)
charged.write("</div>\n")
# charged flow
if("ChargedFlow%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedFlow%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sFlow\">Charge Flow,<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sFlow"%abbrev,name="Charge Flow"))
writePlots(analyses["Charged"]["ChargedFlow%s"%axis],charged)
charged.write("</div>\n")
# energy flow
if("ChargedEnergyFlow%s"%axis in analyses["Charged"] and len(analyses["Charged"]["ChargedEnergyFlow%s"%axis])!=0) :
index.write(" <a href=\"charged.html#%sEnergyFlow\">Energy Flow.<a/>\n" %abbrev)
charged.write(lFormat.format(hlevel="h3",tag="%sEnergyFlow"%abbrev,name="Energy Flow"))
writePlots(analyses["Charged"]["ChargedEnergyFlow%s"%axis],charged)
charged.write("</div>\n")
# footer
index.write(" </ul>\n")
charged.write("</body>\n</html>")
charged.close()
def writeJets(index) :
jets=open(os.path.join(directory,"jets.html"),'w')
jets.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Jet Data"))
index.write("<li> <a href=\"jets.html\">Jets</a>\n")
index.write("<ul>\n")
# fractions
jets.write("<h2 id=\"FRACTION\">Jet Fractions</h2>\n")
index.write("<li> <a href=\"jets.html#FRACTION\">Jet Fractions:</a> \n")
lFormat="""<div style=\"float:none; overflow:auto; width:100%\">\n<{hlevel} id=\"{tag}\">{name}</{hlevel}>\n"""
for i in range(1,7) :
if(i<6) : index.write(" <a href=\"jets.html#%sjet\">%s jet,<a/>\n" % (i,i))
else : index.write(" <a href=\"jets.html#%sjet\">%s jet.<a/>\n" % (i,i))
jets .write(lFormat.format(hlevel="h3",tag ="%sjet" % i,name ="%s Jet Fraction" % i))
jets .write(lFormat.format(hlevel="h4",tag ="%sjet_dur" % i,name ="%s Jet Fraction (Durham)" % i))
writePlots(analyses["EventShapes"]["%sjet_dur" % i],jets)
jets.write("</div>\n")
jets .write(lFormat.format(hlevel="h4",tag ="%sjet_jade" % i,name ="%s Jet Fraction (JADE)" % i))
writePlots(analyses["EventShapes"]["%sjet_jade" % i],jets)
jets.write("</div>\n")
jets.write("</div>\n")
# differential jet rates
index.write("<li> <a href=\"jets.html#DRATE\">Differential jet rates:</a> \n")
jets.write("<h2 id=\"DRATE\">Differential Jet Rates</h2>\n")
for i in range(1,6) :
yval="%s%s" % (i,i+1)
if(i!=5) : index.write(" <a href=\"jets.html#y%s\">$y_{%s}$,<a/>\n" %(yval,yval))
else : index.write(" <a href=\"jets.html#y%s\">$y_{%s}$.<a/>\n" %(yval,yval))
jets .write(lFormat.format(hlevel="h3",tag ="y%s" % yval,name ="$y_{%s}$" % yval))
if(len(analyses["EventShapes"]["y%s_dur" % yval])!=0) :
jets .write(lFormat.format(hlevel="h4",tag ="y%s_dur" % yval,name ="$y_{%s}$ (Durham)" % yval))
writePlots(analyses["EventShapes"]["y%s_dur" % yval],jets)
jets.write("</div>\n")
if(len(analyses["EventShapes"]["y%s_jade" % yval])!=0) :
jets .write(lFormat.format(hlevel="h4",tag ="y%s_jade" % yval,name ="$y_{%s}$ (JADE)" % yval))
writePlots(analyses["EventShapes"]["y%s_jade" % yval],jets)
jets.write("</div>\n")
jets.write("</div>\n")
# 4 jet angles
index.write("<li> <a href=\"jets.html#4JET\">Four jet angles:</a> \n")
jets.write("<h2 id=\"4JET\">Four Jet Angles</h2>\n")
for val in ["BZ","KSW","NR","alpha34"] :
if val == "BZ" : title="Bengtsson-Zerwas angle"
elif val == "KSW" : title="Korner-Schierholz-Willrodt angle"
elif val == "NR" : title="Modified Nachtmann-Reiter angle"
elif val == "alpha34" : title="$\\alpha_{34}$"
if(val!="alpha34") : index.write(" <a href=\"jets.html#%s\">%s,<a/>\n" %(val,title))
else : index.write(" <a href=\"jets.html#%s\">%s.<a/>\n" %(val,title))
jets .write(lFormat.format(hlevel="h3",tag=val,name=title))
writePlots(analyses["FourJet"][val],jets)
# footer
index.write(" </ul>\n")
jets.write("</div>\n")
jets.write("</body>\n</html>")
jets.close()
def writeEventShapes(index) :
lFormat="""<div style=\"float:none; overflow:auto; width:100%\">\n<{hlevel} id=\"{tag}\">{name}</{hlevel}>\n"""
index.write("<ul>\n")
index.write("<li> <a href=\"event.html\">Event Shapes</a>\n")
index.write("<ul>\n")
event=open(os.path.join(directory,"event.html"),'w')
event.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Event Shape Data"))
# thrust and related
event.write("<h2 id=\"THRUST\">Thrust and Related Variables</h2>\n")
index.write("<li> <a href=\"event.html#THRUST\">Thrust related:</a> \n")
for obs in ["T","Major","Minor","O"]:
title=obs
if(title=="T") : title="Thrust"
elif(title=="O") : title="Oblateness"
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# sphericity and related
index.write("<li> <a href=\"event.html#SPHERICITY\">Sphericity related:</a> \n")
event.write("<h2 id=\"SPHERICITY\">Sphericity and Related Variables</h2>\n")
for obs in ["S","P","A","Qx","Q21"]:
if obs == "S" : title="Sphericity"
elif obs == "P" : title="Planarity"
elif obs == "A" : title="Aplanarity"
elif obs == "Qx" : title="$Q_x$"
elif obs == "Q21": title="$Q_2-Q_1$"
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# jet masses
event.write("<h2 id=\"MASSES\">Jet Masses</h2>\n")
index.write("<li> <a href=\"event.html#MASSES\">Jet Masses:</a> \n")
for obs in ["HeavyJetMass","LightJetMass","TotalJetMass","JetMassDifference"]:
if obs == "HeavyJetMass" : title="Heavy Jet Mass"
elif obs == "LightJetMass" : title="Light Jet Mass"
elif obs == "TotalJetMass" : title="Total Jet Mass"
elif obs == "JetMassDifference" : title="Jet Mass Difference"
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# EEC and AEEC
event.write("<h2 id=\"eec\">Energy-Energy Correlations</h2>\n")
index.write("<li> <a href=\"event.html#eec\">Energy-Energy Correlations:</a> \n")
for obs in ["EEC","AEEC"]:
if obs == "EEC" : title="Energy-Energy Correlation"
elif obs == "AEEC" : title="Energy-Energy Asymmetry Correlation"
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# jet broadening
event.write("<h2 id=\"JB\">Jet Broadenings</h2>\n")
index.write("<li> <a href=\"event.html#JB\">Jet Broadening:</a> \n")
for obs in ["BT","BW","BN","Bdiff"]:
if obs == "BT" : title="Total Jet Broadening"
elif obs == "BW" : title="Wide Jet Broadening"
elif obs == "BN" : title="Narrow Jet Broadening"
elif obs == "Bdiff" : title="Difference of Jet Broadenings"
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# C and D
event.write("<h2 id=\"CD\">C and D parameters</h2>\n")
index.write("<li> <a href=\"event.html#CD\">C and D parameters:</a> \n")
for obs in ["C","D"]:
title= "%s-parameter" % obs
event.write(lFormat.format(hlevel="h3",tag=obs,name=title))
index.write(" <a href=\"event.html#%s\">%s,<a/>\n" %(obs,title))
writePlots(analyses["EventShapes"][obs],event)
event.write("</div>\n")
# moments of event shapes
event.write("<h2 id=\"MOMENT\">Moments of Event Shapes</h2>\n")
index.write("<li> <a href=\"event.html#MOMENT\">Moments:</a> \n")
for val in ["Moment_T","Moment_M","Moment_m","Moment_O","Moment_H","Moment_L",
"Moment_BT","Moment_BW","Moment_BN","Moment_C","Moment_S","Moment_y"] :
if(val=="Moment_T") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_thrust\">Thrust</h3>\n")
index.write(" <a href=\"event.html#m_thrust\">thrust,<a/>\n")
elif(val=="Moment_M") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_major\">Thrust Major</h3>\n")
index.write(" <a href=\"event.html#m_major\">major,<a/>\n")
elif(val=="Moment_m") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_minor\">Thrust Minor</h3>\n")
index.write(" <a href=\"event.html#m_minor\">minor,<a/>\n")
elif(val=="Moment_O") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_O\">Oblateness</h3>\n")
index.write(" <a href=\"event.html#m_O\">oblateness,<a/>\n")
elif(val=="Moment_H") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_heavy\">Heavy Jet Mass</h3>\n")
index.write(" <a href=\"event.html#m_heavy\">heavy jet mass,<a/>\n")
elif(val=="Moment_L") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_light\">Light Jet Mass</h3>\n")
index.write(" <a href=\"event.html#m_light\">light jet mass,<a/>\n")
elif(val=="Moment_BT") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_bt\">Total Jet Broadening</h3>\n")
index.write(" <a href=\"event.html#m_bt\">total jet broadening,<a/>\n")
elif(val=="Moment_BW") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_bw\">Wide Jet Broadening</h3>\n")
index.write(" <a href=\"event.html#m_bw\">wide jet broadening,<a/>\n")
elif(val=="Moment_BN") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_bn\">Narrow Jet Broadening</h3>\n")
index.write(" <a href=\"event.html#m_bn\">narrow jet broadening,<a/>\n")
elif(val=="Moment_C") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_C\">C-parameter</h3>\n")
index.write(" <a href=\"event.html#m_C\">C-parameter,<a/>\n")
elif(val=="Moment_S") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_S\">Sphericity</h3>\n")
index.write(" <a href=\"event.html#m_S\">sphericity,<a/>\n")
elif(val=="Moment_y") :
event.write("<div style=\"float:none; overflow:auto; width:100%\">\n<h3 id=\"m_y\">$y_{23}$</h3>\n")
index.write(" <a href=\"event.html#m_y\">$y_{23}$<a/>\n")
writePlots(analyses["EventShapes"][val],event)
event.write("</div>\n")
# footer
index.write(" </ul>\n")
event.write("</body>\n</html>")
event.close()
def writeGluon(index) :
index.write("<li> <a href=\"gluon.html\">Gluons</a>\n")
gluon=open(os.path.join(directory,"gluon.html"),'w')
gluon.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Data on Gluon Jets"))
index.write("<ul>\n")
# charged particles dists
gluon.write("<h2 id=\"multdist\">Charged Particle Multiplicity in Gluon Jets</h2>\n")
index.write("<li> <a href=\"gluon.html#multdist\">Charged Particle Multiplicity</a> \n")
gluon.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["DistChargedMult"][21],gluon)
gluon.write("</div>\n")
# spectra
index.write("<li> <a href=\"gluon.html#spectra\">Charged Spectra</a> \n")
gluon.write("<h2 id=\"spectra\">Charged Particle Spectra for Gluon Jets</h2>\n")
for val in ["x","p","xi"] :
if(len(analyses["Charged"]["ChargedSpectrum"][21][val])==0) : continue
if(val=="x") :
gluon.write("<h4 id=\"spectra\">Scaled Momentum</h2>\n")
elif(val=="p") :
gluon.write("<h4 id=\"spectra\">Momentum</h2>\n")
elif(val=="xi") :
gluon.write("<h4 id=\"spectra\">Log of the Scaled Momentum</h2>\n")
gluon.write("<div style=\"float:none; overflow:auto; width:100%\">\n")
writePlots(analyses["Charged"]["ChargedSpectrum"][21][val],gluon)
gluon.write("</div>\n")
# footer
index.write("</ul>\n")
gluon.write("</body>\n</html>")
gluon.close()
print 'Total no of figures',len(figures)
index=open(os.path.join(directory,"herwig.html"),'w')
index.write(header.format(title="Comparisions of Herwig7 and $e^+e^-$ Data"))
# event shapes
writeEventShapes(index)
# charged particles
writeCharged(index)
# jets
writeJets(index)
# identified particle spectra
writeIdentified(index)
# identified particle multiplicity
writeMult(index)
# flavour
writeFlavour(index)
# gluons
writeGluon(index)
# QED
writeQED(index)
# tau decays
writeTauDecays(index)
# hadron decays
writeDecays(index)
# remaining plots
if(len(figures)>0) :
writeMisc(index)
else :
print 'All figures used'
# footer
index.write("</ul>\n")
index.write("</body>\n</html>")
index.close()
diff --git a/src/DIS-Matchbox.in b/src/DIS-Matchbox.in
--- a/src/DIS-Matchbox.in
+++ b/src/DIS-Matchbox.in
@@ -1,151 +1,152 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Matchbox example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/Matchbox.in
read snippets/EPCollider.in
##################################################
## Beam energies
##################################################
cd /Herwig/EventHandlers
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## EP collider parameters
cd /Herwig/EventHandlers
set EventHandler:BeamA /Herwig/Particles/e-
set Luminosity:BeamEMaxA 30.*GeV
set EventHandler:BeamB /Herwig/Particles/p+
set Luminosity:BeamEMaxB 920.*GeV
## Set the order of the couplings
cd /Herwig/MatrixElements/Matchbox
set Factory:OrderInAlphaS 0
set Factory:OrderInAlphaEW 2
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do Factory:Process e- p -> e- j
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
# read Matchbox/MadGraph-OpenLoops.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
## cuts on additional jets
cd /Herwig/Cuts
# read Matchbox/DefaultEPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox
set Factory:ScaleChoice /Herwig/MatrixElements/Matchbox/Scales/LeptonQ2Scale
##################################################
## Matching and shower selection
## Please also see flavour scheme settings
## towards the end of the input file.
##################################################
read Matchbox/MCatNLO-DefaultShower.in
# read Matchbox/Powheg-DefaultShower.in
## use for strict LO/NLO comparisons
# read Matchbox/MCatLO-DefaultShower.in
## use for improved LO showering
# read Matchbox/LO-DefaultShower.in
# read Matchbox/MCatNLO-DipoleShower.in
# read Matchbox/Powheg-DipoleShower.in
## use for strict LO/NLO comparisons
# read Matchbox/MCatLO-DipoleShower.in
## use for improved LO showering
# read Matchbox/LO-DipoleShower.in
# read Matchbox/NLO-NoShower.in
# read Matchbox/LO-NoShower.in
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourScheme.in
## required for dipole shower and fixed order in five flavour scheme
# read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+# read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
# cd /Herwig/Analysis
# insert Rivet:Analyses 0 XXX_2015_ABC123
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 Rivet
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMC
##################################################
## Save the generator
##################################################
do /Herwig/MatrixElements/Matchbox/Factory:ProductionMode
cd /Herwig/Generators
saverun DIS-Matchbox EventGenerator
diff --git a/src/LHC-MB.in b/src/LHC-MB.in
--- a/src/LHC-MB.in
+++ b/src/LHC-MB.in
@@ -1,103 +1,62 @@
# -*- ThePEG-repository -*-
################################################################################
# This file contains our best tune to UE data from ATLAS at 7 TeV. More recent
# tunes and tunes for other centre-of-mass energies as well as more usage
# instructions can be obtained from this Herwig wiki page:
# http://projects.hepforge.org/herwig/trac/wiki/MB_UE_tunes
# The model for soft interactions and diffractions is explained in
# [S. Gieseke, P. Kirchgaesser, F. Loshaj, arXiv:1612.04701]
################################################################################
read snippets/PPCollider.in
##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
##################################################
# LHC physics parameters (override defaults here)
##################################################
set EventGenerator:EventHandler:LuminosityFunction:Energy 7000.0
# Intrinsic pT tune extrapolated to LHC energy
set /Herwig/Shower/ShowerHandler:IntrinsicPtGaussian 2.2*GeV
# Minimum Bias
read snippets/MB.in
-# Read in parameters of the soft model recommended for MB/UE simulations
-read snippets/SoftTune.in
-
-
#Diffraction model
read snippets/Diffraction.in
-#Turn on Baryonic reconnection
-read snippets/BaryonicReconnection.in
-
-# Normalization of the Min bias cross section for correct diffractive cross section
-set /Herwig/MatrixElements/MEMinBias:csNorm 0.01
-
-
-# Use LHC parametrization of the cross section
-set /Herwig/UnderlyingEvent/MPIHandler:DLmode 2
-
-
-#some preliminary parameters for the MPI model which need to be tuned
-#TODO
-set /Herwig/UnderlyingEvent/MPIHandler:pTmin0 3.02
-set /Herwig/UnderlyingEvent/MPIHandler:InvRadius 1.4
-set /Herwig/UnderlyingEvent/MPIHandler:Power 0.308
-set /Herwig/Partons/RemnantDecayer:ladderMult 0.45
-set /Herwig/Partons/RemnantDecayer:ladderbFactor 1.0
-set /Herwig/UnderlyingEvent/MPIHandler:DiffractiveRatio 0.17
-
-#ordered pTs
-set /Herwig/Partons/RemnantDecayer:PtDistribution 4
-#use random remnant connections
-set /Herwig/Partons/RemnantDecayer:RandomConnection No
-
-# set the correct PDFs
-set /Herwig/Partons/HardLOPDF:PDFName CT14lo
-set /Herwig/Partons/ShowerLOPDF:PDFName CT14lo
-set /Herwig/Partons/MPIPDF:PDFName CT14lo
-set /Herwig/Partons/RemnantPDF:PDFName CT14lo
-
-#set /Herwig/Shower/ShowerHandler:CascadeHandler NULL # Switch off parton shower
-#set /Herwig/Hadronization/HadronizationHandler:HadronizationHandler NULL
-# do Soft interactions
-
-#set /Herwig/Hadronization/ColourReconnector:ColourReconnection No
#################################################
# Analyses
##################################################
-#Comment these lines out in order to use rivet analyses
-cd /Herwig/Analysis
-create ThePEG::RivetAnalysis RivetAnalysis RivetAnalysis.so
-
-cd /Herwig/Generators
-insert EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
-
-#Some example analyses
-insert /Herwig/Analysis/RivetAnalysis:Analyses 0 ATLAS_2012_I1084540
-insert /Herwig/Analysis/RivetAnalysis:Analyses 0 ATLAS_2010_S8918562
+## Comment these lines out in order to use rivet analyses
+# cd /Herwig/Analysis
+# create ThePEG::RivetAnalysis RivetAnalysis RivetAnalysis.so
+
+# cd /Herwig/Generators
+# insert EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/RivetAnalysis
+## Some example analyses
+# insert /Herwig/Analysis/RivetAnalysis:Analyses 0 ATLAS_2012_I1084540
+# insert /Herwig/Analysis/RivetAnalysis:Analyses 0 ATLAS_2010_S8918562
#set /Herwig/Analysis/Plot:EventNumber 54
#cd /Herwig/Generators
#insert EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/Plot
#insert EventGenerator:AnalysisHandlers 0 /Herwig/Analysis/HepMCFile
#set /Herwig/Analysis/HepMCFile:PrintEvent 1000000
#set /Herwig/Analysis/HepMCFile:Format GenEvent
#set /Herwig/Analysis/HepMCFile:Units GeV_mm
#set /Herwig/Analysis/HepMCFile:Filename events.fifo
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHC-MB EventGenerator
diff --git a/src/LHC-Matchbox.in b/src/LHC-Matchbox.in
--- a/src/LHC-Matchbox.in
+++ b/src/LHC-Matchbox.in
@@ -1,157 +1,158 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Matchbox example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/Matchbox.in
read snippets/PPCollider.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 13000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/MatrixElements/Matchbox
set Factory:OrderInAlphaS 0
set Factory:OrderInAlphaEW 2
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do Factory:Process p p -> e+ e-
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
# read Matchbox/MadGraph-OpenLoops.in
# read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam
# read Matchbox/HiggsEffective.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set ChargedLeptonPairMassCut:MinMass 60*GeV
set ChargedLeptonPairMassCut:MaxMass 120*GeV
## cuts on additional jets
# read Matchbox/DefaultPPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox
set Factory:ScaleChoice /Herwig/MatrixElements/Matchbox/Scales/LeptonPairMassScale
##################################################
## Matching and shower selection
## Please also see flavour scheme settings
## towards the end of the input file.
##################################################
read Matchbox/MCatNLO-DefaultShower.in
# read Matchbox/Powheg-DefaultShower.in
## use for strict LO/NLO comparisons
# read Matchbox/MCatLO-DefaultShower.in
## use for improved LO showering
# read Matchbox/LO-DefaultShower.in
# read Matchbox/MCatNLO-DipoleShower.in
# read Matchbox/Powheg-DipoleShower.in
## use for strict LO/NLO comparisons
# read Matchbox/MCatLO-DipoleShower.in
## use for improved LO showering
# read Matchbox/LO-DipoleShower.in
# read Matchbox/NLO-NoShower.in
# read Matchbox/LO-NoShower.in
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourScheme.in
## required for dipole shower and fixed order in five flavour scheme
# read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+# read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
# cd /Herwig/Analysis
# insert Rivet:Analyses 0 XXX_2015_ABC123
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 Rivet
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMC
##################################################
## Save the generator
##################################################
do /Herwig/MatrixElements/Matchbox/Factory:ProductionMode
cd /Herwig/Generators
saverun LHC-Matchbox EventGenerator
diff --git a/src/LHE-FxFx.in b/src/LHE-FxFx.in
--- a/src/LHE-FxFx.in
+++ b/src/LHE-FxFx.in
@@ -1,150 +1,148 @@
##################################################
# Example generator based on LHC parameters
# For FxFx merging with MadGraph5/aMC@NLO
# usage: Herwig read FxFx.in
##################################################
-read snippets/SoftModel.in
-##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
set EventGenerator:NumberOfEvents 100000000
set EventGenerator:RandomNumberGenerator:Seed 31122001
set EventGenerator:PrintEvent 1
set EventGenerator:MaxErrors 10000
##################################################################
# Create the Les Houches file handler and reader for FxFx events
##################################################################
cd /Herwig/EventHandlers
library HwFxFx.so
create Herwig::FxFxEventHandler LesHouchesHandler
# set the various step handlers
set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor
set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler
set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler
# set the weight option (for MC@NLO)
set LesHouchesHandler:WeightOption VarNegWeight
# set event hander as one to be used
set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler
# Set up an EMPTY CUTS object
# Normally you will have imposed any cuts you want
# when generating the event file and don't want any more
# in particular for POWHEG and MC@NLO you must not apply cuts on the
# the extra jet
create ThePEG::Cuts /Herwig/Cuts/NoCuts
# Create a LH reader specialised for FxFx events
cd /Herwig/EventHandlers
create Herwig::FxFxFileReader FxFxLHReader
insert LesHouchesHandler:FxFxReaders[0] FxFxLHReader
# Create the FxFxHandler for merging with the shower
cd /Herwig/Shower
library HwFxFxHandler.so
create Herwig::FxFxHandler FxFxHandler
set /Herwig/Shower/FxFxHandler:SplittingGenerator /Herwig/Shower/SplittingGenerator
set /Herwig/Shower/FxFxHandler:KinematicsReconstructor /Herwig/Shower/KinematicsReconstructor
set /Herwig/Shower/FxFxHandler:PartnerFinder /Herwig/Shower/PartnerFinder
set /Herwig/EventHandlers/LesHouchesHandler:CascadeHandler /Herwig/Shower/FxFxHandler
###################################################################################
# PDF settings #
# You may wish to use the same PDF as the events were generated with #
###################################################################################
create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so
set /Herwig/Partons/LHAPDF:PDFName NAME_OF_PDF
set /Herwig/Partons/RemnantDecayer:AllowTop Yes
set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants
set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF
set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF
# We would recommend the shower uses the default PDFs with which it was tuned.
# However it can be argued that the same set as for the sample should be used for
# matched samples, i.e. MC@NLO (and less so POWHEG)
set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF
set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF
# You can in principle also change the PDFs for the remnant extraction and
# multiple scattering. As the generator was tuned with the default values
# this is STRONGLY DISCOURAGED without retuning the MPI parameters
# create the reader and set cuts
set /Herwig/EventHandlers/FxFxLHReader:FileName NAME_OF_FILE #(the file can be compressed (gziped,bziped))
set /Herwig/EventHandlers/FxFxLHReader:WeightWarnings false
set /Herwig/EventHandlers/FxFxLHReader:AllowedToReOpen No
set /Herwig/EventHandlers/FxFxLHReader:InitPDFs 0
set /Herwig/EventHandlers/FxFxLHReader:Cuts /Herwig/Cuts/NoCuts
# option to ensure momentum conservation is O.K. due rounding errors (recommended)
set /Herwig/EventHandlers/FxFxLHReader:MomentumTreatment RescaleEnergy
# set the pdfs
set /Herwig/EventHandlers/FxFxLHReader:PDFA /Herwig/Partons/LHAPDF
set /Herwig/EventHandlers/FxFxLHReader:PDFB /Herwig/Partons/LHAPDF
# if using BSM models with QNUMBER info
#set /Herwig/EventHandlers/FxFxLHReader:QNumbers Yes
#set /Herwig/EventHandlers/FxFxLHReader:Decayer /Herwig/Decays/Mambo
##################################################
# Shower parameters #
##################################################
# normally, especially for POWHEG, you want
# the scale supplied in the event files (SCALUP)
# to be used as a pT veto scale in the parton shower
set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes
set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes
# Shower parameters
# treatment of wide angle radiation
set /Herwig/Shower/PartnerFinder:PartnerMethod Random
set /Herwig/Shower/PartnerFinder:ScaleChoice Partner
# with MC@NLO these parameters are required for consistency of the subtraction terms
set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost
set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General
set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity
set /Herwig/Shower/ShowerHandler:SpinCorrelations No
#############################################################
# Set up the FxFxHandler #
#############################################################
cd /Herwig/Shower
set /Herwig/Shower/FxFxHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler
set /Herwig/Shower/FxFxHandler:RemDecayer /Herwig/Partons/RemnantDecayer
set /Herwig/Shower/FxFxHandler:ShowerAlpha AlphaQCD
# set the heavy quark decay product vetoing process on/off
set FxFxHandler:HeavyQVeto Yes
# Automatic detection of the hard process (experimental)
set FxFxHandler:HardProcessDetection Automatic
# No. of light jets in maximum-multiplicity FxFx process
set FxFxHandler:njetsmax MAXIMUM_NUMBER_OF_PARTONS_IN_LHE_FILE # Make sure this is set correctly!
# Mimimum parton-parton R-sep used for generation.
set FxFxHandler:drjmin 0
# Recommended key merging parameters below
cd /Herwig/Shower
# turn the Vetoing On or Off completely
set FxFxHandler:VetoIsTurnedOff VetoingIsOn
# merging mode: in this case FxFx:
set FxFxHandler:MergeMode FxFx
# merging scale
set FxFxHandler:ETClus 20*GeV
# jet radius used in clustering in merging.
set FxFxHandler:RClus 1.0
# Max |eta| for jets in clustering in merging.
set FxFxHandler:EtaClusMax 10
# Default 1.5 factor used to decide if a jet matches a parton
# in merging: if DR(parton,jet)<rclusfactor*rclus the parton
# and jet are said to have been matched.
set FxFxHandler:RClusFactor 1.5
##################################################
# LHC physics parameters (override defaults here)
##################################################
# e.g if different top mass used
#set /Herwig/Particles/t:NominalMass 173.0
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHE-FxFx EventGenerator
diff --git a/src/LHE-MCatNLO.in b/src/LHE-MCatNLO.in
--- a/src/LHE-MCatNLO.in
+++ b/src/LHE-MCatNLO.in
@@ -1,112 +1,110 @@
##################################################
# Example generator based on LHC parameters
# For use with MC@NLO events from MadGraph5/aMC@NLO
# usage: Herwig read LHE.in
##################################################
-read snippets/SoftModel.in
-##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
set EventGenerator:NumberOfEvents 10000000
set EventGenerator:RandomNumberGenerator:Seed 31122001
set EventGenerator:DebugLevel 0
set EventGenerator:PrintEvent 10
set EventGenerator:MaxErrors 10000
##################################################
# Create the Les Houches file handler and reader
##################################################
cd /Herwig/EventHandlers
library LesHouches.so
# create the event handler
create ThePEG::LesHouchesEventHandler LesHouchesHandler
# set the various step handlers
set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor
set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler
set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler
set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler
# set the weight option
set LesHouchesHandler:WeightOption VarNegWeight
# set event hander as one to be used
set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler
# Set up an EMPTY CUTS object
# Normally you will have imposed any cuts you want
# when generating the event file and don't want any more
# in particular for POWHEG and MC@NLO you must not apply cuts on the
# the extra jet
create ThePEG::Cuts /Herwig/Cuts/NoCuts
####################################################################
# PDF settings #
####################################################################
# You may wish to use the same PDF as the events were generated with
create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so
set /Herwig/Partons/LHAPDF:PDFName NAME_OF_PDF
set /Herwig/Partons/RemnantDecayer:AllowTop Yes
set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants
set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF
set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF
# We would recommend the shower uses the default PDFs with which it was tuned.
# However it can be argued that the same set as for the sample should be used for
# matched samples, i.e. MC@NLO (and less so POWHEG)
#set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF
#set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF
# You can in principle also change the PDFs for the remnant extraction and
# multiple scattering. As the generator was tuned with the default values
# this is STRONGLY DISCOURAGED without retuning the MPI parameters
# create the reader and set cuts
create ThePEG::LesHouchesFileReader LesHouchesReader
set LesHouchesReader:FileName NAME_OF_FILE #(the file can be compressed (gziped,bziped))
set LesHouchesReader:AllowedToReOpen No
set LesHouchesReader:InitPDFs 0
set LesHouchesReader:Cuts /Herwig/Cuts/NoCuts
# option to ensure momentum conservation is O.K. due rounding errors (recommended)
set LesHouchesReader:MomentumTreatment RescaleEnergy
# set the pdfs
set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF
set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF
# if using BSM models with QNUMBER info
#set LesHouchesReader:QNumbers Yes
#set LesHouchesReader:Decayer /Herwig/Decays/Mambo
# and add to handler
insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader
##################################################
# Shower parameters
##################################################
# normally, especially for POWHEG, you want
# the scale supplied in the event files (SCALUP)
# to be used as a pT veto scale in the parton shower
set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes
set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes
# Shower parameters
# treatment of wide angle radiation
set /Herwig/Shower/PartnerFinder:PartnerMethod Random
set /Herwig/Shower/PartnerFinder:ScaleChoice Partner
# with MC@NLO these parameters are required for consistency of the subtraction terms
# suggested parameters (give worse physics results with POWHEG)
set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost
set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General
set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity
set /Herwig/Shower/ShowerHandler:SpinCorrelations No
##################################################
# LHC physics parameters (override defaults here)
##################################################
# e.g if different top mass used
#set /Herwig/Particles/t:NominalMass 173.0
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHE-MCatNLO EventGenerator
diff --git a/src/LHE-MGMerging.in b/src/LHE-MGMerging.in
--- a/src/LHE-MGMerging.in
+++ b/src/LHE-MGMerging.in
@@ -1,154 +1,152 @@
##################################################
# Example generator based on LHC parameters
# For FxFx merging with MadGraph5/aMC@NLO
# usage: Herwig read FxFx.in
##################################################
-read snippets/SoftModel.in
-##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
set EventGenerator:NumberOfEvents 100000000
set EventGenerator:RandomNumberGenerator:Seed 31122001
set EventGenerator:PrintEvent 1
set EventGenerator:MaxErrors 10000
##################################################################
# Create the Les Houches file handler and reader for FxFx events
##################################################################
cd /Herwig/EventHandlers
library HwFxFx.so
create Herwig::FxFxEventHandler LesHouchesHandler
# set the various step handlers
set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor
set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler
set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler
# set the weight option (for MC@NLO)
set LesHouchesHandler:WeightOption VarNegWeight
# set event hander as one to be used
set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler
# Set up an EMPTY CUTS object
# Normally you will have imposed any cuts you want
# when generating the event file and don't want any more
# in particular for POWHEG and MC@NLO you must not apply cuts on the
# the extra jet
create ThePEG::Cuts /Herwig/Cuts/NoCuts
# Create a LH reader specialised for FxFx events
cd /Herwig/EventHandlers
create Herwig::FxFxFileReader FxFxLHReader
insert LesHouchesHandler:FxFxReaders[0] FxFxLHReader
# Create the FxFxHandler for merging with the shower
cd /Herwig/Shower
library HwFxFxHandler.so
create Herwig::FxFxHandler FxFxHandler
set /Herwig/Shower/FxFxHandler:SplittingGenerator /Herwig/Shower/SplittingGenerator
set /Herwig/Shower/FxFxHandler:KinematicsReconstructor /Herwig/Shower/KinematicsReconstructor
set /Herwig/Shower/FxFxHandler:PartnerFinder /Herwig/Shower/PartnerFinder
set /Herwig/EventHandlers/LesHouchesHandler:CascadeHandler /Herwig/Shower/FxFxHandler
###################################################################################
# PDF settings #
# You may wish to use the same PDF as the events were generated with #
###################################################################################
create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so
set /Herwig/Partons/LHAPDF:PDFName NAME_OF_PDF
set /Herwig/Partons/RemnantDecayer:AllowTop Yes
set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants
set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF
set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF
# We would recommend the shower uses the default PDFs with which it was tuned.
# However it can be argued that the same set as for the sample should be used for
# matched samples, i.e. MC@NLO (and less so POWHEG)
set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF
set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF
# You can in principle also change the PDFs for the remnant extraction and
# multiple scattering. As the generator was tuned with the default values
# this is STRONGLY DISCOURAGED without retuning the MPI parameters
# create the reader and set cuts
set /Herwig/EventHandlers/FxFxLHReader:FileName NAME_OF_FILE #(the file can be compressed (gziped,bziped))
set /Herwig/EventHandlers/FxFxLHReader:WeightWarnings false
set /Herwig/EventHandlers/FxFxLHReader:AllowedToReOpen No
set /Herwig/EventHandlers/FxFxLHReader:InitPDFs 0
set /Herwig/EventHandlers/FxFxLHReader:Cuts /Herwig/Cuts/NoCuts
# option to ensure momentum conservation is O.K. due rounding errors (recommended)
set /Herwig/EventHandlers/FxFxLHReader:MomentumTreatment RescaleEnergy
# set the pdfs
set /Herwig/EventHandlers/FxFxLHReader:PDFA /Herwig/Partons/LHAPDF
set /Herwig/EventHandlers/FxFxLHReader:PDFB /Herwig/Partons/LHAPDF
# if using BSM models with QNUMBER info
#set /Herwig/EventHandlers/FxFxLHReader:QNumbers Yes
#set /Herwig/EventHandlers/FxFxLHReader:Decayer /Herwig/Decays/Mambo
##################################################
# Shower parameters #
##################################################
# normally, especially for POWHEG, you want
# the scale supplied in the event files (SCALUP)
# to be used as a pT veto scale in the parton shower
set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes
set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes
# Shower parameters
# treatment of wide angle radiation
set /Herwig/Shower/PartnerFinder:PartnerMethod Random
set /Herwig/Shower/PartnerFinder:ScaleChoice Partner
# with MC@NLO these parameters are required for consistency of the subtraction terms
set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost
set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General
set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity
set /Herwig/Shower/ShowerHandler:SpinCorrelations No
#############################################################
# Set up the FxFxHandler #
#############################################################
cd /Herwig/Shower
set /Herwig/Shower/FxFxHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler
set /Herwig/Shower/FxFxHandler:RemDecayer /Herwig/Partons/RemnantDecayer
set /Herwig/Shower/FxFxHandler:ShowerAlpha AlphaQCD
# set the heavy quark decay product vetoing process on/off
set FxFxHandler:HeavyQVeto Yes
# Automatic detection of the hard process (experimental)
set FxFxHandler:HardProcessDetection Automatic
# Choose the hard process manually according to AlpGen codes (see hep-ph/0206293)
# and set HardProcessDetection to Manual
# set FxFxHandler:ihrd 3 # 3 corresponds to W+jets or Z+jets
# No. of light jets in maximum-multiplicity process
set FxFxHandler:njetsmax MAXIMUM_NUMBER_OF_PARTONS_IN_LHE_FILE # Make sure this is set correctly!
# Mimimum parton-parton R-sep used for generation.
set FxFxHandler:drjmin 0
# Recommended key merging parameters below
cd /Herwig/Shower
# turn the Vetoing On or Off completely
set FxFxHandler:VetoIsTurnedOff VetoingIsOn
# merging mode: in this case Tree level with MG5 information:
set FxFxHandler:MergeMode TreeMG5
# merging scale
set FxFxHandler:ETClus 25*GeV
# jet radius used in clustering in merging.
set FxFxHandler:RClus 1.0
# Max |eta| for jets in clustering in merging.
set FxFxHandler:EtaClusMax 10
# Default 1.5 factor used to decide if a jet matches a parton
# in merging: if DR(parton,jet)<rclusfactor*rclus the parton
# and jet are said to have been matched.
set FxFxHandler:RClusFactor 1.5
##################################################
# LHC physics parameters (override defaults here)
##################################################
# e.g if different top mass used
#set /Herwig/Particles/t:NominalMass 173.0
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHE-MGMerging EventGenerator
diff --git a/src/LHE-POWHEG.in b/src/LHE-POWHEG.in
--- a/src/LHE-POWHEG.in
+++ b/src/LHE-POWHEG.in
@@ -1,106 +1,104 @@
##################################################
# Example generator based on LHC parameters
# For use with POWHEG events
# usage: Herwig read LHE.in
##################################################
-read snippets/SoftModel.in
-##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
set EventGenerator:NumberOfEvents 10000000
set EventGenerator:RandomNumberGenerator:Seed 31122001
set EventGenerator:DebugLevel 0
set EventGenerator:PrintEvent 10
set EventGenerator:MaxErrors 10000
##################################################
# Create the Les Houches file handler and reader
##################################################
cd /Herwig/EventHandlers
library LesHouches.so
# create the event handler
create ThePEG::LesHouchesEventHandler LesHouchesHandler
# set the various step handlers
set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor
set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler
set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler
set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler
# set the weight option
set LesHouchesHandler:WeightOption VarNegWeight
# set event hander as one to be used
set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler
# Set up an EMPTY CUTS object
# Normally you will have imposed any cuts you want
# when generating the event file and don't want any more
# in particular for POWHEG and MC@NLO you must not apply cuts on the
# the extra jet
create ThePEG::Cuts /Herwig/Cuts/NoCuts
####################################################################
# PDF settings #
####################################################################
# You may wish to use the same PDF as the events were generated with
create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so
set /Herwig/Partons/LHAPDF:PDFName NAME_OF_PDF
set /Herwig/Partons/RemnantDecayer:AllowTop Yes
set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants
set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF
set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF
# We would recommend the shower uses the default PDFs with which it was tuned.
# However it can be argued that the same set as for the sample should be used for
# matched samples, i.e. MC@NLO (and less so POWHEG)
#set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF
#set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF
# You can in principle also change the PDFs for the remnant extraction and
# multiple scattering. As the generator was tuned with the default values
# this is STRONGLY DISCOURAGED without retuning the MPI parameters
# create the reader and set cuts
create ThePEG::LesHouchesFileReader LesHouchesReader
set LesHouchesReader:FileName NAME_OF_FILE #(the file can be compressed (gziped,bziped))
set LesHouchesReader:AllowedToReOpen No
set LesHouchesReader:InitPDFs 0
set LesHouchesReader:Cuts /Herwig/Cuts/NoCuts
# option to ensure momentum conservation is O.K. due rounding errors (recommended)
set LesHouchesReader:MomentumTreatment RescaleEnergy
# set the pdfs
set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF
set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF
# if using BSM models with QNUMBER info
#set LesHouchesReader:QNumbers Yes
#set LesHouchesReader:Decayer /Herwig/Decays/Mambo
# and add to handler
insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader
##################################################
# Shower parameters
##################################################
# normally, especially for POWHEG, you want
# the scale supplied in the event files (SCALUP)
# to be used as a pT veto scale in the parton shower
set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes
set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes
# Shower parameters
# treatment of wide angle radiation
set /Herwig/Shower/PartnerFinder:PartnerMethod Random
set /Herwig/Shower/PartnerFinder:ScaleChoice Partner
##################################################
# LHC physics parameters (override defaults here)
##################################################
# e.g if different top mass used
#set /Herwig/Particles/t:NominalMass 173.0
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHE EventGenerator
diff --git a/src/LHE.in b/src/LHE.in
--- a/src/LHE.in
+++ b/src/LHE.in
@@ -1,117 +1,115 @@
##################################################
# Example generator based on LHC parameters
# Generic Les Houches Event file input
# Look at customised input files for:
# MadGraph5/aMC@NLO: LHE-MCatNLO.in
# POWHEG: LHE-POWHEG.in
# FxFx merging with MG5/aMC@NLO: LHE-FxFx.in
# Tree-level merging with MG5/aMC@NLO: LHE-MGMerging.in
# usage: Herwig read LHE.in
##################################################
-read snippets/SoftModel.in
-##################################################
# Technical parameters for this run
##################################################
cd /Herwig/Generators
set EventGenerator:NumberOfEvents 10000000
set EventGenerator:RandomNumberGenerator:Seed 31122001
set EventGenerator:DebugLevel 0
set EventGenerator:PrintEvent 10
set EventGenerator:MaxErrors 10000
##################################################
# Create the Les Houches file handler and reader
##################################################
cd /Herwig/EventHandlers
library LesHouches.so
# create the event handler
create ThePEG::LesHouchesEventHandler LesHouchesHandler
# set the various step handlers
set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor
set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler
set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler
set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler
# set the weight option (e.g. for MC@NLO)
set LesHouchesHandler:WeightOption VarNegWeight
# set event hander as one to be used
set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler
# Set up an EMPTY CUTS object
# Normally you will have imposed any cuts you want
# when generating the event file and don't want any more
# in particular for POWHEG and MC@NLO you must not apply cuts on the
# the extra jet
create ThePEG::Cuts /Herwig/Cuts/NoCuts
####################################################################
# PDF settings #
####################################################################
# You may wish to use the same PDF as the events were generated with
create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so
set /Herwig/Partons/LHAPDF:PDFName NAME_OF_PDF
set /Herwig/Partons/RemnantDecayer:AllowTop Yes
set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants
set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF
set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF
set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF
# We would recommend the shower uses the default PDFs with which it was tuned.
# However it can be argued that the same set as for the sample should be used for
# matched samples, i.e. MC@NLO (and less so POWHEG)
#set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF
#set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF
# You can in principle also change the PDFs for the remnant extraction and
# multiple scattering. As the generator was tuned with the default values
# this is STRONGLY DISCOURAGED without retuning the MPI parameters
# create the reader and set cuts
create ThePEG::LesHouchesFileReader LesHouchesReader
set LesHouchesReader:FileName NAME_OF_FILE #(the file can be compressed (gziped,bziped))
set LesHouchesReader:AllowedToReOpen No
set LesHouchesReader:InitPDFs 0
set LesHouchesReader:Cuts /Herwig/Cuts/NoCuts
# option to ensure momentum conservation is O.K. due rounding errors (recommended)
set LesHouchesReader:MomentumTreatment RescaleEnergy
# set the pdfs
set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF
set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF
# if using BSM models with QNUMBER info
#set LesHouchesReader:QNumbers Yes
#set LesHouchesReader:Decayer /Herwig/Decays/Mambo
# and add to handler
insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader
##################################################
# Shower parameters
##################################################
# normally, especially for POWHEG, you want
# the scale supplied in the event files (SCALUP)
# to be used as a pT veto scale in the parton shower
set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes
set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes
# Shower parameters
# treatment of wide angle radiation
set /Herwig/Shower/PartnerFinder:PartnerMethod Random
set /Herwig/Shower/PartnerFinder:ScaleChoice Partner
# with MC@NLO these parameters are required for consistency of the subtraction terms
# suggested parameters (give worse physics results with POWHEG)
#set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost
#set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General
#set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity
#set /Herwig/Shower/ShowerHandler:SpinCorrelations No
##################################################
# LHC physics parameters (override defaults here)
##################################################
# e.g if different top mass used
#set /Herwig/Particles/t:NominalMass 173.0
##################################################
# Save run for later usage with 'Herwig run'
##################################################
cd /Herwig/Generators
saverun LHE EventGenerator
diff --git a/src/Matchbox/CT14.in b/src/Matchbox/CT14.in
new file mode 100644
--- /dev/null
+++ b/src/Matchbox/CT14.in
@@ -0,0 +1,12 @@
+# -*- ThePEG-repository -*-
+
+cd /Herwig/Partons
+
+set HardLOPDF:PDFName CT14lo
+set HardNLOPDF:PDFName CT14nlo
+
+set ShowerLOPDF:PDFName CT14lo
+set ShowerNLOPDF:PDFName CT14nlo
+
+set MPIPDF:PDFName CT14lo
+set RemnantPDF:PDFName CT14lo
diff --git a/src/Matchbox/Makefile.am b/src/Matchbox/Makefile.am
--- a/src/Matchbox/Makefile.am
+++ b/src/Matchbox/Makefile.am
@@ -1,66 +1,67 @@
BUILT_SOURCES = done-all-links
Matchboxdir = ${pkgdatadir}/Matchbox
INPUTFILES = \
CMEC.in \
DefaultEEJets.in \
DefaultEPJets.in \
DefaultPPJets.in \
DiagonalCKM.in \
FiveFlavourNoBMassScheme.in \
FiveFlavourScheme.in \
FourFlavourScheme.in \
GoSam-GoSam.in \
HiggsEffective.in \
HJets.in \
IdentifiedBs.in \
InclusiveDurhamJets.in \
IncreaseVerbosity.in \
KrkNLO-DipoleShower.in \
LO-DefaultShower.in \
LO-DipoleShower.in \
LO.in \
LO-NoShower.in \
MadGraph-GoSam.in \
MadGraph-MadGraph.in \
MadGraph-NJet.in \
MadGraph-OpenLoops.in \
MCatLO-DefaultShower.in \
MCatLO-DipoleShower.in \
MCatNLO-DefaultShower.in \
MCatNLO-Dipole-HardAlphaSTune.in \
MCatNLO-DipoleShower.in \
MMHT2014.in \
+CT14.in \
MuDown.in \
MuQDown.in \
MuQUp.in \
MuUp.in \
NJet-NJet.in \
NLO-NoShower.in \
NonDiagonalCKM.in \
OnShellHProduction.in \
OnShellTopProduction.in \
OnShellWProduction.in \
OnShellZProduction.in \
OpenLoops-OpenLoops.in \
Powheg-DefaultShower.in \
Powheg-DipoleShower.in \
Powheg.in \
PQCDLevel.in \
StandardModelLike.in \
ShowerBenchmarks.in \
VBFDiagramsOnly.in \
VBFNLO.in \
VBFNLOPhasespace.in
dist_Matchbox_DATA = $(INPUTFILES)
CLEANFILES = done-all-links
done-all-links: $(INPUTFILES)
@echo "Linking input files"
@for i in $(INPUTFILES); do \
if test -f $(srcdir)/$$i -a ! -e $$i; then \
$(LN_S) -f $(srcdir)/$$i; fi; done
@touch done-all-links
diff --git a/src/Merging/LHC-H-Merging.in b/src/Merging/LHC-H-Merging.in
--- a/src/Merging/LHC-H-Merging.in
+++ b/src/Merging/LHC-H-Merging.in
@@ -1,194 +1,195 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Merging example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 8000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/Merging
set MergingFactory:OrderInAlphaS 2
set MergingFactory:OrderInAlphaEW 1
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do MergingFactory:Process p p -> h0 [ j j ]
set MergingFactory:NLOProcesses 2
# Set the merging scale deviding the parton shower
# from the matrix element region in phase space.
set Merger:MergingScale 15.*GeV
set Merger:MergingScaleSmearing 0.1
# The following line clear a preweighter
# that is not working for Higgs as here
# pt and HT are 0 before the shower.
# See other merging files for more information.
clear MergingFactory:Preweighters
# The next line can switch of hadronization
# and MPI modelling. Use with care!!
# read Matchbox/PQCDLevel.in
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
read Matchbox/OnShellHProduction.in
set /Herwig/Particles/h0:Stable Stable
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
read Matchbox/MadGraph-OpenLoops.in
#read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam and
## MadGraph-Openloops
#read Matchbox/HiggsEffective.in
cd /Herwig/MatrixElements/Matchbox/Amplitudes
set OpenLoops:HiggsEff Yes
set MadGraph:Model heft
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set ChargedLeptonPairMassCut:MinMass 60*GeV
set ChargedLeptonPairMassCut:MaxMass 120*GeV
cd /Herwig/MatrixElements/Matchbox/Utility
insert DiagramGenerator:ExcludeInternal 0 /Herwig/Particles/gamma
## cuts on additional jets
cd /Herwig/Cuts/
# read Matchbox/DefaultPPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox/Scales/
set /Herwig/Merging/MergingFactory:ScaleChoice FixedScale
set FixedScale:FixedScale 125.*GeV
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## CMW - Scheme
##################################################
read snippets/Dipole_AutoTune_prel.in
### Use factor in alpha_s argument: alpha_s(q) -> alpha_s(fac*q)
### with fac=exp(-(67-3pi^2-10/3*Nf)/(33-2Nf))
read Merging/FactorCMWScheme.in
### Linear CMW multiplication:
### alpha_s(q) -> alpha_s(q)(1+K_g*alpha_s(q)/2pi )
# read Merging/LinearCMWScheme.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+#read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
cd /Herwig/Analysis
## Write HepMC events. Modify the PrintEvent interface for your needs.
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMCFile
## Setup the Rivet analysis:
#read snippets/Rivet.in
#insert Rivet:Analyses 0 XXX_2017_ABC123
## Here we collected a various Rivet analysis for Higgs at LHC
## at the 8 TeV. (The collection might not be complete.)
# read Merging/LHC8-H-Analysis.in
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
set /Herwig/Generators/EventGenerator:IntermediateOutput Yes
cd /Herwig/Generators
saverun LHC-H-Merging EventGenerator
diff --git a/src/Merging/LHC-J-Merging.in b/src/Merging/LHC-J-Merging.in
--- a/src/Merging/LHC-J-Merging.in
+++ b/src/Merging/LHC-J-Merging.in
@@ -1,191 +1,192 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Merging example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 7000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/Merging
set MergingFactory:OrderInAlphaS 2
set MergingFactory:OrderInAlphaEW 0
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do MergingFactory:Process p p -> j j [ j ]
set MergingFactory:NLOProcesses 1
# Set the merging scale deviding the parton shower
# from the matrix element region in phase space.
set Merger:MergingScale 20.*GeV
set Merger:MergingScaleSmearing 0.1
# The following lines control a preweighter,
# that can be used to force more events in higher
# HT or pt regions. The unweighted events are accepted
# with a enhanced probability W, that is divided fron the
# event weight once the event is accepted.
# W = ((HT/scale)^HTPower + (pt_max/scale)^MaxPTPower)
# with scale = MZ (can be changed)
# Note that the weights will therefore differ from "1"
# if the powers are not zero.
set MPreWeight:HTPower 0
set MPreWeight:MaxPTPower 0
set MPreWeight:OnlyColoured No
# The next line can switch of hadronization
# and MPI modelling. Use with care!!
# read Matchbox/PQCDLevel.in
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
read Matchbox/MadGraph-OpenLoops.in
# read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam
## and MadGraph-OpenLoops
# read Matchbox/HiggsEffective.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set ChargedLeptonPairMassCut:MinMass 60*GeV
set ChargedLeptonPairMassCut:MaxMass 120*GeV
cd /Herwig/MatrixElements/Matchbox/Utility
insert DiagramGenerator:ExcludeInternal 0 /Herwig/Particles/gamma
## cuts on additional jets
cd /Herwig/Cuts/
read Matchbox/DefaultPPJets.in
insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox/Scales/
set /Herwig/Merging/MergingFactory:ScaleChoice MaxJetPtScale
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## CMW - Scheme
##################################################
read snippets/Dipole_AutoTune_prel.in
### Use factor in alpha_s argument: alpha_s(q) -> alpha_s(fac*q)
### with fac=exp(-(67-3pi^2-10/3*Nf)/(33-2Nf))
read Merging/FactorCMWScheme.in
### Linear CMW multiplication:
### alpha_s(q) -> alpha_s(q)(1+K_g*alpha_s(q)/2pi )
# read Merging/LinearCMWScheme.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+# read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
cd /Herwig/Analysis
## Write HepMC events. Modify the PrintEvent interface for your needs.
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMCFile
## Setup the Rivet analysis:
#read snippets/Rivet.in
#insert Rivet:Analyses 0 XXX_2017_ABC123
## Here we collected a various Rivet analysis for Jets at LHC
## at the 7 TeV. (The collection might not be complete.)
# read Merging/LHC7-J-Analysis.in
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
set /Herwig/Generators/EventGenerator:IntermediateOutput Yes
cd /Herwig/Generators
saverun LHC-J-Merging EventGenerator
diff --git a/src/Merging/LHC-T-Merging.in b/src/Merging/LHC-T-Merging.in
--- a/src/Merging/LHC-T-Merging.in
+++ b/src/Merging/LHC-T-Merging.in
@@ -1,193 +1,194 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Merging example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 7000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/Merging
set MergingFactory:OrderInAlphaS 2
set MergingFactory:OrderInAlphaEW 0
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do MergingFactory:Process p p -> t tbar [ j]
set MergingFactory:NLOProcesses 1
# Set the merging scale deviding the parton shower
# from the matrix element region in phase space.
set Merger:MergingScale 20.*GeV
set Merger:MergingScaleSmearing 0.1
# The following lines control a preweighter,
# that can be used to force more events in higher
# HT or pt regions. The unweighted events are accepted
# with a enhanced probability W, that is divided fron the
# event weight once the event is accepted.
# W = ((HT/scale)^HTPower + (pt_max/scale)^MaxPTPower)
# with scale = MZ (can be changed)
# Note that the weights will therefore differ from "1"
# if the powers are not zero.
set MPreWeight:HTPower 0
set MPreWeight:MaxPTPower 0
set MPreWeight:OnlyColoured No
# The next line can switch of hadronization
# and MPI modelling. Use with care!!
# read Matchbox/PQCDLevel.in
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
read Matchbox/MadGraph-OpenLoops.in
# read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam and
## MadGraph-Openloops
# read Matchbox/HiggsEffective.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set ChargedLeptonPairMassCut:MinMass 60*GeV
set ChargedLeptonPairMassCut:MaxMass 120*GeV
cd /Herwig/MatrixElements/Matchbox/Utility
insert DiagramGenerator:ExcludeInternal 0 /Herwig/Particles/gamma
## cuts on additional jets
cd /Herwig/Cuts/
# read Matchbox/DefaultPPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox/Scales/
set /Herwig/Merging/MergingFactory:ScaleChoice TopPairMassScale
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## CMW - Scheme
##################################################
read snippets/Dipole_AutoTune_prel.in
### Use factor in alpha_s argument: alpha_s(q) -> alpha_s(fac*q)
### with fac=exp(-(67-3pi^2-10/3*Nf)/(33-2Nf))
read Merging/FactorCMWScheme.in
### Linear CMW multiplication:
### alpha_s(q) -> alpha_s(q)(1+K_g*alpha_s(q)/2pi )
# read Merging/LinearCMWScheme.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+# read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
cd /Herwig/Analysis
## Write HepMC events. Modify the PrintEvent interface for your needs.
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMCFile
## Setup the Rivet analysis:
#read snippets/Rivet.in
#insert Rivet:Analyses 0 XXX_2017_ABC123
## Here we collected a various Rivet analysis for Tops at LHC
## at the 7 TeV. (The collection might not be complete.)
# read Merging/LHC7-T-Analysis.in
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
set /Herwig/Generators/EventGenerator:IntermediateOutput Yes
cd /Herwig/Generators
saverun LHC-T-Merging EventGenerator
diff --git a/src/Merging/LHC-W-Merging.in b/src/Merging/LHC-W-Merging.in
--- a/src/Merging/LHC-W-Merging.in
+++ b/src/Merging/LHC-W-Merging.in
@@ -1,194 +1,195 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Merging example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 7000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/Merging
set MergingFactory:OrderInAlphaS 0
set MergingFactory:OrderInAlphaEW 2
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do MergingFactory:Process p p -> l nu [ j j ]
set MergingFactory:NLOProcesses 2
# Set the merging scale deviding the parton shower
# from the matrix element region in phase space.
set Merger:MergingScale 15.*GeV
set Merger:MergingScaleSmearing 0.1
# The following lines control a preweighter,
# that can be used to force more events in higher
# HT or pt regions. The unweighted events are accepted
# with a enhanced probability W, that is divided fron the
# event weight once the event is accepted.
# W = ((HT/scale)^HTPower + (pt_max/scale)^MaxPTPower)
# with scale = MZ (can be changed)
# Note that the weights will therefore differ from "1"
# if the powers are not zero.
set MPreWeight:HTPower 0
set MPreWeight:MaxPTPower 0
set MPreWeight:OnlyColoured No
# The next line can switch of hadronization
# and MPI modelling. Use with care!!
# read Matchbox/PQCDLevel.in
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
# read Matchbox/MadGraph-OpenLoops.in
# read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam and
## MadGraph-Openloops
# read Matchbox/HiggsEffective.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set /Herwig/Cuts/LeptonPairMassCut:MinMass 60*GeV
set /Herwig/Cuts/LeptonPairMassCut:MaxMass 120*GeV
cd /Herwig/MatrixElements/Matchbox/Utility
insert DiagramGenerator:ExcludeInternal 0 /Herwig/Particles/gamma
## cuts on additional jets
cd /Herwig/Cuts/
# read Matchbox/DefaultPPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox/Scales/
set /Herwig/Merging/MergingFactory:ScaleChoice LeptonPairMassScale
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## CMW - Scheme
##################################################
read snippets/Dipole_AutoTune_prel.in
### Use factor in alpha_s argument: alpha_s(q) -> alpha_s(fac*q)
### with fac=exp(-(67-3pi^2-10/3*Nf)/(33-2Nf))
read Merging/FactorCMWScheme.in
### Linear CMW multiplication:
### alpha_s(q) -> alpha_s(q)(1+K_g*alpha_s(q)/2pi )
# read Merging/LinearCMWScheme.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+# read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
cd /Herwig/Analysis
## Write HepMC events. Modify the PrintEvent interface for your needs.
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMCFile
## Setup the Rivet analysis:
#read snippets/Rivet.in
#insert Rivet:Analyses 0 XXX_2017_ABC123
## Here we collected a various Rivet analysis for Ws at LHC
## at the 7 TeV. (The collection might not be complete.)
# read Merging/LHC7-W-Analysis.in
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
set /Herwig/Generators/EventGenerator:IntermediateOutput Yes
cd /Herwig/Generators
saverun LHC-W-Merging EventGenerator
diff --git a/src/Merging/LHC-Z-Merging.in b/src/Merging/LHC-Z-Merging.in
--- a/src/Merging/LHC-Z-Merging.in
+++ b/src/Merging/LHC-Z-Merging.in
@@ -1,194 +1,195 @@
# -*- ThePEG-repository -*-
##################################################
## Herwig/Merging example input file
##################################################
##################################################
## Collider type
##################################################
read snippets/DipoleMerging.in
read snippets/PPCollider.in
read snippets/MonacoSampler.in
##################################################
## Beam energy sqrt(s)
##################################################
cd /Herwig/EventHandlers
set EventHandler:LuminosityFunction:Energy 7000*GeV
##################################################
## Process selection
##################################################
## Note that event generation may fail if no matching matrix element has
## been found. Coupling orders are with respect to the Born process,
## i.e. NLO QCD does not require an additional power of alphas.
## Model assumptions
read Matchbox/StandardModelLike.in
read Matchbox/DiagonalCKM.in
## Set the order of the couplings
cd /Herwig/Merging
set MergingFactory:OrderInAlphaS 0
set MergingFactory:OrderInAlphaEW 2
## Select the process
## You may use identifiers such as p, pbar, j, l, mu+, h0 etc.
do MergingFactory:Process p p -> e+ e- [ j j ]
set MergingFactory:NLOProcesses 2
# Set the merging scale deviding the parton shower
# from the matrix element region in phase space.
set Merger:MergingScale 15.*GeV
set Merger:MergingScaleSmearing 0.1
# The following lines control a preweighter,
# that can be used to force more events in higher
# HT or pt regions. The unweighted events are accepted
# with a enhanced probability W, that is divided fron the
# event weight once the event is accepted.
# W = ((HT/scale)^HTPower + (pt_max/scale)^MaxPTPower)
# with scale = MZ (can be changed)
# Note that the weights will therefore differ from "1"
# if the powers are not zero.
set MPreWeight:HTPower 0
set MPreWeight:MaxPTPower 0
set MPreWeight:OnlyColoured No
# The next line can switch of hadronization
# and MPI modelling. Use with care!!
# read Matchbox/PQCDLevel.in
## Special settings required for on-shell production of unstable particles
## enable for on-shell top production
# read Matchbox/OnShellTopProduction.in
## enable for on-shell W, Z or h production
# read Matchbox/OnShellWProduction.in
# read Matchbox/OnShellZProduction.in
# read Matchbox/OnShellHProduction.in
# Special settings for the VBF approximation
# read Matchbox/VBFDiagramsOnly.in
##################################################
## Matrix element library selection
##################################################
## Select a generic tree/loop combination or a
## specialized NLO package
# read Matchbox/MadGraph-GoSam.in
# read Matchbox/MadGraph-MadGraph.in
# read Matchbox/MadGraph-NJet.in
# read Matchbox/MadGraph-OpenLoops.in
# read Matchbox/HJets.in
# read Matchbox/VBFNLO.in
## Uncomment this to use ggh effective couplings
## currently only supported by MadGraph-GoSam and
## MadGraph-Openloops
# read Matchbox/HiggsEffective.in
##################################################
## Cut selection
## See the documentation for more options
##################################################
cd /Herwig/Cuts/
set ChargedLeptonPairMassCut:MinMass 60*GeV
set ChargedLeptonPairMassCut:MaxMass 120*GeV
cd /Herwig/MatrixElements/Matchbox/Utility
insert DiagramGenerator:ExcludeInternal 0 /Herwig/Particles/gamma
## cuts on additional jets
cd /Herwig/Cuts/
# read Matchbox/DefaultPPJets.in
# insert JetCuts:JetRegions 0 FirstJet
# insert JetCuts:JetRegions 1 SecondJet
# insert JetCuts:JetRegions 2 ThirdJet
# insert JetCuts:JetRegions 3 FourthJet
##################################################
## Scale choice
## See the documentation for more options
##################################################
cd /Herwig/MatrixElements/Matchbox/Scales/
set /Herwig/Merging/MergingFactory:ScaleChoice LeptonPairMassScale
##################################################
## Scale uncertainties
##################################################
# read Matchbox/MuDown.in
# read Matchbox/MuUp.in
##################################################
## Shower scale uncertainties
##################################################
# read Matchbox/MuQDown.in
# read Matchbox/MuQUp.in
##################################################
## CMW - Scheme
##################################################
read snippets/Dipole_AutoTune_prel.in
### Use factor in alpha_s argument: alpha_s(q) -> alpha_s(fac*q)
### with fac=exp(-(67-3pi^2-10/3*Nf)/(33-2Nf))
read Merging/FactorCMWScheme.in
### Linear CMW multiplication:
### alpha_s(q) -> alpha_s(q)(1+K_g*alpha_s(q)/2pi )
# read Merging/LinearCMWScheme.in
##################################################
## PDF choice
##################################################
read Matchbox/FiveFlavourNoBMassScheme.in
-read Matchbox/MMHT2014.in
+read Matchbox/CT14.in
+#read Matchbox/MMHT2014.in
##################################################
## Analyses
##################################################
cd /Herwig/Analysis
## Write HepMC events. Modify the PrintEvent interface for your needs.
# insert /Herwig/Generators/EventGenerator:AnalysisHandlers 0 HepMCFile
## Setup the Rivet analysis:
#read snippets/Rivet.in
#insert Rivet:Analyses 0 XXX_2017_ABC123
## Here we collected a various Rivet analysis for Zs at LHC
## at the 8 TeV. (The collection might not be complete.)
# read Merging/LHC7-Z-Analysis.in
##################################################
## Save the generator
##################################################
do /Herwig/Merging/MergingFactory:ProductionMode
set /Herwig/Generators/EventGenerator:IntermediateOutput Yes
cd /Herwig/Generators
saverun LHC-Z-Merging EventGenerator
diff --git a/src/defaults/Cuts.in b/src/defaults/Cuts.in
--- a/src/defaults/Cuts.in
+++ b/src/defaults/Cuts.in
@@ -1,118 +1,118 @@
# -*- ThePEG-repository -*-
###########################################################
# Default cuts (applied to the hard subprocess)
#
# Don't change values here, re-set them in your own input
# files using these as examples.
###########################################################
mkdir /Herwig/Matchers
cd /Herwig/Matchers
create ThePEG::Matcher<Lepton> Lepton
create ThePEG::Matcher<Neutrino> Neutrino
create ThePEG::Matcher<ChargedLepton> ChargedLepton
create ThePEG::Matcher<LightQuark> LightQuark
create ThePEG::Matcher<LightParticle> LightParticle
create ThePEG::Matcher<LightAntiQuark> LightAntiQuark
create ThePEG::Matcher<StandardQCDParton> StandardQCDParton
create ThePEG::Matcher<Photon> Photon
create ThePEG::Matcher<Top> Top
create ThePEG::Matcher<Bottom> Bottom
create ThePEG::Matcher<WBoson> WBoson
create ThePEG::Matcher<ZBoson> ZBoson
create ThePEG::Matcher<HiggsBoson> HiggsBoson
mkdir /Herwig/Cuts
cd /Herwig/Cuts
# cut on jet pt
create ThePEG::SimpleKTCut JetKtCut SimpleKTCut.so
newdef JetKtCut:Matcher /Herwig/Matchers/StandardQCDParton
newdef JetKtCut:MinKT 20.0*GeV
# cut on photon
create ThePEG::SimpleKTCut PhotonKtCut SimpleKTCut.so
newdef PhotonKtCut:Matcher /Herwig/Matchers/Photon
newdef PhotonKtCut:MinKT 20.0*GeV
newdef PhotonKtCut:MinEta -3.
newdef PhotonKtCut:MaxEta 3.
# cut on leptons
create ThePEG::SimpleKTCut LeptonKtCut SimpleKTCut.so
newdef LeptonKtCut:Matcher /Herwig/Matchers/Lepton
newdef LeptonKtCut:MinKT 0.0*GeV
# cut on charged leptons
create ThePEG::SimpleKTCut ChargedLeptonKtCut SimpleKTCut.so
newdef ChargedLeptonKtCut:Matcher /Herwig/Matchers/ChargedLepton
newdef ChargedLeptonKtCut:MinKT 0.0*GeV
# cut on top quarks
create ThePEG::KTRapidityCut TopKtCut KTRapidityCut.so
newdef TopKtCut:Matcher /Herwig/Matchers/Top
newdef TopKtCut:MinKT 0.0*GeV
# cut on W bosons
create ThePEG::KTRapidityCut WBosonKtCut KTRapidityCut.so
newdef WBosonKtCut:Matcher /Herwig/Matchers/WBoson
newdef WBosonKtCut:MinKT 0.0*GeV
# cut on Z bosons
create ThePEG::KTRapidityCut ZBosonKtCut KTRapidityCut.so
newdef ZBosonKtCut:Matcher /Herwig/Matchers/ZBoson
newdef ZBosonKtCut:MinKT 0.0*GeV
# cut on Higgs bosons
create ThePEG::KTRapidityCut HiggsBosonKtCut KTRapidityCut.so
newdef HiggsBosonKtCut:Matcher /Herwig/Matchers/HiggsBoson
newdef HiggsBosonKtCut:MinKT 0.0*GeV
# cut on Higgs bosons
create ThePEG::KTRapidityCut LightParticleKtCut KTRapidityCut.so
newdef LightParticleKtCut:Matcher /Herwig/Matchers/LightParticle
newdef LightParticleKtCut:MinKT 0.0*GeV
# create a cut on the invariant mass of lepton pairs
create ThePEG::V2LeptonsCut MassCut V2LeptonsCut.so
newdef MassCut:Families All
newdef MassCut:CComb All
newdef MassCut:MinM 20.*GeV
newdef MassCut:MaxM 14000.*GeV
# create a cut on Q^2 for neutral current DIS
create ThePEG::SimpleDISCut NeutralCurrentCut SimpleDISCut.so
newdef NeutralCurrentCut:MinQ2 20.
newdef NeutralCurrentCut:Current Neutral
# create a cut on Q^2 for charged current DIS
create ThePEG::SimpleDISCut ChargedCurrentCut SimpleDISCut.so
newdef ChargedCurrentCut:MinQ2 20.
newdef ChargedCurrentCut:Current Charged
# create a cut of Q^2 for charged current DIS
# Default Cuts object
create ThePEG::Cuts Cuts
newdef /Herwig/Generators/EventGenerator:EventHandler:Cuts /Herwig/Cuts/Cuts
newdef Cuts:MHatMin 20.*GeV
# insert into hadron cuts (by defaults)
insert Cuts:OneCuts[0] JetKtCut
insert Cuts:OneCuts[1] PhotonKtCut
insert Cuts:OneCuts[2] LeptonKtCut
insert Cuts:OneCuts[3] TopKtCut
insert Cuts:OneCuts[4] WBosonKtCut
insert Cuts:OneCuts[5] ZBosonKtCut
insert Cuts:OneCuts[6] HiggsBosonKtCut
insert Cuts:OneCuts[7] ChargedLeptonKtCut
insert Cuts:MultiCuts[0] MassCut
# create diffrent cuts object for MinBias to avoid numerical problems
create ThePEG::Cuts MinBiasCuts
newdef MinBiasCuts:ScaleMin 2.0*GeV2
-newdef MinBiasCuts:X1Min 0.055
-newdef MinBiasCuts:X2Min 0.055
+newdef MinBiasCuts:X1Min 0.011
+newdef MinBiasCuts:X2Min 0.011
newdef MinBiasCuts:MHatMin 0.0*GeV
diff --git a/src/defaults/Hadronization.in b/src/defaults/Hadronization.in
--- a/src/defaults/Hadronization.in
+++ b/src/defaults/Hadronization.in
@@ -1,97 +1,98 @@
# -*- ThePEG-repository -*-
############################################################
# Setup of default hadronization
#
# There are no user servicable parts inside.
#
# Anything that follows below should only be touched if you
# know what you're doing.
#############################################################
cd /Herwig/Particles
create ThePEG::ParticleData Cluster
setup Cluster 81 Cluster 0.00990 0.0 0.0 0.0 0 0 0 1
create ThePEG::ParticleData Remnant
setup Remnant 82 Remnant 0.00990 0.0 0.0 0.0 0 0 0 1
mkdir /Herwig/Hadronization
cd /Herwig/Hadronization
create Herwig::ClusterHadronizationHandler ClusterHadHandler
create Herwig::PartonSplitter PartonSplitter
create Herwig::ClusterFinder ClusterFinder
create Herwig::ColourReconnector ColourReconnector
create Herwig::ClusterFissioner ClusterFissioner
create Herwig::LightClusterDecayer LightClusterDecayer
create Herwig::ClusterDecayer ClusterDecayer
create Herwig::HwppSelector HadronSelector
newdef ClusterHadHandler:PartonSplitter PartonSplitter
newdef ClusterHadHandler:ClusterFinder ClusterFinder
newdef ClusterHadHandler:ColourReconnector ColourReconnector
newdef ClusterHadHandler:ClusterFissioner ClusterFissioner
newdef ClusterHadHandler:LightClusterDecayer LightClusterDecayer
newdef ClusterHadHandler:ClusterDecayer ClusterDecayer
newdef ClusterHadHandler:MinVirtuality2 0.1*GeV2
newdef ClusterHadHandler:MaxDisplacement 1.0e-10*millimeter
newdef ClusterHadHandler:UnderlyingEventHandler NULL
newdef ClusterFissioner:HadronSelector HadronSelector
newdef LightClusterDecayer:HadronSelector HadronSelector
newdef ClusterDecayer:HadronSelector HadronSelector
newdef ColourReconnector:ColourReconnection Yes
-newdef ColourReconnector:ReconnectionProbability 0.652710
-newdef ColourReconnector:Algorithm Plain
-newdef ColourReconnector:InitialTemperature 0.01
-newdef ColourReconnector:AnnealingFactor 0.21
-newdef ColourReconnector:AnnealingSteps 10
-newdef ColourReconnector:TriesPerStepFactor 0.66
+newdef ColourReconnector:ReconnectionProbabilityBaryonic 0.57
+newdef ColourReconnector:ReconnectionProbability 0.89
+newdef ColourReconnector:Algorithm Baryonic
newdef ColourReconnector:OctetTreatment All
# Clustering parameters for light quarks
newdef ClusterFissioner:ClMaxLight 3.649
newdef ClusterFissioner:ClPowLight 2.780
newdef ClusterFissioner:PSplitLight 0.899
newdef ClusterDecayer:ClDirLight 1
newdef ClusterDecayer:ClSmrLight 0.78
# Clustering parameters for b-quarks
newdef ClusterFissioner:ClMaxBottom 3.757
newdef ClusterFissioner:ClPowBottom 0.547
newdef ClusterFissioner:PSplitBottom 0.625
newdef ClusterDecayer:ClDirBottom 1
newdef ClusterDecayer:ClSmrBottom 0.078
newdef HadronSelector:SingleHadronLimitBottom 0.000
# Clustering parameters for c-quarks
newdef ClusterFissioner:ClMaxCharm 3.950
newdef ClusterFissioner:ClPowCharm 2.559
newdef ClusterFissioner:PSplitCharm 0.994
newdef ClusterDecayer:ClDirCharm 1
newdef ClusterDecayer:ClSmrCharm 0.163
newdef HadronSelector:SingleHadronLimitCharm 0.000
# Clustering parameters for exotic quarks
# (e.g. hadronizing Susy particles)
newdef ClusterFissioner:ClMaxExotic 2.7*GeV
newdef ClusterFissioner:ClPowExotic 1.46
newdef ClusterFissioner:PSplitExotic 1.00
newdef ClusterDecayer:ClDirExotic 1
newdef ClusterDecayer:ClSmrExotic 0.
newdef HadronSelector:SingleHadronLimitExotic 0.
#
+newdef PartonSplitter:SplitPwtSquark 0.824135
+newdef PartonSplitter:Split uds
+
+#
newdef HadronSelector:PwtDquark 1.0
newdef HadronSelector:PwtUquark 1.0
-newdef HadronSelector:PwtSquark 0.700
+newdef HadronSelector:PwtSquark 0.291717
newdef HadronSelector:PwtCquark 1.0
newdef HadronSelector:PwtBquark 1.0
newdef HadronSelector:PwtDIquark 0.298
newdef HadronSelector:SngWt 0.74
newdef HadronSelector:DecWt 0.62
newdef HadronSelector:Mode 1
newdef HadronSelector:BelowThreshold All
create Herwig::SpinHadronizer SpinHadronizer
diff --git a/src/defaults/MatrixElements.in b/src/defaults/MatrixElements.in
--- a/src/defaults/MatrixElements.in
+++ b/src/defaults/MatrixElements.in
@@ -1,249 +1,250 @@
# -*- ThePEG-repository -*-
##############################################################################
# Setup of default matrix elements.
#
# Only one ME is activated by default, but this file lists
# some alternatives. All available MEs can be found in the
# 'include/Herwig/MatrixElements' subdirectory of your Herwig
# installation.
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Instead of editing this file directly, you should reset
# the matrix elements in your own input files:
#
# - create your custom SubProcessHandler
# - insert the MEs you need
# - set your SubProcessHandler instead of the default (see HerwigDefaults.in)
##############################################################################
mkdir /Herwig/MatrixElements
cd /Herwig/MatrixElements
library HwMELepton.so
library HwMEHadron.so
library HwMEDIS.so
############################################################
# e+e- matrix elements
############################################################
# e+e- > q qbar
create Herwig::MEee2gZ2qq MEee2gZ2qq
newdef MEee2gZ2qq:MinimumFlavour 1
newdef MEee2gZ2qq:MaximumFlavour 5
newdef MEee2gZ2qq:AlphaQCD /Herwig/Shower/AlphaQCD
newdef MEee2gZ2qq:AlphaQED /Herwig/Shower/AlphaQED
# e+e- -> l+l-
create Herwig::MEee2gZ2ll MEee2gZ2ll
newdef MEee2gZ2ll:Allowed Charged
set MEee2gZ2ll:AlphaQED /Herwig/Shower/AlphaQED
# e+e- -> W+W- ZZ
create Herwig::MEee2VV MEee2VV
# e+e- -> ZH
create Herwig::MEee2ZH MEee2ZH
newdef MEee2ZH:Coupling /Herwig/Shower/AlphaQCD
# e+e- -> e+e-H/nu_enu_ebarH
create Herwig::MEee2HiggsVBF MEee2HiggsVBF
############################################################
# NLO (POWHEG e+e- matrix elements
############################################################
library HwPowhegMELepton.so
create Herwig::MEee2gZ2qqPowheg PowhegMEee2gZ2qq
newdef PowhegMEee2gZ2qq:MinimumFlavour 1
newdef PowhegMEee2gZ2qq:MaximumFlavour 5
newdef PowhegMEee2gZ2qq:AlphaQCD /Herwig/Shower/AlphaQCD
newdef PowhegMEee2gZ2qq:AlphaQED /Herwig/Shower/AlphaQED
create Herwig::MEee2gZ2llPowheg PowhegMEee2gZ2ll
newdef PowhegMEee2gZ2ll:Allowed Charged
set PowhegMEee2gZ2ll:AlphaQED /Herwig/Shower/AlphaQED
############################################################
# hadron-hadron matrix elements
############################################################
###################################
# Electroweak processes
###################################
# q qbar -> gamma/Z -> l+l-
create Herwig::MEqq2gZ2ff MEqq2gZ2ff
newdef MEqq2gZ2ff:Process 3
newdef MEqq2gZ2ff:Coupling /Herwig/Shower/AlphaQCD
# q qbar to W -> l nu
create Herwig::MEqq2W2ff MEqq2W2ff
newdef MEqq2W2ff:Process 2
newdef MEqq2W2ff:Coupling /Herwig/Shower/AlphaQCD
# W+jet
create Herwig::MEPP2WJet MEWJet
newdef MEWJet:WDecay Leptons
# Z+jet
create Herwig::MEPP2ZJet MEZJet
newdef MEZJet:ZDecay ChargedLeptons
# PP->WW/WZ/ZZ
create Herwig::MEPP2VV MEPP2VV
# PP->WZ gamma
create Herwig::MEPP2VGamma MEPP2VGamma
###################################
# Photon and jet processes
###################################
# qqbar/gg -> gamma gamma
create Herwig::MEPP2GammaGamma MEGammaGamma
# hadron-hadron to gamma+jet
create Herwig::MEPP2GammaJet MEGammaJet
# QCD 2-to-2
create Herwig::MEQCD2to2 MEQCD2to2
# MinBias
create Herwig::MEMinBias MEMinBias
-
+newdef MEMinBias:csNorm 0.01
+newdef MEMinBias:Scale 2.0
###################################
# Heavy Quark
###################################
# qqbar/gg -> t tbar
create Herwig::MEPP2QQ MEHeavyQuark
create Herwig::MEPP2SingleTop MESingleTopTChannel
set MESingleTopTChannel:Process tChannel
create Herwig::MEPP2SingleTop MESingleTopSChannel
set MESingleTopSChannel:Process sChannel
create Herwig::MEPP2SingleTop MESingleTopTW
set MESingleTopTW:Process tW
###################################
# Higgs processes
###################################
# hadron-hadron to higgs
create Herwig::MEPP2Higgs MEHiggs
newdef MEHiggs:ShapeScheme MassGenerator
newdef MEHiggs:Process gg
newdef MEHiggs:Coupling /Herwig/Shower/AlphaQCD
# hadron-hadron to higgs+jet
create Herwig::MEPP2HiggsJet MEHiggsJet
# PP->ZH
create Herwig::MEPP2ZH MEPP2ZH
newdef MEPP2ZH:Coupling /Herwig/Shower/AlphaQCD
# PP->WH
create Herwig::MEPP2WH MEPP2WH
newdef MEPP2WH:Coupling /Herwig/Shower/AlphaQCD
# PP -> Higgs via VBF
create Herwig::MEPP2HiggsVBF MEPP2HiggsVBF
newdef MEPP2HiggsVBF:ShowerAlphaQCD /Herwig/Shower/AlphaQCD
# PP -> t tbar Higgs
create Herwig::MEPP2QQHiggs MEPP2ttbarH
newdef MEPP2ttbarH:QuarkType Top
# PP -> b bbar Higgs
create Herwig::MEPP2QQHiggs MEPP2bbbarH
newdef MEPP2bbbarH:QuarkType Bottom
##########################################################
# Hadron-Hadron NLO matrix elements in the Powheg scheme
##########################################################
library HwPowhegMEHadron.so
# q qbar -> gamma/Z -> l+l-
create Herwig::MEqq2gZ2ffPowheg PowhegMEqq2gZ2ff
newdef PowhegMEqq2gZ2ff:Process 3
newdef PowhegMEqq2gZ2ff:Coupling /Herwig/Shower/AlphaQCD
# q qbar to W -> l nu
create Herwig::MEqq2W2ffPowheg PowhegMEqq2W2ff
newdef PowhegMEqq2W2ff:Process 2
newdef PowhegMEqq2W2ff:Coupling /Herwig/Shower/AlphaQCD
# PP->ZH
create Herwig::MEPP2ZHPowheg PowhegMEPP2ZH
newdef PowhegMEPP2ZH:Coupling /Herwig/Shower/AlphaQCD
# PP->WH
create Herwig::MEPP2WHPowheg PowhegMEPP2WH
newdef PowhegMEPP2WH:Coupling /Herwig/Shower/AlphaQCD
# hadron-hadron to higgs
create Herwig::MEPP2HiggsPowheg PowhegMEHiggs
newdef PowhegMEHiggs:ShapeScheme MassGenerator
newdef PowhegMEHiggs:Process gg
newdef PowhegMEHiggs:Coupling /Herwig/Shower/AlphaQCD
# PP->VV
create Herwig::MEPP2VVPowheg PowhegMEPP2VV
newdef PowhegMEPP2VV:Coupling /Herwig/Shower/AlphaQCD
# PP -> Higgs via VBF
create Herwig::MEPP2HiggsVBFPowheg PowhegMEPP2HiggsVBF
newdef PowhegMEPP2HiggsVBF:ShowerAlphaQCD /Herwig/Shower/AlphaQCD
# PP -> diphoton NLO
create Herwig::MEPP2GammaGammaPowheg MEGammaGammaPowheg
set MEGammaGammaPowheg:Process 0
set MEGammaGammaPowheg:Contribution 1
set MEGammaGammaPowheg:ShowerAlphaQCD /Herwig/Shower/AlphaQCD
set MEGammaGammaPowheg:ShowerAlphaQED /Herwig/Shower/AlphaQED
##########################################################
# DIS matrix elements
##########################################################
# neutral current
create Herwig::MENeutralCurrentDIS MEDISNC
newdef MEDISNC:Coupling /Herwig/Shower/AlphaQCD
newdef MEDISNC:Contribution 0
# charged current
create Herwig::MEChargedCurrentDIS MEDISCC
newdef MEDISCC:Coupling /Herwig/Shower/AlphaQCD
newdef MEDISCC:Contribution 0
# neutral current (POWHEG)
create Herwig::MENeutralCurrentDIS PowhegMEDISNC
newdef PowhegMEDISNC:Coupling /Herwig/Shower/AlphaQCD
newdef PowhegMEDISNC:Contribution 1
# charged current (POWHEG)
create Herwig::MEChargedCurrentDIS PowhegMEDISCC
newdef PowhegMEDISCC:Coupling /Herwig/Shower/AlphaQCD
newdef PowhegMEDISCC:Contribution 1
##########################################################
# Gamma-Gamma matrix elements
##########################################################
# fermion-antiferimon
create Herwig::MEGammaGamma2ff MEgg2ff HwMEGammaGamma.so
# W+ W-
create Herwig::MEGammaGamma2WW MEgg2WW HwMEGammaGamma.so
##########################################################
# Gamma-Hadron matrix elements
##########################################################
# gamma parton -> 2 jets
create Herwig::MEGammaP2Jets MEGammaP2Jets HwMEGammaHadron.so
##########################################################
# Set up the Subprocesses
#
# Generic for all colliders
##########################################################
create ThePEG::SubProcessHandler SubProcess
newdef SubProcess:PartonExtractor /Herwig/Partons/PPExtractor
diff --git a/src/defaults/PDF.in.in b/src/defaults/PDF.in.in
--- a/src/defaults/PDF.in.in
+++ b/src/defaults/PDF.in.in
@@ -1,77 +1,77 @@
# -*- ThePEG-repository -*-
# PDF.in. Generated from PDF.in.in by Makefile.am
#####################################
# Default PDF set
#####################################
# Handle leptons
create ThePEG::LeptonLeptonPDF LeptonPDF LeptonLeptonPDF.so
newdef LeptonPDF:RemnantHandler LeptonRemnants
newdef /Herwig/Particles/e-:PDF LeptonPDF
newdef /Herwig/Particles/e+:PDF LeptonPDF
# Handle hadrons
# NEW DEFAULT for Hw 7
library ThePEGLHAPDF.so
create ThePEG::LHAPDF HardLOPDF
newdef HardLOPDF:RemnantHandler HadronRemnants
create ThePEG::LHAPDF HardNLOPDF
newdef HardNLOPDF:RemnantHandler HadronRemnants
create ThePEG::LHAPDF ShowerLOPDF
newdef ShowerLOPDF:RemnantHandler HadronRemnants
create ThePEG::LHAPDF ShowerNLOPDF
newdef ShowerNLOPDF:RemnantHandler HadronRemnants
create ThePEG::LHAPDF MPIPDF
newdef MPIPDF:RemnantHandler HadronRemnants
create ThePEG::LHAPDF RemnantPDF
newdef RemnantPDF:RemnantHandler HadronRemnants
-newdef HardLOPDF:PDFName MMHT2014lo68cl
-newdef HardNLOPDF:PDFName MMHT2014nlo68cl
+newdef HardLOPDF:PDFName CT14lo
+newdef HardNLOPDF:PDFName CT14nlo
-newdef ShowerLOPDF:PDFName MMHT2014lo68cl
-newdef ShowerNLOPDF:PDFName MMHT2014nlo68cl
+newdef ShowerLOPDF:PDFName CT14lo
+newdef ShowerNLOPDF:PDFName CT14nlo
-newdef MPIPDF:PDFName MMHT2014lo68cl
-newdef RemnantPDF:PDFName MMHT2014lo68cl
-
+newdef MPIPDF:PDFName CT14lo
+newdef RemnantPDF:PDFName CT14lo
+
# set LO PDFS for hard process and can be changed later
newdef /Herwig/Particles/p+:PDF HardLOPDF
newdef /Herwig/Particles/pbar-:PDF HardLOPDF
# photons from leptons in WW approx
create ThePEG::WeizsackerWilliamsPDF WWPDF WeizsackerWilliamsPDF.so
create ThePEG::UnResolvedRemnant /Herwig/Partons/LeptonGammaRemnants
newdef /Herwig/Partons/WWPDF:RemnantHandler /Herwig/Partons/LeptonGammaRemnants
# photons from protons in Budnev approx
create ThePEG::BudnevPDF BudnevPDF BudnevPDF.so
create ThePEG::UnResolvedRemnant /Herwig/Partons/HadronGammaRemnants
newdef /Herwig/Partons/BudnevPDF:RemnantHandler /Herwig/Partons/HadronGammaRemnants
# partons inside photons
create Herwig::SaSPhotonPDF /Herwig/Partons/SaSPDF HwSaSPhotonPDF.so
set /Herwig/Partons/SaSPDF:RemnantHandler /Herwig/Partons/HadronRemnants
# pomerons
create Herwig::PomeronFlux PomeronFlux HwPomeronFlux.so
newdef PomeronFlux:PDFFit Pomeron2006A
newdef PomeronFlux:Q2Max 1.
newdef PomeronFlux:Q2Min 1.0e-6
create ThePEG::UnResolvedRemnant /Herwig/Partons/ProtonRemnant UnResolvedRemnant.so
newdef /Herwig/Partons/PomeronFlux:RemnantHandler /Herwig/Partons/ProtonRemnant
create Herwig::PomeronPDF PomeronPDF HwPomeronPDF.so
newdef PomeronPDF:RemnantHandler HadronRemnants
newdef PomeronPDF:RootName @HERWIG_PDF_POMERON@
newdef /Herwig/Particles/pomeron:PDF PomeronPDF
newdef PomeronPDF:PDFFit 2006A
diff --git a/src/defaults/Partons.in b/src/defaults/Partons.in
--- a/src/defaults/Partons.in
+++ b/src/defaults/Partons.in
@@ -1,36 +1,37 @@
# -*- ThePEG-repository -*-
mkdir /Herwig/Partons
cd /Herwig/Partons
create ThePEG::NoRemnants NoRemnants
create ThePEG::NoPDF NoPDF
newdef NoPDF:RemnantHandler NoRemnants
create ThePEG::UnResolvedRemnant LeptonRemnants UnResolvedRemnant.so
create Herwig::HwRemDecayer RemnantDecayer HwShower.so
newdef RemnantDecayer:PomeronStructure Gluon
-newdef RemnantDecayer:colourDisrupt 0.7983
+newdef RemnantDecayer:colourDisrupt 0.0
newdef RemnantDecayer:ladderPower -0.088983
newdef RemnantDecayer:ladderNorm 1.086029
+newdef RemnantDecayer:PtDistribution 4
create ThePEG::SoftRemnantHandler HadronRemnants
newdef HadronRemnants:RemnantDecayer RemnantDecayer
read PDF.in
# Make particle extractors
create ThePEG::PartonExtractor EEExtractor
newdef EEExtractor:NoPDF NoPDF
cp EEExtractor PPExtractor
newdef PPExtractor:FlatSHatY 1
newdef PPExtractor:FirstPDF HardLOPDF
newdef PPExtractor:SecondPDF HardLOPDF
cp EEExtractor EPExtractor
newdef EPExtractor:FlatSHatY 1
newdef PPExtractor:FirstPDF HardLOPDF
newdef PPExtractor:SecondPDF HardLOPDF
newdef EPExtractor:SecondPDF HardLOPDF
diff --git a/src/defaults/Shower.in b/src/defaults/Shower.in
--- a/src/defaults/Shower.in
+++ b/src/defaults/Shower.in
@@ -1,321 +1,321 @@
# -*- ThePEG-repository -*-
############################################################
# Setup of default parton shower
#
# Useful switches for users are marked near the top of
# this file.
#
# Don't edit this file directly, but reset the switches
# in your own input files!
############################################################
library HwMPI.so
library HwShower.so
library HwMatching.so
mkdir /Herwig/Shower
cd /Herwig/Shower
create Herwig::QTildeShowerHandler ShowerHandler
newdef ShowerHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler
newdef ShowerHandler:RemDecayer /Herwig/Partons/RemnantDecayer
# use LO PDFs for Shower, can be changed later
newdef ShowerHandler:PDFA /Herwig/Partons/ShowerLOPDF
newdef ShowerHandler:PDFB /Herwig/Partons/ShowerLOPDF
newdef ShowerHandler:PDFARemnant /Herwig/Partons/RemnantPDF
newdef ShowerHandler:PDFBRemnant /Herwig/Partons/RemnantPDF
#####################################
# initial setup, don't change these!
#####################################
create Herwig::SplittingGenerator SplittingGenerator
create Herwig::ShowerAlphaQCD AlphaQCD
create Herwig::ShowerAlphaQED AlphaQED
create Herwig::PartnerFinder PartnerFinder
-newdef PartnerFinder:PartnerMethod 1
-newdef PartnerFinder:ScaleChoice 1
+newdef PartnerFinder:PartnerMethod 0
+newdef PartnerFinder:ScaleChoice 0
create Herwig::KinematicsReconstructor KinematicsReconstructor
newdef KinematicsReconstructor:ReconstructionOption Colour3
newdef KinematicsReconstructor:InitialStateReconOption SofterFraction
newdef KinematicsReconstructor:InitialInitialBoostOption LongTransBoost
newdef KinematicsReconstructor:FinalFinalWeight Yes
newdef /Herwig/Partons/RemnantDecayer:AlphaS AlphaQCD
newdef /Herwig/Partons/RemnantDecayer:AlphaEM AlphaQED
newdef ShowerHandler:PartnerFinder PartnerFinder
newdef ShowerHandler:KinematicsReconstructor KinematicsReconstructor
newdef ShowerHandler:SplittingGenerator SplittingGenerator
newdef ShowerHandler:SpinCorrelations Yes
newdef ShowerHandler:SoftCorrelations Singular
##################################################################
# Intrinsic pT
#
# Recommended:
# 1.9 GeV for Tevatron W/Z production.
# 2.1 GeV for LHC W/Z production at 10 TeV
# 2.2 GeV for LHC W/Z production at 14 TeV
#
# Set all parameters to 0 to disable
##################################################################
-newdef ShowerHandler:IntrinsicPtGaussian 1.3*GeV
+newdef ShowerHandler:IntrinsicPtGaussian 2.2*GeV
newdef ShowerHandler:IntrinsicPtBeta 0
newdef ShowerHandler:IntrinsicPtGamma 0*GeV
newdef ShowerHandler:IntrinsicPtIptmax 0*GeV
#############################################################
# Set up truncated shower handler.
#############################################################
create Herwig::PowhegShowerHandler PowhegShowerHandler
set PowhegShowerHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler
set PowhegShowerHandler:RemDecayer /Herwig/Partons/RemnantDecayer
newdef PowhegShowerHandler:PDFA /Herwig/Partons/ShowerLOPDF
newdef PowhegShowerHandler:PDFB /Herwig/Partons/ShowerLOPDF
newdef PowhegShowerHandler:PDFARemnant /Herwig/Partons/RemnantPDF
newdef PowhegShowerHandler:PDFBRemnant /Herwig/Partons/RemnantPDF
newdef PowhegShowerHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler
newdef PowhegShowerHandler:RemDecayer /Herwig/Partons/RemnantDecayer
newdef PowhegShowerHandler:PDFA /Herwig/Partons/ShowerLOPDF
newdef PowhegShowerHandler:PDFB /Herwig/Partons/ShowerLOPDF
newdef PowhegShowerHandler:PDFARemnant /Herwig/Partons/RemnantPDF
newdef PowhegShowerHandler:PDFBRemnant /Herwig/Partons/RemnantPDF
newdef PowhegShowerHandler:PartnerFinder PartnerFinder
newdef PowhegShowerHandler:KinematicsReconstructor KinematicsReconstructor
newdef PowhegShowerHandler:SplittingGenerator SplittingGenerator
newdef PowhegShowerHandler:Interactions QCDandQED
newdef PowhegShowerHandler:SpinCorrelations Yes
newdef PowhegShowerHandler:SoftCorrelations Singular
-newdef PowhegShowerHandler:IntrinsicPtGaussian 1.3*GeV
+newdef PowhegShowerHandler:IntrinsicPtGaussian 2.2*GeV
newdef PowhegShowerHandler:IntrinsicPtBeta 0
newdef PowhegShowerHandler:IntrinsicPtGamma 0*GeV
newdef PowhegShowerHandler:IntrinsicPtIptmax 0*GeV
newdef PowhegShowerHandler:EvolutionScheme DotProduct
#############################################################
# End of interesting user servicable section.
#
# Anything that follows below should only be touched if you
# know what you're doing.
#
# Really.
#############################################################
#
# a few default values
newdef ShowerHandler:MECorrMode 1
newdef ShowerHandler:EvolutionScheme DotProduct
newdef AlphaQCD:ScaleFactor 1.0
newdef AlphaQCD:NPAlphaS 2
newdef AlphaQCD:Qmin 0.935
newdef AlphaQCD:NumberOfLoops 2
newdef AlphaQCD:AlphaIn 0.1186
#
#
# Lets set up all the splittings
create Herwig::HalfHalfOneSplitFn QtoQGammaSplitFn
set QtoQGammaSplitFn:InteractionType QED
set QtoQGammaSplitFn:ColourStructure ChargedChargedNeutral
set QtoQGammaSplitFn:AngularOrdered Yes
set QtoQGammaSplitFn:StrictAO Yes
create Herwig::HalfHalfOneSplitFn QtoQGSplitFn
newdef QtoQGSplitFn:InteractionType QCD
newdef QtoQGSplitFn:ColourStructure TripletTripletOctet
set QtoQGSplitFn:AngularOrdered Yes
set QtoQGSplitFn:StrictAO Yes
create Herwig::OneOneOneSplitFn GtoGGSplitFn
newdef GtoGGSplitFn:InteractionType QCD
newdef GtoGGSplitFn:ColourStructure OctetOctetOctet
set GtoGGSplitFn:AngularOrdered Yes
set GtoGGSplitFn:StrictAO Yes
create Herwig::OneOneOneMassiveSplitFn WtoWGammaSplitFn
newdef WtoWGammaSplitFn:InteractionType QED
newdef WtoWGammaSplitFn:ColourStructure ChargedChargedNeutral
set WtoWGammaSplitFn:AngularOrdered Yes
set WtoWGammaSplitFn:StrictAO Yes
create Herwig::OneHalfHalfSplitFn GtoQQbarSplitFn
newdef GtoQQbarSplitFn:InteractionType QCD
newdef GtoQQbarSplitFn:ColourStructure OctetTripletTriplet
set GtoQQbarSplitFn:AngularOrdered Yes
set GtoQQbarSplitFn:StrictAO Yes
create Herwig::OneHalfHalfSplitFn GammatoQQbarSplitFn
newdef GammatoQQbarSplitFn:InteractionType QED
newdef GammatoQQbarSplitFn:ColourStructure NeutralChargedCharged
set GammatoQQbarSplitFn:AngularOrdered Yes
set GammatoQQbarSplitFn:StrictAO Yes
create Herwig::HalfOneHalfSplitFn QtoGQSplitFn
newdef QtoGQSplitFn:InteractionType QCD
newdef QtoGQSplitFn:ColourStructure TripletOctetTriplet
set QtoGQSplitFn:AngularOrdered Yes
set QtoGQSplitFn:StrictAO Yes
create Herwig::HalfOneHalfSplitFn QtoGammaQSplitFn
newdef QtoGammaQSplitFn:InteractionType QED
newdef QtoGammaQSplitFn:ColourStructure ChargedNeutralCharged
set QtoGammaQSplitFn:AngularOrdered Yes
set QtoGammaQSplitFn:StrictAO Yes
#
# Now the Sudakovs
create Herwig::PTCutOff PTCutOff
newdef PTCutOff:pTmin 0.958*GeV
create Herwig::SudakovFormFactor SudakovCommon
newdef SudakovCommon:Alpha AlphaQCD
newdef SudakovCommon:Cutoff PTCutOff
newdef SudakovCommon:PDFmax 1.0
cp SudakovCommon QtoQGSudakov
newdef QtoQGSudakov:SplittingFunction QtoQGSplitFn
newdef QtoQGSudakov:PDFmax 1.9
cp SudakovCommon QtoQGammaSudakov
set QtoQGammaSudakov:SplittingFunction QtoQGammaSplitFn
set QtoQGammaSudakov:Alpha AlphaQED
set QtoQGammaSudakov:PDFmax 1.9
cp QtoQGammaSudakov LtoLGammaSudakov
cp PTCutOff LtoLGammaPTCutOff
# Technical parameter to stop evolution.
set LtoLGammaPTCutOff:pTmin 0.000001
set LtoLGammaSudakov:Cutoff LtoLGammaPTCutOff
cp SudakovCommon GtoGGSudakov
newdef GtoGGSudakov:SplittingFunction GtoGGSplitFn
newdef GtoGGSudakov:PDFmax 2.0
cp SudakovCommon WtoWGammaSudakov
newdef WtoWGammaSudakov:SplittingFunction WtoWGammaSplitFn
set WtoWGammaSudakov:Alpha AlphaQED
cp SudakovCommon GtoQQbarSudakov
newdef GtoQQbarSudakov:SplittingFunction GtoQQbarSplitFn
newdef GtoQQbarSudakov:PDFmax 120.0
cp SudakovCommon GammatoQQbarSudakov
newdef GammatoQQbarSudakov:SplittingFunction GammatoQQbarSplitFn
set GammatoQQbarSudakov:Alpha AlphaQED
newdef GammatoQQbarSudakov:PDFmax 120.0
cp SudakovCommon GtobbbarSudakov
newdef GtobbbarSudakov:SplittingFunction GtoQQbarSplitFn
newdef GtobbbarSudakov:PDFmax 40000.0
cp SudakovCommon GtoccbarSudakov
newdef GtoccbarSudakov:SplittingFunction GtoQQbarSplitFn
newdef GtoccbarSudakov:PDFmax 2000.0
cp SudakovCommon QtoGQSudakov
newdef QtoGQSudakov:SplittingFunction QtoGQSplitFn
cp SudakovCommon QtoGammaQSudakov
newdef QtoGammaQSudakov:SplittingFunction QtoGammaQSplitFn
set QtoGammaQSudakov:Alpha AlphaQED
cp SudakovCommon utoGuSudakov
newdef utoGuSudakov:SplittingFunction QtoGQSplitFn
newdef utoGuSudakov:PDFFactor OverOneMinusZ
newdef utoGuSudakov:PDFmax 5.0
cp SudakovCommon dtoGdSudakov
newdef dtoGdSudakov:SplittingFunction QtoGQSplitFn
newdef dtoGdSudakov:PDFFactor OverOneMinusZ
#
# Now add the final splittings
#
do SplittingGenerator:AddFinalSplitting u->u,g; QtoQGSudakov
do SplittingGenerator:AddFinalSplitting d->d,g; QtoQGSudakov
do SplittingGenerator:AddFinalSplitting s->s,g; QtoQGSudakov
do SplittingGenerator:AddFinalSplitting c->c,g; QtoQGSudakov
do SplittingGenerator:AddFinalSplitting b->b,g; QtoQGSudakov
do SplittingGenerator:AddFinalSplitting t->t,g; QtoQGSudakov
#
do SplittingGenerator:AddFinalSplitting g->g,g; GtoGGSudakov
#
do SplittingGenerator:AddFinalSplitting g->u,ubar; GtoQQbarSudakov
do SplittingGenerator:AddFinalSplitting g->d,dbar; GtoQQbarSudakov
do SplittingGenerator:AddFinalSplitting g->s,sbar; GtoQQbarSudakov
do SplittingGenerator:AddFinalSplitting g->c,cbar; GtoccbarSudakov
do SplittingGenerator:AddFinalSplitting g->b,bbar; GtobbbarSudakov
do SplittingGenerator:AddFinalSplitting g->t,tbar; GtoQQbarSudakov
#
do SplittingGenerator:AddFinalSplitting gamma->u,ubar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->d,dbar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->s,sbar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->c,cbar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->b,bbar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->t,tbar; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->e-,e+; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->mu-,mu+; GammatoQQbarSudakov
do SplittingGenerator:AddFinalSplitting gamma->tau-,tau+; GammatoQQbarSudakov
#
do SplittingGenerator:AddFinalSplitting u->u,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting d->d,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting s->s,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting c->c,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting b->b,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting t->t,gamma; QtoQGammaSudakov
do SplittingGenerator:AddFinalSplitting e-->e-,gamma; LtoLGammaSudakov
do SplittingGenerator:AddFinalSplitting mu-->mu-,gamma; LtoLGammaSudakov
do SplittingGenerator:AddFinalSplitting tau-->tau-,gamma; LtoLGammaSudakov
do SplittingGenerator:AddFinalSplitting W+->W+,gamma; WtoWGammaSudakov
#
# Now lets add the initial splittings. Remember the form a->b,c; means
# that the current particle b is given and we backward branch to new
# particle a which is initial state and new particle c which is final state
#
do SplittingGenerator:AddInitialSplitting u->u,g; QtoQGSudakov
do SplittingGenerator:AddInitialSplitting d->d,g; QtoQGSudakov
do SplittingGenerator:AddInitialSplitting s->s,g; QtoQGSudakov
do SplittingGenerator:AddInitialSplitting c->c,g; QtoQGSudakov
do SplittingGenerator:AddInitialSplitting b->b,g; QtoQGSudakov
do SplittingGenerator:AddInitialSplitting u->u,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting d->d,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting s->s,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting c->c,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting b->b,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting t->t,gamma; QtoQGammaSudakov
do SplittingGenerator:AddInitialSplitting g->g,g; GtoGGSudakov
#
do SplittingGenerator:AddInitialSplitting g->d,dbar; GtoQQbarSudakov
do SplittingGenerator:AddInitialSplitting g->u,ubar; GtoQQbarSudakov
do SplittingGenerator:AddInitialSplitting g->s,sbar; GtoQQbarSudakov
do SplittingGenerator:AddInitialSplitting g->c,cbar; GtoccbarSudakov
do SplittingGenerator:AddInitialSplitting g->b,bbar; GtobbbarSudakov
#
do SplittingGenerator:AddInitialSplitting gamma->d,dbar; GammatoQQbarSudakov
do SplittingGenerator:AddInitialSplitting gamma->u,ubar; GammatoQQbarSudakov
do SplittingGenerator:AddInitialSplitting gamma->s,sbar; GammatoQQbarSudakov
do SplittingGenerator:AddInitialSplitting gamma->c,cbar; GammatoQQbarSudakov
do SplittingGenerator:AddInitialSplitting gamma->b,bbar; GammatoQQbarSudakov
#
do SplittingGenerator:AddInitialSplitting d->g,d; dtoGdSudakov
do SplittingGenerator:AddInitialSplitting u->g,u; utoGuSudakov
do SplittingGenerator:AddInitialSplitting s->g,s; QtoGQSudakov
do SplittingGenerator:AddInitialSplitting c->g,c; QtoGQSudakov
do SplittingGenerator:AddInitialSplitting b->g,b; QtoGQSudakov
do SplittingGenerator:AddInitialSplitting dbar->g,dbar; dtoGdSudakov
do SplittingGenerator:AddInitialSplitting ubar->g,ubar; utoGuSudakov
do SplittingGenerator:AddInitialSplitting sbar->g,sbar; QtoGQSudakov
do SplittingGenerator:AddInitialSplitting cbar->g,cbar; QtoGQSudakov
do SplittingGenerator:AddInitialSplitting bbar->g,bbar; QtoGQSudakov
#
do SplittingGenerator:AddInitialSplitting d->gamma,d; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting u->gamma,u; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting s->gamma,s; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting c->gamma,c; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting b->gamma,b; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting dbar->gamma,dbar; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting ubar->gamma,ubar; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting sbar->gamma,sbar; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting cbar->gamma,cbar; QtoGammaQSudakov
do SplittingGenerator:AddInitialSplitting bbar->gamma,bbar; QtoGammaQSudakov
diff --git a/src/defaults/UnderlyingEvent.in b/src/defaults/UnderlyingEvent.in
--- a/src/defaults/UnderlyingEvent.in
+++ b/src/defaults/UnderlyingEvent.in
@@ -1,75 +1,88 @@
# -*- ThePEG-repository -*-
################################################
# Set up the handler for the underlying event.
################################################
mkdir /Herwig/UnderlyingEvent
cd /Herwig/UnderlyingEvent
######## cuts #################################################
library SimpleKTCut.so
# cut on pt. Without a specific matcher object, it works on all
# particles
create ThePEG::SimpleKTCut KtCut
newdef KtCut:MinKT 3.06
# create the cuts object for the Underlying Event
create ThePEG::Cuts UECuts
# This should always be 2*MinKT!!
newdef UECuts:MHatMin 6.12
insert UECuts:OneCuts 0 KtCut
######## subprocess ###########################################
create ThePEG::SubProcessHandler FastQCD
create Herwig::MEQCD2to2Fast MEQCD2to2Fast HwMEHadronFast.so
insert FastQCD:MatrixElements 0 MEQCD2to2Fast
cp /Herwig/Partons/PPExtractor /Herwig/Partons/MPIExtractor
newdef /Herwig/Partons/MPIExtractor:FlatSHatY 1
newdef FastQCD:PartonExtractor /Herwig/Partons/MPIExtractor
# always use LO PDF for MPI and remnants
newdef /Herwig/Partons/MPIExtractor:FirstPDF /Herwig/Partons/MPIPDF
newdef /Herwig/Partons/MPIExtractor:SecondPDF /Herwig/Partons/MPIPDF
######## MPI Handler ##########################################
library JetCuts.so
library HwMPI.so
create Herwig::MPIHandler MPIHandler
# set the subprocesses and corresponding cuts
insert MPIHandler:SubProcessHandlers 0 FastQCD
insert MPIHandler:Cuts 0 UECuts
# energy extrapolation for the MinKT cut
newdef MPIHandler:EnergyExtrapolation Power
-newdef MPIHandler:Power 0.420445
-newdef MPIHandler:pTmin0 3.568157
+newdef MPIHandler:Power 0.322
+newdef MPIHandler:pTmin0 2.55
newdef MPIHandler:ReferenceScale 7000.*GeV
newdef MPIHandler:EEparamA 0.585*GeV
newdef MPIHandler:EEparamB 37.45*GeV
+# MultiPeriph model as default.
+newdef /Herwig/Partons/RemnantDecayer:MultiPeriph Yes
+
+# Paramters for the ladders for soft MPIs
+newdef /Herwig/Partons/RemnantDecayer:ladderMult 0.466
+newdef /Herwig/Partons/RemnantDecayer:ladderbFactor 0.46
+# Set gaussian width of longitudinal momentum fraction fluctuation
+newdef /Herwig/Partons/RemnantDecayer:gaussWidth 0.03
+
+
+# Ratio of diffractive events in MinBias runs
+newdef MPIHandler:DiffractiveRatio 0.133
+
# The inverse hadron radius
-newdef MPIHandler:InvRadius 1.489997
+newdef MPIHandler:InvRadius 1.58
# Set the details of the soft model
# Flag to decide whether additional soft interactions (i.e. pt < ptmin)
# should be simulated at all
newdef MPIHandler:softInt Yes
# Flag to decide whether to use the 2 component model. In this model,
# the hadron radius (or better: mean parton-parton separation) can be
# different for hard and soft scatters. The radius for the soft scatters
# is computed during the run startup so that the elastic t-slope, B_el,
# coincides with current measurements (for CMenergy < 1.8 TeV) or
# Donnachie-Landshoff pomeron fit (CMenergy > 1.8 TeV). If this model is
# disabled one has to take care that this observable is correctly
# described by adjusting InvRadius properly.
newdef MPIHandler:twoComp Yes
newdef MPIHandler:DLmode 2
diff --git a/src/defaults/quarks.in b/src/defaults/quarks.in
--- a/src/defaults/quarks.in
+++ b/src/defaults/quarks.in
@@ -1,35 +1,35 @@
# -*- ThePEG-repository -*-
#
# file containing the particle data for the quarks
#
create ThePEG::ConstituentParticleData d
setup d 1 d 0.005 0. 0 0 -1 3 2 1 0.325
create ThePEG::ConstituentParticleData dbar
setup dbar -1 dbar 0.005 0. 0 0 1 -3 2 1 0.325
makeanti dbar d
create ThePEG::ConstituentParticleData ubar
setup ubar -2 ubar 0.0023 0. 0 0 -2 -3 2 1 0.325
create ThePEG::ConstituentParticleData u
setup u 2 u 0.0023 0. 0 0 2 3 2 1 0.325
makeanti u ubar
create ThePEG::ConstituentParticleData c
setup c 4 c 1.25 0. 0 0 2 3 2 1 1.6
create ThePEG::ConstituentParticleData cbar
setup cbar -4 cbar 1.25 0. 0 0 -2 -3 2 1 1.6
makeanti cbar c
create ThePEG::ConstituentParticleData sbar
-setup sbar -3 sbar 0.095 0. 0 0 1 -3 2 1 0.5
+setup sbar -3 sbar 0.095 0. 0 0 1 -3 2 1 0.45
create ThePEG::ConstituentParticleData s
-setup s 3 s 0.095 0. 0 0 -1 3 2 1 0.5
+setup s 3 s 0.095 0. 0 0 -1 3 2 1 0.45
makeanti s sbar
create ThePEG::ConstituentParticleData b
setup b 5 b 4.2 0. 0 0 -1 3 2 1 5
create ThePEG::ConstituentParticleData bbar
setup bbar -5 bbar 4.2 0. 0 0 1 -3 2 1 5
makeanti bbar b
create ThePEG::ParticleData t
setup t 6 t 174.2 1.4 14 0 2 3 2 0
create ThePEG::ParticleData tbar
setup tbar -6 tbar 174.2 1.4 14 0 -2 -3 2 0
makeanti tbar t
diff --git a/src/snippets/BaryonicReconnection.in b/src/snippets/BaryonicReconnection.in
deleted file mode 100644
--- a/src/snippets/BaryonicReconnection.in
+++ /dev/null
@@ -1,17 +0,0 @@
-# Set strange quark mass to 0.45 in order to allow alternative gluon splitting
-set /Herwig/Particles/s:ConstituentMass 0.45*GeV
-set /Herwig/Particles/sbar:ConstituentMass 0.45*GeV
-
-# Use Baryonic Colour Reconnection Model
-set /Herwig/Hadronization/ColourReconnector:Algorithm Baryonic
-
-# Allow alternative gluon splitting
-set /Herwig/Hadronization/PartonSplitter:Split uds
-
-# Parameters for the Baryonic Reconnection Model
-set /Herwig/Hadronization/ColourReconnector:ReconnectionProbability 0.772606
-set /Herwig/Hadronization/ColourReconnector:ReconnectionProbabilityBaryonic 0.477612
-set /Herwig/UnderlyingEvent/MPIHandler:pTmin0 3.053252
-set /Herwig/UnderlyingEvent/MPIHandler:InvRadius 1.282032
-set /Herwig/Hadronization/HadronSelector:PwtSquark 0.291717
-set /Herwig/Hadronization/PartonSplitter:SplitPwtSquark 0.824135
diff --git a/src/snippets/Makefile.am b/src/snippets/Makefile.am
--- a/src/snippets/Makefile.am
+++ b/src/snippets/Makefile.am
@@ -1,51 +1,48 @@
BUILT_SOURCES = done-all-links
snippetsdir = ${pkgdatadir}/snippets
INPUTFILES = \
CellGridSampler.in \
Diffraction.in \
DipoleMerging.in \
DipoleShowerFiveFlavours.in \
DipoleShowerFourFlavours.in \
EECollider.in \
EPCollider.in \
HepMCFixedOrder.in \
HepMC.in \
Matchbox.in \
MB-DipoleShower.in \
MB.in \
MonacoSampler.in \
Particles-SetLonglivedParticlesStable.in \
PDF-CT10.in \
PDF-NNPDF30NLO.in \
PPCollider.in \
RivetFixedOrder.in \
Rivet.in \
-SoftModel.in \
-SoftTune.in \
YFS.in \
-BaryonicReconnection.in \
CMWinQtiledShower.in \
Dipole_AutoTune_prel.in \
Tune-DotProduct.in \
Tune-DotProduct-Veto.in \
Tune-pT.in \
Tune-Q2.in \
EvolutionScheme-DotProduct.in \
EvolutionScheme-DotProduct-Veto.in \
EvolutionScheme-pT.in \
EvolutionScheme-Q2.in \
FixedTarget.in \
FixedTarget-PP.in
dist_snippets_DATA = $(INPUTFILES)
CLEANFILES = done-all-links
done-all-links: $(INPUTFILES)
@echo "Linking input files"
@for i in $(INPUTFILES); do \
if test -f $(srcdir)/$$i -a ! -e $$i; then \
$(LN_S) -f $(srcdir)/$$i; fi; done
@touch done-all-links
diff --git a/src/snippets/PPCollider.in b/src/snippets/PPCollider.in
--- a/src/snippets/PPCollider.in
+++ b/src/snippets/PPCollider.in
@@ -1,32 +1,30 @@
# -*- ThePEG-repository -*-
cd /Herwig/EventHandlers
create ThePEG::FixedCMSLuminosity Luminosity FixedCMSLuminosity.so
set Luminosity:Energy 13000.0
set EventHandler:LuminosityFunction Luminosity
set EventHandler:BeamA /Herwig/Particles/p+
set EventHandler:BeamB /Herwig/Particles/p+
cd /Herwig/Cuts
# create the cuts object for hadron collisions
set Cuts:ScaleMin 2.0*GeV2
set Cuts:X1Min 1.0e-5
set Cuts:X2Min 1.0e-5
# Matchbox settings
cd /Herwig/MatrixElements/Matchbox
set Factory:FirstPerturbativePDF Yes
set Factory:SecondPerturbativePDF Yes
set Factory:PartonExtractor /Herwig/Partons/PPExtractor
cd /Herwig/Merging
set MergingFactory:FirstPerturbativePDF Yes
set MergingFactory:SecondPerturbativePDF Yes
set MergingFactory:PartonExtractor /Herwig/Partons/PPExtractor
cd /Herwig/Generators/
set /Herwig/MatrixElements/SubProcess:PartonExtractor /Herwig/Partons/PPExtractor
-# Read in parameters to use the soft model
-read snippets/SoftModel.in
diff --git a/src/snippets/SoftModel.in b/src/snippets/SoftModel.in
deleted file mode 100644
--- a/src/snippets/SoftModel.in
+++ /dev/null
@@ -1,19 +0,0 @@
-# Parameters for soft interactions
-
-set /Herwig/Partons/RemnantDecayer:colourDisrupt 0.0
-set /Herwig/Hadronization/ColourReconnector:ColourReconnection Yes
-
-# Use multiperipheral kinematics
-set /Herwig/Partons/RemnantDecayer:MultiPeriph Yes
-
-# Set gaussian width of longitudinal momentum fraction fluctuation
-set /Herwig/Partons/RemnantDecayer:gaussWidth 0.03
-
-# Tuned to min-bias data (5B tune)
-set /Herwig/Hadronization/ColourReconnector:ReconnectionProbability 0.652710
-set /Herwig/UnderlyingEvent/MPIHandler:pTmin0 3.568157
-set /Herwig/UnderlyingEvent/MPIHandler:InvRadius 1.489997
-set /Herwig/UnderlyingEvent/MPIHandler:Power 0.420445
-set /Herwig/Partons/RemnantDecayer:ladderPower -0.088983
-set /Herwig/Partons/RemnantDecayer:ladderNorm 1.086029
-
diff --git a/src/snippets/SoftTune.in b/src/snippets/SoftTune.in
deleted file mode 100644
--- a/src/snippets/SoftTune.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# Recommended set of parameters for MB/UE runs
-
-set /Herwig/Hadronization/ColourReconnector:ReconnectionProbability 0.5
-set /Herwig/UnderlyingEvent/MPIHandler:pTmin0 3.502683
-set /Herwig/UnderlyingEvent/MPIHandler:InvRadius 1.402055
-set /Herwig/UnderlyingEvent/MPIHandler:Power 0.416852
-set /Herwig/Partons/RemnantDecayer:ladderPower -0.08
-set /Herwig/Partons/RemnantDecayer:ladderNorm 0.95

File Metadata

Mime Type
text/x-diff
Expires
Sun, Feb 23, 3:07 PM (15 m, 58 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4486847
Default Alt Text
(552 KB)

Event Timeline