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

Go to the documentation of this file.
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, Pang Cai-Ying@IHEP
00010 //
00011 // Module: EvtPsi3Sdecay.hh
00012 //
00013 // Description: Routine to re-select the psi(4040) decay according the .
00014 //              measured xsection at different energy point, see CLEOc measurement:
00015 //              PRD 80, 072001   
00016 // Modification history:
00017 //
00018 //    Ping R.-G.    December, 2010   Module created
00019 //
00020 //------------------------------------------------------------------------
00021 #ifndef EVTPsi3Sdecay_HH
00022 #define EVTPsi3Sdecay_HH
00023 
00024 #include "EvtGenBase/EvtParticle.hh"
00025 #include "EvtGenBase/EvtId.hh"
00026 #include "EvtGenBase/EvtPDL.hh"
00027 #include "EvtGenBase/EvtPolInt.hh"
00028 #include <stdlib.h>
00029 #include <string>
00030 #include <vector>
00031 using std::endl;
00032 
00033 class EvtPsi3Sdecay{
00034 public:
00035   // constructor
00036   EvtPsi3Sdecay(double ecms, EvtParticle *parent) {  //for 2-body decays
00037   //initializer
00038   Ecms = ecms;
00039   theParent = parent;
00040   Ndaugs=parent->getNDaug();
00041   nsize = 32;
00042 
00043   _excflag=0;  
00044   x.clear();
00045   // open charm cross section, see PRD 80, 072001, xs in unit pb.
00046   double xx[32]={3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97,  3.99, 4.01, 4.01392, 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17, 4.18, 4.2,  4.22420,  4.26, 4.30, 4.34, 4.38, 4.42, 4.46, 4.50, 4.54, 4.58, 4.62, 4.66 }; // 32 energy points
00047   double y0[32]={0.,      3  ,     51,      54,      74,      86,    133,  76,   23,      10,    139,     334,  410,  374,     303,  177,  167,  177,  179,  180,  142,      86,  31,    49,   65,   196,  52,   87,   166,  14,   33,   49};  // 0) D0D0bar cross section
00048   double y1[32]={0.,      0.,      81,      86,      118,     137,   90,   135,  57,      38,    101,     196,  480,  423,     310,  200,  200,  182,  197,  181,  146,      94,   108,  96,   154,  165,  171,  106,  27,   144,  36,   22};  // 1) D+D-
00049   double y2[32]={0.,      0.,      0.,      713,     983,     1140,  1370, 1660, 1868,    1920,  1792,    1600, 1115, 976,     700,  675,  626,  636,  605,  515,  525,      540,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 2)D0D*0bar
00050   double y3[32]={0.,      0.,      0.,      713,     983,     1140,  1370, 1660, 1868,    1920,  1792,    1600, 1115, 976,     700,  675,  626,  636,  605,  515,  525,      540,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 3)D0bar D*0
00051   double y4[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       213,   928,     2000, 2290, 2376,    2550, 2443, 2566, 2363, 2173, 1830, 1205,     269,  822,  1045, 1020, 820,  398,  588,  690,  459,  360,  398}; // 4)D*0 D*0bar
00052   double y5[32]={0.,      0.,      0.,      0,       962,     1115,  1375, 1650, 1810,    1851,  1770,    1650, 1085, 983,     780,  688,  688,  642,  648,  535,  525,      511,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 5)D*+D-
00053   double y6[32]={0.,      0.,      0.,      0,       962,     1115,  1375, 1650, 1810,    1851,  1770,    1650, 1085, 983,     780,  688,  688,  642,  648,  535,  525,      511,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 6)D*-D+
00054   double y7[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       1400, 2390, 2353,    2280, 2556, 2479, 2357, 2145, 1564, 1033,     237,  822,  1045, 1020, 820,  398,  588,  690,  459,  360,  398}; // 7)D*+D*-
00055   double y8[32]={0.,      0.,      0.,      0,       0,       102,   133,  269,  254,     250,   219,     174,  51,   42,      26,   25,   15,   34,   7,    15,   28,       47,   106,  70,   36,   10,   2,    28,   60,   60,   48,   36};  // 8)Ds+ Ds-
00056   double y9[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       239,  342,  452.5,458,  444.5,406,  250,      17,   157,  184,  159,  178.5,146,  85.5, 33,   51.5, 95,   136}; // 9)Ds*+ Ds-
00057   double y10[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       239,  342,  452.5,458,  444.5,406,  250,      17,   157,  184,  159,  178.5,146,  85.5, 33,   51.5,  95,  136}; //10)Ds*- Ds+
00058   double y11[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        440,  398,  428,  310,  131,  0,    45,   126,  98,   39,   0};   //11)Ds*+ Ds*-
00059   double y12[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //12)D*+ D- pi0 //------ DD* pi----
00060   double y13[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //13)D*- D+ pi0
00061   double y14[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //14)D*+ anti-D0 pi-
00062   double y15[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //15)D*- D0 pi+
00063   double y16[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //16)D+ anti-D*0 pi-
00064   double y17[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //17)D- D*0 pi+
00065   double y18[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //18) D*+ D*- pi0 //------D*D*pi, above 4.26Gev, assumed xs as D*D pi
00066   double y19[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        107.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110 };//19) anti-D*0 D*+ pi-
00067   double y20[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        107.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110 };//20) D*0 D*- pi+
00068   double y21[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //21) D*0 D*0bar pi0
00069   double y22[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //22)D*0 D0bar pi0 //------ DD* pi----
00070   double y23[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //23)D*bar D0  pi0
00071   d0d0bar.clear();
00072   dpdm.clear();
00073   d0dst0bar.clear();
00074   dst0dst0bar.clear();
00075   d0bardst0.clear();
00076   dstpdm.clear();
00077   dstmdp.clear();
00078   dstpdstm.clear();
00079   dspdsm.clear();
00080   dsspdsm.clear();
00081   dssmdsp.clear();
00082   dsspdssm.clear();
00083   xs12.clear();
00084   xs13.clear();
00085   xs14.clear();
00086   xs15.clear();
00087   xs16.clear();
00088   xs17.clear();
00089   xs18.clear();
00090   xs19.clear();
00091   xs20.clear();
00092   xs21.clear();
00093   xs22.clear();
00094   xs23.clear();
00095 
00096   for(int i=0;i<32;i++){
00097     x.push_back(xx[i]);
00098     d0d0bar.push_back(y0[i]);
00099     dpdm.push_back(y1[i]);
00100     d0dst0bar.push_back(y2[i]);
00101     d0bardst0.push_back(y3[i]);
00102     dst0dst0bar.push_back(y4[i]);
00103     dstpdm.push_back(  y5[i]);
00104     dstmdp.push_back(  y6[i]);
00105     dstpdstm.push_back(y7[i]);
00106     dspdsm.push_back(  y8[i]);
00107     dsspdsm.push_back( y9[i]);
00108     dssmdsp.push_back( y10[i]);
00109     dsspdssm.push_back( y11[i]);
00110     xs12.push_back( y12[i] );   
00111     xs13.push_back( y13[i] );   
00112     xs14.push_back( y14[i] );   
00113     xs15.push_back( y15[i] );   
00114     xs16.push_back( y16[i] );   
00115     xs17.push_back( y17[i] );   
00116     xs18.push_back( y18[i] );   
00117     xs19.push_back( y19[i] );   
00118     xs20.push_back( y20[i] ); 
00119     xs21.push_back( y21[i] );   
00120     xs22.push_back( y22[i] );   
00121     xs23.push_back( y23[i] ); 
00122   }
00123  }
00124 
00125 //---
00126   EvtPsi3Sdecay() {//for 2-body and 3-body decays
00127   //initializer
00128   //  Ecms = ecms;
00129   nsize = 32;
00130  
00131   x.clear();
00132   // open charm cross section, see PRD 80, 072001, xross section in pb
00133   double xx[32]={3.72968, 3.73922, 3.87180, 3.87987, 3.93660, 3.97,  3.99, 4.01, 4.01392, 4.015, 4.02052, 4.03, 4.06, 4.08040, 4.12, 4.14, 4.16, 4.17, 4.18, 4.2,  4.22420,  4.26, 4.30, 4.34, 4.38, 4.42, 4.46, 4.50, 4.54, 4.58, 4.62, 4.66 }; // 32 energy points
00134   double y0[32]={0.,      3  ,     51,      54,      74,      86,    133,  76,   23,      10,    139,     334,  410,  374,     303,  177,  167,  177,  179,  180,  142,      86,  31,    49,   65,   196,  52,   87,   166,  14,   33,   49};  // 0) D0D0bar cross section
00135   double y1[32]={0.,      0.,      81,      86,      118,     137,   90,   135,  57,      38,    101,     196,  480,  423,     310,  200,  200,  182,  197,  181,  146,      94,   108,  96,   154,  165,  171,  106,  27,   144,  36,   22};  // 1) D+D-
00136   double y2[32]={0.,      0.,      0.,      713,     983,     1140,  1370, 1660, 1868,    1920,  1792,    1600, 1115, 976,     700,  675,  626,  636,  605,  515,  525,      540,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 2)D0D*0bar
00137   double y3[32]={0.,      0.,      0.,      713,     983,     1140,  1370, 1660, 1868,    1920,  1792,    1600, 1115, 976,     700,  675,  626,  636,  605,  515,  525,      540,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 3)D0bar D*0
00138   double y4[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       213,   928,     2000, 2290, 2376,    2550, 2443, 2566, 2363, 2173, 1830, 1205,     269,  822,  1045, 1020, 820,  398,  588,  690,  459,  360,  398}; // 4)D*0 D*0bar
00139   double y5[32]={0.,      0.,      0.,      0,       962,     1115,  1375, 1650, 1810,    1851,  1770,    1650, 1085, 983,     780,  688,  688,  642,  648,  535,  525,      511,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 5)D*+D-
00140   double y6[32]={0.,      0.,      0.,      0,       962,     1115,  1375, 1650, 1810,    1851,  1770,    1650, 1085, 983,     780,  688,  688,  642,  648,  535,  525,      511,  748,  880,  556,  657,  477,  494,  320,  616,  575,  373}; // 6)D*-D+
00141   double y7[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       1400, 2390, 2353,    2280, 2556, 2479, 2357, 2145, 1564, 1033,     237,  822,  1045, 1020, 820,  398,  588,  690,  459,  360,  398}; // 7)D*+D*-
00142   double y8[32]={0.,      0.,      0.,      0,       0,       102,   133,  269,  254,     250,   219,     174,  51,   42,      26,   25,   15,   34,   7,    15,   28,       47,   106,  70,   36,   10,   2,    28,   60,   60,   48,   36};  // 8)Ds+ Ds-
00143   double y9[32]={0.,      0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       239,  342,  452.5,458,  444.5,406,  250,      17,   157,  184,  159,  178.5,146,  85.5, 33,   51.5, 95,   136}; // 9)Ds*+ Ds-
00144   double y10[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       239,  342,  452.5,458,  444.5,406,  250,      17,   157,  184,  159,  178.5,146,  85.5, 33,   51.5,  95,  136}; //10)Ds*- Ds+
00145   double y11[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        440,  398,  428,  310,  131,  0,    45,   126,  98,   39,   0};   //11)Ds*+ Ds*-
00146   double y12[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //12)D*+ D- pi0 //------ DD* pi----
00147   double y13[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //13)D*- D+ pi0
00148   double y14[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //14)D*+ anti-D0 pi-
00149   double y15[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //15)D*- D0 pi+
00150   double y16[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //16)D+ anti-D*0 pi-
00151   double y17[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    24,   18,      7.5,  68.6, 64.8, 73.3, 95.8, 122.5,116,      106.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110}; //17)D- D*0 pi+
00152   double y18[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //18) D*+ D*- pi0 //------D*D*pi, above 4.26Gev, assumed xs as D*D pi
00153   double y19[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        107.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110 };//19) anti-D*0 D*+ pi-
00154   double y20[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        107.3,98,   378,  650,  564,  167,  304,  359,  381,  497,  110 };//20) D*0 D*- pi+
00155   double y21[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    0,    0,       0,    0,    0,    0,    0,    0,    0,        53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //21) D*0 D*0bar pi0
00156   double y22[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //22)D*0 D0bar pi0 //------ DD* pi----
00157   double y23[32]={0.,     0.,      0.,      0,       0,       0,     0,    0,    0,       0,     0,       0,    12,   9,       3.8,  32.4, 32.4, 37,   48,   61.2, 58,       53.6, 49,   169,  325,  282,  83.5, 152,  179,  190,  248,  55 }; //23)D*bar D0  pi0
00158   d0d0bar.clear();
00159   dpdm.clear();
00160   d0dst0bar.clear();
00161   dst0dst0bar.clear();
00162   d0bardst0.clear();
00163   dstpdm.clear();
00164   dstmdp.clear();
00165   dstpdstm.clear();
00166   dspdsm.clear();
00167   dsspdsm.clear();
00168   dssmdsp.clear();
00169   dsspdssm.clear();
00170   xs12.clear();
00171   xs13.clear();
00172   xs14.clear();
00173   xs15.clear();
00174   xs16.clear();
00175   xs17.clear();
00176   xs18.clear();
00177   xs19.clear();
00178   xs20.clear();
00179   xs21.clear();
00180   xs22.clear();
00181   xs23.clear();
00182   for(int i=0;i<32;i++){
00183     x.push_back(xx[i]);
00184     d0d0bar.push_back(y0[i]);
00185     dpdm.push_back(y1[i]);
00186     d0dst0bar.push_back(y2[i]);
00187     d0bardst0.push_back(y3[i]);
00188     dst0dst0bar.push_back(y4[i]);
00189     dstpdm.push_back(  y5[i]);
00190     dstmdp.push_back(  y6[i]);
00191     dstpdstm.push_back(y7[i]);
00192     dspdsm.push_back(  y8[i]);
00193     dsspdsm.push_back( y9[i]);
00194     dssmdsp.push_back( y10[i]);
00195     dsspdssm.push_back( y11[i]);
00196     xs12.push_back( y12[i] );   
00197     xs13.push_back( y13[i] );   
00198     xs14.push_back( y14[i] );   
00199     xs15.push_back( y15[i] );   
00200     xs16.push_back( y16[i] );   
00201     xs17.push_back( y17[i] );   
00202     xs18.push_back( y18[i] );   
00203     xs19.push_back( y19[i] );   
00204     xs20.push_back( y20[i] );  
00205     xs21.push_back( y21[i] );   
00206     xs22.push_back( y22[i] );   
00207     xs23.push_back( y23[i] );    
00208   }
00209 
00210 //---- initilize Vmode
00211  
00212   VmodeSon.clear();
00213   //0: D0 anti-D0
00214   Vson.clear();
00215   Vson.push_back("D0"); Vson.push_back("anti-D0"); 
00216   VmodeSon.push_back(Vson);
00217 
00218   //1: D+ D-
00219   Vson.clear();
00220   Vson.push_back("D+"); Vson.push_back("D-"); 
00221   VmodeSon.push_back(Vson);
00222 
00223   //2: D0 anti-D*0
00224   Vson.clear();
00225   Vson.push_back("D0"); Vson.push_back("anti-D*0"); 
00226   VmodeSon.push_back(Vson);
00227 
00228   //3: anti-D0 D*0
00229   Vson.clear();
00230   Vson.push_back("anti-D0"); Vson.push_back("D*0"); 
00231   VmodeSon.push_back(Vson);
00232 
00233   //4: D*0 anti-D*0
00234   Vson.clear();
00235   Vson.push_back("D*0"); Vson.push_back("anti-D*0"); 
00236   VmodeSon.push_back(Vson);
00237 
00238   //5: D*+ D-
00239   Vson.clear();
00240   Vson.push_back("D*+"); Vson.push_back("D-"); 
00241   VmodeSon.push_back(Vson);
00242 
00243   //6: D*- D+
00244   Vson.clear();
00245   Vson.push_back("D*-"); Vson.push_back("D+"); 
00246   VmodeSon.push_back(Vson);
00247 
00248   //7: D*+ D*-
00249   Vson.clear();
00250   Vson.push_back("D*+"); Vson.push_back("D*-"); 
00251   VmodeSon.push_back(Vson);
00252 
00253   //8: D_s+ D_s-
00254   Vson.clear();
00255   Vson.push_back("D_s+"); Vson.push_back("D_s-"); 
00256   VmodeSon.push_back(Vson);
00257 
00258   //9: D_s*+ D_s-
00259   Vson.clear();
00260   Vson.push_back("D_s*+"); Vson.push_back("D_s-"); 
00261   VmodeSon.push_back(Vson);
00262 
00263   //10: D_s*- D_s+
00264   Vson.clear();
00265   Vson.push_back("D_s*-"); Vson.push_back("D_s+"); 
00266   VmodeSon.push_back(Vson);
00267 
00268   //11: D_s*+ D_s*-
00269   Vson.clear();
00270   Vson.push_back("D_s*+"); Vson.push_back("D_s*-"); 
00271   VmodeSon.push_back(Vson);
00272 
00273   //12: D*+ D- pi0
00274   Vson.clear();
00275   Vson.push_back("D*+"); Vson.push_back("D-");Vson.push_back("pi0"); 
00276   VmodeSon.push_back(Vson);
00277 
00278   //13: D*- D+ pi0
00279   Vson.clear();
00280   Vson.push_back("D*-"); Vson.push_back("D+");Vson.push_back("pi0"); 
00281   VmodeSon.push_back(Vson);
00282 
00283   //14: D*+ anti-D0 pi-
00284   Vson.clear();
00285   Vson.push_back("D*+"); Vson.push_back("anti-D0");Vson.push_back("pi-"); 
00286   VmodeSon.push_back(Vson);
00287 
00288   //15: D*- D0 pi+
00289   Vson.clear();
00290   Vson.push_back("D*-"); Vson.push_back("D0");Vson.push_back("pi+"); 
00291   VmodeSon.push_back(Vson);
00292 
00293   //16: D+ anti-D*0 pi-
00294   Vson.clear();
00295   Vson.push_back("D+"); Vson.push_back("anti-D*0");Vson.push_back("pi-"); 
00296   VmodeSon.push_back(Vson);
00297 
00298   //17: D- D*0 pi+
00299   Vson.clear();
00300   Vson.push_back("D-"); Vson.push_back("D*0");Vson.push_back("pi+"); 
00301   VmodeSon.push_back(Vson);
00302 
00303   //18: D*+ D*- pi0
00304   Vson.clear();
00305   Vson.push_back("D*+"); Vson.push_back("D*-");Vson.push_back("pi0"); 
00306   VmodeSon.push_back(Vson);
00307 
00308   //19: anti-D*0 D*+ pi-
00309   Vson.clear();
00310   Vson.push_back("anti-D*0"); Vson.push_back("D*+");Vson.push_back("pi-"); 
00311   VmodeSon.push_back(Vson);
00312 
00313   //20: D*0 D*- pi+
00314   Vson.clear();
00315   Vson.push_back("D*0"); Vson.push_back("D*-");Vson.push_back("pi+"); 
00316   VmodeSon.push_back(Vson);
00317 
00318   //21: D*0 D*0bar pi0
00319   Vson.clear();
00320   Vson.push_back("D*0"); Vson.push_back("anti-D*0");Vson.push_back("pi0"); 
00321   VmodeSon.push_back(Vson);
00322 
00323   //22: D0bar D*0 pi0
00324   Vson.clear();
00325   Vson.push_back("anti-D0"); Vson.push_back("D*0");Vson.push_back("pi0"); 
00326   VmodeSon.push_back(Vson);
00327 
00328   //23: D*0bar D0 pi0
00329   Vson.clear();
00330   Vson.push_back("anti-D*0"); Vson.push_back("D0");Vson.push_back("pi0"); 
00331   VmodeSon.push_back(Vson);
00332 
00333  }
00334 
00335   // destructor
00336   virtual ~EvtPsi3Sdecay(){}
00337 
00338   int findPoints(); //return the lower size at the end of the segment containing Ecms points
00339   double polint( std::vector <double> points);
00340   bool choseDecay(); //determing accept or reject a generated decay
00341   EvtParticle * choseDecay(EvtParticle* par);
00342   int getDecay(double ecms); //determing accept or reject a generated decay
00343   double theProb(std::vector<double> myxs,int ich);
00344   int findMode( );
00345   int getMode(){return _themode;};
00346   std::vector<EvtId> getVId(int mode);
00347 
00348 
00349   void PHSPDecay(EvtParticle * par);
00350   std::vector<EvtId> getDaugId(){return Vid;}
00351   std::vector<EvtVector4R> getDaugP4(){return v_p4;}
00352   bool AngSam(EvtVector4R parent_p4cm,EvtVector4R son_p4cm,double alpha);
00353   void setMode(int m){
00354     if(m<0 || m>32) {std::cout<<"EvtPsi3Decay::setMode: bad mode"<<std::endl;abort();}
00355     _themode = m;_excflag=1;}
00356 private:
00357   double Ecms;
00358   EvtParticle *theParent;
00359   EvtId *Daughters;
00360   int Ndaugs;
00361   std::vector <double> x;
00362   std::vector <double> d0d0bar;     // 0)
00363   std::vector <double> dpdm;        // 1)
00364   std::vector <double> d0dst0bar;   // 2)
00365   std::vector <double> d0bardst0;   // 3)
00366   std::vector <double> dst0dst0bar; // 4)
00367   std::vector <double> dstpdm;      // 5)
00368   std::vector <double> dstmdp;      // 6)
00369   std::vector <double> dstpdstm;    // 7)
00370   std::vector <double> dspdsm;      // 8)
00371   std::vector <double> dsspdsm;     // 9)
00372   std::vector <double> dssmdsp;     //10)
00373   std::vector <double> dsspdssm;    //11)
00374   std::vector <double> xs12;        //12)
00375   std::vector <double> xs13;        //13)
00376   std::vector <double> xs14;        //14)
00377   std::vector <double> xs15;        //15)
00378   std::vector <double> xs16;        //16)
00379   std::vector <double> xs17;        //17)
00380   std::vector <double> xs18;        //18)
00381   std::vector <double> xs19;        //19)
00382   std::vector <double> xs20;        //20)
00383   std::vector <double> xs21;        //21)
00384   std::vector <double> xs22;        //22)
00385   std::vector <double> xs23;        //23)
00386 
00387   int nsize;  //the simze of the energy points
00388   double theXsection[50];
00389   int theLocation;
00390   std::vector<std::string> Vson;
00391   std::vector<EvtId> Vid;
00392 
00393   std::vector< std::vector<std::string> > VmodeSon;
00394   std::vector< std::vector<EvtId>       > VmodeId;
00395   int _themode,_excflag;
00396   //
00397   std::vector<EvtVector4R> v_p4;
00398   static int psi3Scount;
00399 };
00400 
00401 
00402 #endif

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