/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenBase/EvtPDL.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // 
00003 // Environment: 
00004 // This software is part of the EvtGen package developed jointly 
00005 // for the BaBar and CLEO collaborations.  If you use all or part 
00006 // of it, please give an appropriate acknowledgement.
00007 // 
00008 // Copyright Information: See EvtGen/COPYRIGHT 
00009 // Copyright (C) 1998 Caltech, UCSB 
00010 // 
00011 // Module: EvtGen/EvtPDL.hh 
00012 // 
00013 // Description:Class to keep track of particle properties.  
00014 // 
00015 // Modification history: 
00016 //
00017 // DJL/RYD September 25, 1996 Module created 
00018 //
00019 //------------------------------------------------------------------------
00020 
00021 #ifndef EVTPDL_HH
00022 #define EVTPDL_HH
00023 
00024 #include "EvtGenBase/EvtPartProp.hh"
00025 #include "EvtGenBase/EvtId.hh"
00026 #include "EvtGenBase/EvtSpinType.hh"
00027 #include "EvtGenBase/EvtStringHash.hh"
00028 #include <vector>
00029 #include <map>
00030 
00031 const int SPIN_NAME_LENGTH = 100;
00032 
00033 class EvtPDL {
00034 
00035 public:
00036 
00037   EvtPDL();  
00038 
00039   ~EvtPDL();
00040 
00041   void read(const char* fname);
00042   void readPDT(const std::string fname);
00043 
00044   
00045   static double getMeanMass(EvtId i ){ return partlist()[i.getId()].getMass(); }
00046   static double getMass(EvtId i ){return partlist()[i.getId()].rollMass();}
00047   static double getRandMass(EvtId i, EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId,double maxMass, double *dauMasses ){return partlist()[i.getId()].getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses);}
00048   static double getMassProb(EvtId i, double mass, double massPar, int nDaug, double *massDau) { return partlist()[i.getId()].getMassProb(mass,massPar,nDaug,massDau);}
00049 
00050   static double getMaxMass(EvtId i ){return partlist()[i.getId()].getMassMax();}
00051   static double getMinMass(EvtId i ){return partlist()[i.getId()].getMassMin();}
00052   //the number we got from PDT
00053   static double getMaxRange(EvtId i ){return partlist()[i.getId()].getMaxRange();}
00054   static double getWidth(EvtId i ){return partlist()[i.getId()].getWidth();}
00055   static double getctau(EvtId i ){return partlist()[i.getId()].getctau();}
00056   static int getStdHep(EvtId id ){return partlist()[id.getId()].getStdHep();}
00057   static int getLundKC(EvtId id ){return partlist()[id.getId()].getLundKC();}
00058   static EvtId evtIdFromStdHep(int stdhep );
00059   static EvtId chargeConj(EvtId id );
00060   static int chg3(EvtId i ){return partlist()[i.getId()].getChg3();}
00061   static EvtSpinType::spintype getSpinType(EvtId i )
00062               {return partlist()[i.getId()].getSpinType();}
00063   static EvtId getId(const std::string& name );
00064   static std::string name(EvtId i){return partlist()[i.getAlias()].getName();}
00065   static void alias(EvtId num,const std::string& newname);
00066   static void aliasChgConj(EvtId a,EvtId abar);
00067   static int entries() { return partlist().size();}
00068   static void reSetMass(EvtId i,  double mass)  { partlist()[i.getId()].reSetMass( mass);}
00069   static void reSetWidth(EvtId i, double width) { partlist()[i.getId()].reSetWidth(width);}
00070   static void reSetMassMin(EvtId i, double mass) { partlist()[i.getId()].reSetMassMin(mass);}
00071   static void reSetMassMax(EvtId i,double mass) { partlist()[i.getId()].reSetMassMax(mass);}
00072   static void reSetBlatt(EvtId i,double blatt) {partlist()[i.getId()].reSetBlatt(blatt);}
00073   static void includeBirthFactor(EvtId i,bool yesno) {partlist()[i.getId()].includeBirthFactor(yesno);}
00074   static void includeDecayFactor(EvtId i,bool yesno) {partlist()[i.getId()].includeDecayFactor(yesno);}
00075   static void addFactorPn(EvtId i,double factor) {partlist()[i.getId()].addFactorPn(factor);}
00076   static void changeLS(EvtId i, std::string &newLS ) { partlist()[i.getId()].newLineShape(newLS);}
00077   static void setPWForDecay(EvtId i, int spin, EvtId d1, EvtId d2) {  partlist()[i.getId()].setPWForDecay(spin,d1,d2);}
00078   static void setPWForBirthL(EvtId i, int spin, EvtId par, EvtId othD);
00079   static void fixLSForSP8(EvtId i) { partlist()[i.getId()].fixLSForSP8();}
00080 private:
00081 
00082   void setUpConstsPdt();
00083 
00084   static int    _firstAlias;
00085   static int    _nentries;
00086 
00087   static std::vector<EvtPartProp>& partlist() {
00088     static std::vector<EvtPartProp> s_partlist;
00089     return s_partlist;
00090   }
00091 
00092   static std::map<std::string, int> _particleNameLookup;
00093   
00094 }; // EvtPDL.h
00095 
00096 #endif
00097 
00098 

Generated on Tue Nov 29 23:12:14 2016 for BOSS_7.0.2 by  doxygen 1.4.7