HepPDT Reference Documentation

HepPDT

TempParticleData.hh

Go to the documentation of this file.
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

Generated on Fri Dec 4 14:05:24 2009 for HepPDT by  doxygen 1.4.7