![]() |
HepPDT Reference DocumentationHepPDT |
00001 // ---------------------------------------------------------------------- 00002 // 00003 // TempParticleData.hh 00004 // Author: Lynn Garren 00005 // 00006 // temporary structure to hold particles while getting all the info 00007 // ---------------------------------------------------------------------- 00008 #ifndef TEMPPARTICLEDATA_HH 00009 #define TEMPPARTICLEDATA_HH 00010 00011 #include <string> 00012 #include <vector> 00013 00014 #include "HepPDT/SpinState.hh" 00015 #include "HepPDT/ParticleID.hh" 00016 #include "HepPDT/Measurement.hh" 00017 00018 namespace HepPDT { 00019 00022 double calculateWidthFromLifetime( double ); 00023 00025 struct TempConstituent { 00026 TempConstituent( ParticleID p = ParticleID(0), int m = -1 ) 00027 : tempConstituentPID(p), tempMultiplicity(m) {} 00028 ParticleID tempConstituentPID; 00029 int tempMultiplicity; 00030 }; 00031 00033 struct TempDecayData { 00036 std::string tempDecayName; 00037 double tempBranchingFraction; 00039 std::vector<std::string> tempDaughterList; 00041 std::vector<double> tempDecayParameters; 00042 }; 00043 00045 typedef std::vector<TempDecayData> TDDlist; 00046 00048 struct TempAliasData { 00049 00050 // --- birth/death: 00051 // 00052 TempAliasData(); 00053 00054 std::string tempAlias; 00055 std::string tempAliasedParticle; 00056 std::string tempChargeConj; 00057 TDDlist tempAliasDecayList; 00058 }; 00059 00061 struct TempParticleData { 00062 00063 // --- birth/death: 00064 // 00065 TempParticleData(); 00066 00067 explicit TempParticleData( int id ); 00069 explicit TempParticleData( ParticleID pid ); 00071 TempParticleData( int id, std::string const & name, 00072 std::string const & source, int oid, double charge, 00073 SpinState const & Spin, 00074 Measurement const & mass, Measurement const & wid ); 00075 00076 // --- copying: 00077 // 00078 TempParticleData( TempParticleData const & orig ); 00079 TempParticleData & operator = ( TempParticleData const & rhs ); 00080 void swap( TempParticleData & other ); 00082 TempParticleData antiparticle( std::string const & name ); 00083 00085 bool processPID(); 00086 00087 // -- data members (public by design) 00088 // 00089 ParticleID tempID; 00090 std::string tempParticleName; 00091 std::string tempSource; 00092 int tempOriginalID; 00093 double tempCharge; 00094 double tempColorCharge; 00095 SpinState tempSpin; 00096 Measurement tempMass; 00097 Measurement tempWidth; 00098 double tempLowCutoff; 00099 double tempHighCutoff; 00100 std::vector<TempConstituent> tempQuarks; 00101 TDDlist tempDecayList; 00102 00103 }; // TempParticleData 00104 00105 inline 00106 void swap( TempParticleData & first, TempParticleData & second ) { first.swap( second ); } 00107 00108 } // HepPDT 00109 00110 #endif // TEMPPARTICLEDATA_HH