FlyoDoc_2011 Pisa 2011 by GmP --- 011

flyopunta/src/src_dev/devfluka.cpp

00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Giuseppe Pierazzini          Pisa 20.02.05      *
00003  *   pierazzini@unipi.it                                                   *
00004  *                                     F l y o                             *
00005  *   Epsi/NA48                                                             *
00006  ***************************************************************************/
00007 
00008 #include "flyoh.h"
00009 #define ESTERNO  1
00010 #define INTERNO  0
00011 #define INBUCO   -1
00012 
00013 using namespace std;
00014 
00023 DevFluka::DevFluka()
00024 {
00025   //tipico device per lo studio delle interazioni co il gasss
00026   devtype=TypDevGas;
00027   devclass="Dec_Tubo";
00028   fun =Gasint;
00029   Lato_z=2.*Lout.z;
00030 }
00031 
00032 
00033 int DevFluka::Traccia ( Particella *pr )
00034 {double tratok=0;
00035 
00036   // particella stabile 
00037   
00038   if(pr->Get_Ido()==1 && pr->Get_Ctau()==-1.0 &&nowpos==-1)     
00039   {
00040   //tracing in the device "buco".....
00041   // define the interaction point inside the device,..
00042   // even if the particle is stable. Mark the particle as decay
00043 //    cout<<"\n Ev0 "<< Eventi_Fatti<< " "<<pr->Get_Nome()<<" f "<<pr->Get_Fato() <<" z "<<setw(8)<<pr->X.z<<"  pathmax "<<setw(8)<< pr->path_max
00044 //    <<" done "<<setw(8)<<pr->path_done<<" pathok "<<setw(8)<<pr->pathok<<" last "<<setw(8)<<pr->last_path<<flush;
00045    
00046    
00047     if(pr->path_max==Zona)
00048     {
00049    tratok= Pran()* Lato_z;
00050     pr->path_max=Cface.z+ tratok;
00051     }
00052     
00053     if(pr->pathok > (  pr->path_max- pr->path_done ) )
00054         {
00055             pr->pathok= ( pr->path_max-pr->path_done+0.000001 );
00056            pr->Set_Fato(Decay,-2);   
00057         
00058         }
00059 
00060 //    cout<<"\n Ev1 "<< Eventi_Fatti<< " "<<pr->Get_Nome()<<" f "<<pr->Get_Fato()<<" z "<<setw(8)<<pr->X.z<<"  pathmax "<<setw(8)<< pr->path_max
00061 //    <<" done "<<setw(8)<<pr->path_done<<" pathok "<<setw(8)<<pr->pathok<<" last "<<setw(8)<<pr->last_path<<flush; 
00062  
00063   }
00064     
00065 int ok = Device::Traccia(pr);
00066 
00067  return ok;
00068 }
00069 
00070 
00071 
00072 void DevFluka::Prgeom()
00073 {
00074 //----------------- --------
00075   Gout<<"==================  R i v e l a t o r e =================";
00076   Gout<<"\n --> < "<<nome <<" >  [ "<<fun
00077   <<" ]  Decay region Dev";
00078 
00079   Device::Prgeom();
00080 
00081 // ridefinizione dei buffer per contenere gli hits se troppi
00082 
00083 }
00084 
 All Classes Namespaces Files Functions Variables