FlyoDoc_2011 Pisa 2011 by GmP --- 011
Public Member Functions

DevSveto Class Reference

#include <devsveto.h>

Inheritance diagram for DevSveto:
DevCrn DevCln Device

List of all members.

Public Member Functions

 DevSveto ()
virtual int Posizione ()
virtual double CamInter ()
virtual double CamBuco ()
virtual void Prgeom ()
virtual int Get_Structinfo ()

Detailed Description

Procedura per al simulazine in dettaglio di un sistema di veto internamente strutturato

Author:
Giuseppe Pierazzini

Definition at line 26 of file devsveto.h.


Constructor & Destructor Documentation

DevSveto::DevSveto ( )

Procedura per al simulazine in dettaglio del sistema dei veti. Il rivelatore Sveto (system veto) è approssimato da una corona circolare contenente i leadglass (contatori) parallelepipedi inseriti radialmente ed equispaziati lungo la corona con l'asse principale diretto secondo un raggio. Le superfici laterali del leadglass sono piane, quelle in basso ed in alto sono approssimate dalla superficie della corona. Gli spazi liberi tra due leadglass contigui , detti settori, hanno una forma ad incudine con i due lati laterali definiti dalle superfici del due contatori mentre le altre superfici sono delimitate dalla corona. con i lati

Author:
Giuseppe Pierazzini

Definition at line 34 of file devsveto.cpp.

        : DevCrn()
{

//     double latox,latoy,latoz, rmedia;
//   gvet *Ubl,*Use; //Versori degli assi dei blocchi e dei settori.
//   gvet *C_bl,*C_sec; // centri dei blocchi e dei settori
//   int Blocchi, iblocco,isector;
//   double Fasebase;

    devtype=TypDevSveto;
    devclass="Sveto_Crn";
    rin =Lin.y=Lin.x;
    Lin.Norma();
    rinq=rin*rin;

    if (nickname[0]=='A' && nickname[1]=='n') { //serve per controllo, ma è superfluo
        if (nickname[2]!='9' && nickname[3]=='\0') { //anti 1-8 ('\0' è il null character!)
            Strati=5; //numero di strati per veto
            if (nickname[2]=='6'||nickname[2]=='7'||nickname[2]=='8') //anti 6-8
                Blocchi=48;   // numero di blocchi per strato
            else //anti 1-5
                Blocchi=32;
        }
        else { //anti 9-12
            Strati=4; //numero di strati per veto
            if (nickname[3]=='2') // anti 12
                Blocchi=64;   // numero di blocchi per strato
            else // blocchi 9-11
                Blocchi=60;   // numero di blocchi per strato
        }
    }
                
    iblocco=-1;
    isector=-1;
    istrato=-1;

    //  Lout.z;  // = semispessore della corona in z
    latoy=latoz= Lout.z/Strati; // semispessori del leadglass ... (attenzione a Spectrometer09.app!)
    latox= rout-rin;   // lunghezza del leadglass=spessore della corona= rout-rin

//calcolo i versori degli assi  e i centri  dei blocchi
//il primo blocco ha l'asse orientato secondo la FaseBase.
//il primo settore è spostato di Dfi5 in senso antiorario se guardato da downstream

    int TBlocchi=Strati*Blocchi;

    Dfi = 2.* PiGreco/Blocchi;
    U_bl=new gvet[TBlocchi];
    U_sc=new gvet[TBlocchi];
    C_bl=new gvet[TBlocchi];
    C_sc=new gvet[TBlocchi];
    double rmed=(rout+rin)*.5;
    double Dfi5=Dfi*0.5;
    for (int i=0;i<TBlocchi;i++)
    {
        istrato=(i/Blocchi);
        FaseBase[istrato]=istrato*(Dfi/Strati);
        double fi = FaseBase[istrato]+i*Dfi;
        // se Fasebase=0. il primo blocco è lungo l'asse x
        double Centro_z_strato=2.*latoz*istrato+latoz -Lout.z;

//      Gout<<"\n C: "<< Centro_z_strato<<" " << i<< " "<<strato;
        U_bl[i].setvn(cos(fi),sin(fi),0);
        C_bl[i]= U_bl[i]*rmed;
        C_bl[i].z=Centro_z_strato;
        fi+=Dfi5;
        U_sc[i].setvn(cos(fi),sin(fi),0);
        C_sc[i]= U_sc[i]*rmed;
        C_sc[i].z=Centro_z_strato;
    }
    
    
    
    
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables