FlyoDoc_2011 Pisa 2011 by GmP --- 011
|
00001 /*************************************************************************** 00002 * Copyright (C) 2005 by Giuseppe Pierazzini Pisa 05.09.05 * 00003 * pierazzini@unipi.it * 00004 * F l y o * 00005 * Epsi/NA48 * 00006 ***************************************************************************/ 00007 #ifndef REAZIONE_H 00008 #define REAZIONE_H 00009 00010 class Particella; 00011 00017 #include <cstring> 00018 class Reazione // base class 00019 { 00020 00021 protected: 00022 std::string header; 00023 int id ; 00024 long type; 00025 00026 int generati,veri,trasmessi,scrnt; 00027 00028 double vxb,vyb,vzb,ppb,inc_pinc,inc_teta; 00029 double branch,prodrate,rate, prob,pincmx; 00030 double Dnsudp,maxspettro; 00031 double ctau_avo_su_mass; 00032 // protoni incidenti 00033 gvet Pinc_ppp,Vinc_ppp; 00034 // production parameters... 00035 double wpinc,wpincq; 00036 int ubeam; // user beam flags 00037 gvet Pinc,Ctarg; 00038 double rtarg, dztarg; 00039 // bersaglio e collimatore , centro, raggio e lunghezza;Produci 00040 double wpbers, drbers; 00041 gvet Pbersa,Cbers,Ccoll; 00042 double rbers,dzbers, rcoll,dzcoll; 00043 double slope; 00044 00045 00046 public: 00047 double mdltz,edltz1,edltz2; // control of particular prodution 00048 double mspair,mbrem, eeb,eleb; // flag: production of particles in fligth done if >1 00049 int Pipev; 00050 int Pair_done,Totpair; 00051 int Tailsrt_done,Tailsrt; 00052 int Tailong_done,Tailong; 00053 int Dalitz_done,Totdltz; 00054 int Brem_done,Totbrem; 00055 Reazione (); 00056 virtual ~Reazione () {}; 00057 void Leggi_schede_rea(); 00058 int rea_type; // -1 beam only, 0 ->decay, =1 -> urto 00059 int rea_pattern; 00060 int Totpart,TotpartSave; 00061 int Gasint_Done; 00062 // double ProdPeso; 00063 gvet Xtarg,Pbeam,Vbeam; // generation Targ,pinc,verso 00064 gvet Xbers,Pbers,Vbers; // generation for bersaglio 00065 int ss_done; 00066 double ss0,ss1,ss2; // partfase save ss.... 00067 00068 // Particella * avo,*TreRes, *Lastpart,*LastpartSave; 00069 Particella * avo, *Lastpart,*LastpartSave; 00070 Reazione *next, *up; 00071 Reazione *Select_reation (); 00072 int Get_Id() { 00073 return id; 00074 } 00075 double Get_Slope(){return slope;}; 00076 std::string Get_Titolo() { 00077 return header; 00078 } 00079 void Reset_Rea(); 00080 void Stampa(); 00081 void PrintPinc(); 00082 void PrintPbers(); 00083 void Makelist (); 00084 void AddNt() { 00085 scrnt++; 00086 } 00087 void SubNt() { 00088 scrnt--; 00089 } 00090 void AddGen(); 00091 void Norma_Rate(); 00092 void Simple_List(); 00093 void Fine_run (); 00094 void MaxSpettro(); 00095 00096 virtual int Get_Beam (); 00097 virtual double Produci(); 00098 double UProduci(); 00099 Particella * NuovaPart(const char *); 00100 Particella * NuovaBullet(const char *); 00101 }; 00102 00103 #if defined(MAIN) 00104 int Trigger_flag=0; 00105 double Time_trigger_last=0.0; 00106 #endif 00107 00108 #if !defined(MAIN) 00109 extern int Trigger_flag; 00110 extern double Time_trigger_last; 00111 #endif 00112 00113 #if defined(MAIN) 00114 int TotRea = 0; 00115 Reazione *Reaction=0,*LastReaction=0,*last_parz=0; 00116 Reazione *SelRea; 00117 double Prodtot=0.0, Protoni=0.0; 00118 int Abilita_Pair=0,Abilita_Brems=0; 00119 #endif 00120 00121 #if !defined(MAIN) 00122 extern int TotRea; 00123 extern Reazione *Reaction,*LastReaction,*last_parz; 00124 extern Reazione *SelRea; 00125 extern double Prodtot,Protoni; 00126 extern int Abilita_Pair,Abilita_Brems; 00127 #endif 00128 #endif 00129 00130 00131