FlyoDoc_2011 Pisa 2011 by GmP --- 011

flyopunta/src/src_dev62/devlkr.h

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