00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of models developed at BES collaboration 00005 // based on the EvtGen framework. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/BesCopyright 00009 // Copyright (A) 2006 Ping Rong-Gang @IHEP 00010 // 00011 // Module: EvtDecayTag.hh 00012 // 00013 // Description: Class to deal with the decay tag, e.g. the decay mode and multiplicity 00014 // 00015 // Modification history: 00016 // 00017 // Ping R.-G. December, 2011-Jan Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 // 00021 00022 #ifndef EVTDECAYTAG_HH 00023 #define EVTDECAYTAG_HH 00024 00025 00026 #include <iostream> 00027 #include <math.h> 00028 #include <fstream> 00029 #include <stdio.h> 00030 #include <stdlib.h> 00031 #include <vector> 00032 // #include <sys/stat.h> 00033 #include "EvtGenBase/EvtParticle.hh" 00034 #include "EvtGenBase/EvtId.hh" 00035 #include "EvtGenBase/EvtPDL.hh" 00036 using std::endl; 00037 using std::fstream; 00038 00039 class EvtDecayTag 00040 { 00041 00042 public: 00043 00044 // constructor 00045 EvtDecayTag(EvtParticle *par){ 00046 root_par = par; 00047 _nmode.clear(); 00048 _multiplicity.clear(); 00049 for(int i=0;i<10;i++){_multiplicity.push_back(0);} 00050 makeTag(root_par); 00051 } 00052 00053 //destructor 00054 virtual ~EvtDecayTag(){} 00055 00056 void makeTag(EvtParticle* par); 00057 int TagIndex(EvtId pid); 00058 int getModeTag(); 00059 int getMultTag(); 00060 int getHdrdBase(int index); 00061 00062 private: 00063 00064 std::vector <int> _nmode,_multiplicity; 00065 EvtParticle *root_par; 00066 }; 00067 00068 #endif 00069