FlyoDoc_2011 Pisa 2011 by GmP --- 011

flyopunta/src/src_par/part3pi0.cpp

00001 /***************************************************************************
00002                           part3pi0.cpp  -  description
00003                              -------------------
00004     begin                : Sun May 9 2004
00005     copyright            : (C) 2004 by gmp
00006     email                : peppe@newpeppe
00007   ***************************************************************************
00008   *                                                                         *
00009   *   NA48  simulation program.                                             *
00010   *                                                                         *
00011   ***************************************************************************/
00012 #define MPIC   0.13956
00013 #define MPICQ  0.019477
00014 #define MPIO   0.13497
00015 #define MPIOQ  0.0182169
00016 
00017 #include "flyoh.h"
00018 
00019 using namespace std;
00020 
00021 // constructor
00022     Part3pi0::Part3pi0(double pant)
00023     { // si usa questa procedura se il decadimento e'mediato dalla
00024       // risonanza virtuale pi02 che va esplicitamente scritta nella catenata
00025       // della reazione in Epc.
00026       mpadre=0.;
00027       slope=pant;    // definisce la slope
00028       Gout<<"\n Pi02 done --- Slope ="<<slope<<std::endl;
00029     };
00030 //--------------------------------------------------------------*/
00031 //       D e c P a r m   ==>   vedi PartFase::DecParm()         */
00032 //--------------------------------------------------------------*/
00033 //------------------------------
00034  void Part3pi0::Get_PhaseParm()
00035 {
00036 //-------------------------------------------
00037 // define the particle links.....
00038    PartFase::Get_PhaseParm();
00039    if(p2->Get_Nome()!=p3->Get_Nome())
00040     { Gout<<"\n Particle error in 3 pions decay; pi02 -> "
00041           << p2->Get_Nome()<<" "<<p3->Get_Nome()
00042           <<"  not equal ...malformed.... exit!"<<std::endl;
00043       exit(0);
00044     }
00045  }
00046 //---------------
00047  void  Part3pi0::Get_MatrixParm()
00048 {
00049 // matrix element max weight  guess
00050     if(slope >0.0) { wfase_max=1.+slope*2.63;} else wfase_max=1.;
00051     Gout<<"\n Matrix prob max "<< wfase_max<<" "<<SelRea->Get_Titolo()<<std::endl;
00052 }
00053 
00054 //---------------
00055  int  Part3pi0::Get_MatrixValue()
00056 {
00057 // attenzioine questa matrix non รจ simmetrica sulla permutazione????? 
00058 double su=(mresq-s0)/MPIOQ;
00059 double sv=(2.*mpadre*(e2-e1))/MPIOQ;
00060 double sr=sqrt(su*su+sv*sv);
00061  prb= 1. +slope*sr;
00062 
00063  if(prb>wmtr_max)
00064   {
00065     Gout<<"\n Wmtr off: Ev "
00066         <<setprecision(4)<<fixed
00067         <<setw(6)<<evento_.Gen.Event<<" iter="
00068         <<setw(4)<<itermtr<<" pb="
00069         <<setw(7)<<prb<<" pbx="
00070         <<setw(7)<<wmtr_max <<" e0="
00071         <<setprecision(2)<<fixed
00072         <<setw(6)<<e0<<" e1="
00073         <<setw(6)<<e1<<" "
00074         <<setw(25)<<SelRea->Get_Titolo()<<std::endl;  
00075     wmtr_max=prb*1.0001; // aggiorno ma informo.....non dovrebbe mai accadere!
00076   }
00077   
00078  if((wmtr_max*Pran()) <prb) return 1;   
00079   else return 0;
00080 }
00081 
 All Classes Namespaces Files Functions Variables