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 pick out the final state 00014 // 00015 // Modification history: 00016 // 00017 // Ping R.-G. December, 2011-Mar. Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 // 00021 00022 #ifndef EVTFSPICK_HH 00023 #define EVTFSPICK_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 "EvtGenBase/EvtParticle.hh" 00033 #include "EvtGenBase/EvtId.hh" 00034 #include "EvtGenBase/EvtPDL.hh" 00035 using std::endl; 00036 using std::fstream; 00037 00038 class EvtFSPick 00039 { 00040 00041 public: 00042 00043 // constructor 00044 EvtFSPick(EvtParticle *par){ 00045 root_par = par; 00046 _EvtFS.clear(); 00047 _vnames.clear(); 00048 _vId.clear(); 00049 _fsid.clear(); 00050 FSPick(root_par); 00051 } 00052 00053 //destructor 00054 virtual ~EvtFSPick(){} 00055 00056 void FSPick(EvtParticle* par); 00057 std::vector<EvtParticle*> getFS(){return _EvtFS;} 00058 void setFinalStatePar(std::vector <std::string> vnames); 00059 std::vector <EvtVector4R> getP4(); 00060 std::vector <EvtVector4R> getP4Lab(); 00061 int getIndex(EvtId eid); 00062 00063 private: 00064 00065 std::vector <EvtParticle*> _EvtFS; 00066 EvtParticle *root_par; 00067 std::vector <std::string> _vnames; 00068 std::vector <EvtId> _vId,_fsid; 00069 }; 00070 00071 #endif 00072