FlyoDoc_2011 Pisa 2011 by GmP --- 011

flyopunta/src/src_reaz/reazione.h

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 
 All Classes Namespaces Files Functions Variables