FlyoDoc_2011 Pisa 2011 by GmP --- 011
|
00001 /*************************************************************************** 00002 devlkr.h - description 00003 ------------------- 00004 begin : Sat May 26 2001 00005 copyright : (C) 2001 by Giuseppe Pierazzini 00006 email : pierazzini@unipi.it 00007 ***************************************************************************/ 00008 00009 #ifndef DEVLKR_H 00010 #define DEVLKR_H 00011 00012 #include "devcrn.h" 00013 00019 //============================================= 00020 00021 struct Picco 00022 { 00023 int ix,iy; 00024 // double x,y; 00025 // double e; 00026 }; 00027 00028 struct Cella 00029 { 00030 00031 int id; // number 0<=id<=16384; id=128*(127-iy)+ix 00032 int ix,iy; 00033 double x,y; 00034 double Xcella,Ycella; 00035 double e; 00036 void Set_index ( double x,double y,int ix,int iy ); 00037 void Rilascia_E ( double sig,double e_in ); 00038 void Cella2Pad(); 00039 }; 00040 00041 struct PadRaster 00042 { 00043 int padhit; 00044 int npeak; 00045 double dist_max; 00046 double epad28,m28x,m28qx,m28y,m28qy; 00047 double epad44,m44x,m44qx,m44y,m44qy; 00048 double quad1,quad2,quad3,quad4; 00049 00050 union { double pad28[1024]; 00051 double padx28[64][16]; 00052 }; 00053 union { double pad44[1024]; 00054 double padxy44[32][32]; 00055 }; 00056 00057 union {short PADflag_l[1024]; 00058 short PADflag[32][32]; 00059 }; 00060 Picco Peak[10]; // massimo 10 picchi 00061 00062 void Reset(); 00063 void Momenti(); 00064 void Get_Peak(); 00065 int Peak_mask ( int ix ,int iy ); 00066 00067 }; 00068 00069 //========================= Calorimetro Lkry======================== 00070 //========================= Calorimetro Lkry======================== 00071 //========================= Calorimetro Lkry======================== 00072 00073 class DevLkr:public DevCrn 00074 // Cilindro con buco circolare interno 00075 { 00076 protected: 00077 00078 // variabili di comodo 00079 double x,y,ep,se,sx; 00080 int i,ht,hi,dead; 00081 double xyd,ee; 00082 double rr, xfr,slope; 00083 int Fusione; 00084 static const float Deadcl[90][2]; 00085 00086 public: 00087 DevLkr() 00088 { 00089 devtype=TypDevLkr; 00090 Fusione=1; //flag to controll the gam fusion ==1 fusion allowed 00091 // attenzione Fusion=1! set to 0 to avoid gam fusion 00092 devclass="Liquid Kripton calorimeter"; 00093 Gout<<"\n\n < "<<nome <<" > Dev Id "<<idev<<" Device type <"<<devclass<<"> typ "<<devtype; 00094 }; 00095 00096 ~DevLkr(); 00097 00098 virtual int Traccia ( Particella * ); 00099 virtual void DataSmear(); 00100 virtual void Prgeom(); 00101 virtual int SimulaDev(); 00102 virtual void Reset_RootData(); 00103 int Get_DeadCel ( double x,double y ); 00104 // virtual int Get_Structinfo(); 00105 void Pad_Filling( ); 00106 double E_pio_Relesed ( Bufdev * ); 00107 double sepm; 00108 00109 // informazioni root 00110 int padhit; 00111 float dist_max; 00112 float epad28,m28x,m28qx,m28y,m28qy; 00113 float epad44,m44x,m44qx,m44y,m44qy; 00114 float quad1, quad2, quad3, quad4; 00115 00116 }; 00117 #if defined(MAIN) 00118 Device *lkry=0; 00119 #else 00120 extern Device *lkry; 00121 00122 #endif 00123 #endif