File indexing completed on 2025-01-30 10:11:35
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef TEMPPARTICLEDATA_HH
0009 #define TEMPPARTICLEDATA_HH
0010
0011 #include <string>
0012 #include <vector>
0013
0014 #include "HepPDT/SpinState.hh"
0015 #include "HepPDT/ParticleID.hh"
0016 #include "HepPDT/Measurement.hh"
0017
0018 namespace HepPDT {
0019
0020
0021
0022 double calculateWidthFromLifetime( double );
0023
0024
0025 struct TempConstituent {
0026 TempConstituent( ParticleID p = ParticleID(0), int m = -1 )
0027 : tempConstituentPID(p), tempMultiplicity(m) {}
0028 ParticleID tempConstituentPID;
0029 int tempMultiplicity;
0030 };
0031
0032
0033 struct TempDecayData {
0034
0035
0036 std::string tempDecayName;
0037 double tempBranchingFraction;
0038
0039 std::vector<std::string> tempDaughterList;
0040
0041 std::vector<double> tempDecayParameters;
0042 };
0043
0044
0045 typedef std::vector<TempDecayData> TDDlist;
0046
0047
0048 struct TempAliasData {
0049
0050
0051
0052 TempAliasData();
0053
0054 std::string tempAlias;
0055 std::string tempAliasedParticle;
0056 std::string tempChargeConj;
0057 TDDlist tempAliasDecayList;
0058 };
0059
0060
0061 struct TempParticleData {
0062
0063
0064
0065 TempParticleData();
0066
0067 explicit TempParticleData( int id );
0068
0069 explicit TempParticleData( ParticleID pid );
0070
0071 TempParticleData( int id, std::string const & name,
0072 std::string const & source, int oid, double charge,
0073 SpinState const & Spin,
0074 Measurement const & mass, Measurement const & wid );
0075
0076
0077
0078 TempParticleData( TempParticleData const & orig );
0079 TempParticleData & operator = ( TempParticleData const & rhs );
0080 void swap( TempParticleData & other );
0081
0082 TempParticleData antiparticle( std::string const & name );
0083
0084
0085 bool processPID();
0086
0087
0088
0089 ParticleID tempID;
0090 std::string tempParticleName;
0091 std::string tempSource;
0092 int tempOriginalID;
0093 double tempCharge;
0094 double tempColorCharge;
0095 SpinState tempSpin;
0096 Measurement tempMass;
0097 Measurement tempWidth;
0098 double tempLowCutoff;
0099 double tempHighCutoff;
0100 std::vector<TempConstituent> tempQuarks;
0101 TDDlist tempDecayList;
0102
0103 };
0104
0105 inline
0106 void swap( TempParticleData & first, TempParticleData & second ) { first.swap( second ); }
0107
0108 }
0109
0110 #endif