FlyoDoc_2011 Pisa 2011 by GmP --- 011

flyopunta/src/src_dev62/devstraw.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 DEVSTRAW_H
00008 #define DEVSTRAW_H
00009 
00010 #include <devrtrt.h>
00011 
00016 /***  attenzione definizione delle camere straw:
00017 Vi sono due strawchamber prima del magnete e due dopo il magnete.
00018 Ciascuna  strawchamber è definita da quattro piani (ordinati in  z)
00019 detti comunemente u,v,x,y, per un totale 16 piani.
00020 
00021 I puntatori ai piani di tipo device sono definiti in device.h come:
00022 extern Device *St1y, *St1x, *St1v, *St1u, *St2y, *St2x, *St2v, *St2u;
00023 extern Device *St3y, *St3x, *St3v, *St3u, *St4y, *St4x, *St4v, *St4u;
00024 
00025 
00026 
00027 Nota: Il device tipo ha sempre i fili paralleli all'asse y è la coordinata del filo corre lungo x.
00028 Ogni piano si ottiene dal device base traslandolo e ruotandolo di gradi 45(u), -45(v), 0(x),-90(y)
00029 */
00030 
00031 
00032 
00033 struct Tubiparm
00034 {
00035     int ntb,nt,bt,ntbc;
00036     int pianosav;
00037     double segno;
00038     double trailing, trailingsav,tlead,tlead0,totdrift,totdriftsav;
00039 
00040     Tubiparm() {
00041         Reset();
00042     }
00043     void Reset() {
00044         ntb=ntbc=nt=pianosav=0;
00045         segno=0.0;
00046         trailingsav=tlead=tlead0=totdrift=trailing=0.0;
00047         totdriftsav=1000.0;
00048     }
00049 
00050     int  FiloValida(int, int *flags, int *Tubo,double *T0, double *Ts);
00051 
00052 };
00053 
00054 
00055 class DevStraw : public DevRtRt
00056 {
00057 private:
00058 // ------
00059 public:
00060     DevStraw *upstraw,*nextstraw;
00061     Tubiparm  TbParm;
00062     DevStraw();
00063     ~DevStraw();
00064     int SimulaDev();
00065     int  Set_tubo(int nb,double DX,double hit_time,int *tubo,double *T0, double *Ts, double *Tmp,int *Tcc);
00066     void Set_tubi_errors(int itb, double *Ts, double *T0);
00067     int Mscatter ( Particella *, double ) ;
00068     void Prgeom();
00069 
00070 
00071     void Get_wire();
00072 
00073 // informazioni per root
00074     int tubiseen,flag_pileup;
00075     int ntub1,tubo1[16],use_tubo1[16] ,toc_tubo1[16];
00076     int ntub2,tubo2[16],use_tubo2[16] ,toc_tubo2[16];
00077     int ntub3,tubo3[16],use_tubo3[16] ,toc_tubo3[16];
00078     int ntub4,tubo4[16],use_tubo4[16] ,toc_tubo4[16];
00079     double ts_tubo1[16],t0_tubo1[16],tmp_tubo1[16];
00080     double ts_tubo2[16],t0_tubo2[16],tmp_tubo2[16];
00081     double ts_tubo3[16],t0_tubo3[16],tmp_tubo3[16];
00082     double ts_tubo4[16],t0_tubo4[16],tmp_tubo4[16];
00083 
00084 //
00085     int nwire;
00086     float Wirecoor[16],Wiredtim[16],Wiret0tim[16],Wiret0stim[16], Wiredtempo[16];  // coordinate del filo colpito....calcolo in simuladev.
00087 
00088 
00089 
00090 };
00091 
00092 // data  pointer
00093 #if defined(MAIN)
00094 DevStraw *FirstStraw=0;
00095 // puntatori ai dati per il multiplescattering corretto.
00096 double *StrTetPip=0;
00097 double *StrTetElep=0;
00098 double *StrTetMup=0;
00099 double **StrProbPip=0;
00100 double **StrProbElep=0;
00101 double **StrProbMup=0;
00102 
00103 DevStraw *St1x=0, *St1y=0, *St1u=0, *St1v=0, *St2x=0, *St2y=0, *St2u=0, *St2v=0;
00104 DevStraw *St3x=0, *St3y=0, *St3u=0, *St3v=0, *St4x=0, *St4y=0, *St4u=0, *St4v=0;
00105 
00106 
00107 #endif
00108 #if !defined(MAIN)
00109 extern DevStraw *FirstStraw;
00110 extern double *StrTetPip;
00111 extern double *StrTetElep;
00112 extern double *StrTetMup;
00113 extern double **StrProbPip;
00114 extern double **StrProbElep;
00115 extern double **StrProbMup;
00116 
00117 extern DevStraw *St1x, *St1y, *St1u, *St1v, *St2x, *St2y, *St2u, *St2v;
00118 extern DevStraw *St3x, *St3y, *St3u, *St3v, *St4x, *St4y, *St4u, *St4v;
00119 
00120 
00121 
00122 #endif
00123 
00124 #endif
00125 
 All Classes Namespaces Files Functions Variables