| 1 | use strict;
 | 
  
    | 2 | use warnings;
 | 
  
    | 3 | our %detector;
 | 
  
    | 4 | our %configuration;
 | 
  
    | 5 | our %parameters;
 | 
  
    | 6 | 
 | 
  
    | 7 | my $DetectorMother="root";
 | 
  
    | 8 | 
 | 
  
    | 9 | my $DetectorName = 'det1_tagger_eledownstream';
 | 
  
    | 10 | 
 | 
  
    | 11 | #length in m, halfaperture in cm, streng in T or T/m, X in m, Z in m, Theta in rad
 | 
  
    | 12 | my $e_ds_dipole1_length			= $parameters{"e_ds_dipole1_length"};
 | 
  
    | 13 | my $e_ds_dipole1_innerhalfaperture	= $parameters{"e_ds_dipole1_innerhalfaperture"};
 | 
  
    | 14 | my $e_ds_dipole1_outerhalfaperture	= $parameters{"e_ds_dipole1_outerhalfaperture"};
 | 
  
    | 15 | my $e_ds_dipole1_strength		= $parameters{"e_ds_dipole1_strength"};
 | 
  
    | 16 | my $e_ds_dipole1_X			= $parameters{"e_ds_dipole1_X"};
 | 
  
    | 17 | my $e_ds_dipole2_X			= $parameters{"e_ds_dipole2_X"};
 | 
  
    | 18 | my $e_ds_dipole3_X			= $parameters{"e_ds_dipole3_X"};
 | 
  
    | 19 | my $e_ds_dipole1_Z			= $parameters{"e_ds_dipole1_Z"};
 | 
  
    | 20 | my $e_ds_dipole2_Z			= $parameters{"e_ds_dipole2_Z"};
 | 
  
    | 21 | my $e_ds_dipole3_Z			= $parameters{"e_ds_dipole3_Z"};
 | 
  
    | 22 | my $e_ds_dipole1_Theta			= $parameters{"e_ds_dipole1_Theta"};
 | 
  
    | 23 | 
 | 
  
    | 24 | my $Dy=$e_ds_dipole1_outerhalfaperture;
 | 
  
    | 25 | my $Dz=0.5*$e_ds_dipole1_length;
 | 
  
    | 26 | my $X=$e_ds_dipole1_X-0.6;
 | 
  
    | 27 | #my $Z=$e_ds_dipole1_Z-2*$e_ds_dipole1_length;
 | 
  
    | 28 | my $Z=$e_ds_dipole1_Z-2;
 | 
  
    | 29 | my $Z2=$e_ds_dipole2_Z+2;
 | 
  
    | 30 | my $X2=$e_ds_dipole2_X-0.5;
 | 
  
    | 31 | my $Z3=$e_ds_dipole3_Z-2;
 | 
  
    | 32 | my $X3=$e_ds_dipole3_X-0.3;
 | 
  
    | 33 | # == id name ==============================================================
 | 
  
    | 34 | # digit     beamline                side          magnet      number          window
 | 
  
    | 35 | #        ion    1        upstream    1    dipole    1           n     front      1
 | 
  
    | 36 | #        ele    2       downstream   2  quadrupole  2           n     back       2
 | 
  
    | 37 | #                                         virtual   3 
 | 
  
    | 38 | #                                         compton   4 
 | 
  
    | 39 | #                                         tagger    5 
 | 
  
    | 40 | # =========================================================================
 | 
  
    | 41 | 
 | 
  
    | 42 | 
 | 
  
    | 43 | sub det1_tagger_eledownstream
 | 
  
    | 44 | {
 | 
  
    | 45 |     make_meic_det1_ele_tagger_side();
 | 
  
    | 46 |     make_meic_det1_ele_tagger_front();
 | 
  
    | 47 |     make_meic_det1_ele_tagger_back();
 | 
  
    | 48 | 
 | 
  
    | 49 | }
 | 
  
    | 50 | 
 | 
  
    | 51 | sub make_meic_det1_ele_tagger_side
 | 
  
    | 52 | {
 | 
  
    | 53 | 	my %detector = init_det();
 | 
  
    | 54 | 	$detector{"name"}        = "$DetectorName"."side";
 | 
  
    | 55 | 	$detector{"mother"}      = "$DetectorMother" ;
 | 
  
    | 56 | 	$detector{"description"} = "$DetectorName";
 | 
  
    | 57 | 	$detector{"pos"}         = "$X*m 0*m $Z*m";
 | 
  
    | 58 | 	$detector{"rotation"}    = "0*deg -$e_ds_dipole1_Theta*deg 0*deg";
 | 
  
    | 59 | 	$detector{"color"}       = "880000";
 | 
  
    | 60 | 	$detector{"type"}        = "Box";
 | 
  
    | 61 | 	$detector{"dimensions"}  = "1*cm 10*cm 3*m";
 | 
  
    | 62 | 	$detector{"material"}    = "Kryptonite";
 | 
  
    | 63 | 	$detector{"mfield"}     = "no";
 | 
  
    | 64 | 	$detector{"ncopy"}      = 1;
 | 
  
    | 65 | 	$detector{"pMany"}       = 1;
 | 
  
    | 66 | 	$detector{"exist"}       = 1;
 | 
  
    | 67 | 	$detector{"visible"}     = 1;
 | 
  
    | 68 | 	$detector{"style"}       = 1;	
 | 
  
    | 69 | 	$detector{"sensitivity"} ="flux";
 | 
  
    | 70 | 	$detector{"hit_type"}    ="flux";
 | 
  
    | 71 | 	$detector{"identifiers"} ="id manual 22510";
 | 
  
    | 72 | 	print_det(\%configuration, \%detector);	
 | 
  
    | 73 | }
 | 
  
    | 74 | 
 | 
  
    | 75 | sub make_meic_det1_ele_tagger_front
 | 
  
    | 76 | {
 | 
  
    | 77 | 	my %detector = init_det();
 | 
  
    | 78 | 	$detector{"name"}        = "$DetectorName"."front";
 | 
  
    | 79 | 	$detector{"mother"}      = "$DetectorMother" ;
 | 
  
    | 80 | 	$detector{"description"} = "$DetectorName";
 | 
  
    | 81 | 	$detector{"pos"}         = "$X*m 0*m $Z2*m";
 | 
  
    | 82 | 	$detector{"rotation"}    = "0*deg -$e_ds_dipole1_Theta*deg 0*deg";
 | 
  
    | 83 | 	$detector{"color"}       = "880000";
 | 
  
    | 84 | 	$detector{"type"}        = "Box";
 | 
  
    | 85 | 	$detector{"dimensions"}  = "30*cm 10*cm 0.1*cm";
 | 
  
    | 86 | 	$detector{"material"}    = "Kryptonite";
 | 
  
    | 87 | 	$detector{"mfield"}     = "no";
 | 
  
    | 88 | 	$detector{"ncopy"}      = 1;
 | 
  
    | 89 | 	$detector{"pMany"}       = 1;
 | 
  
    | 90 | 	$detector{"exist"}       = 1;
 | 
  
    | 91 | 	$detector{"visible"}     = 1;
 | 
  
    | 92 | 	$detector{"style"}       = 1;	
 | 
  
    | 93 | 	$detector{"sensitivity"} ="flux";
 | 
  
    | 94 | 	$detector{"hit_type"}    ="flux";
 | 
  
    | 95 | 	$detector{"identifiers"} ="id manual 22511";
 | 
  
    | 96 | 	print_det(\%configuration, \%detector);	
 | 
  
    | 97 | }
 | 
  
    | 98 | 
 | 
  
    | 99 | sub make_meic_det1_ele_tagger_back
 | 
  
    | 100 | {
 | 
  
    | 101 | 	my %detector = init_det();
 | 
  
    | 102 | 	$detector{"name"}        = "$DetectorName"."back";
 | 
  
    | 103 | 	$detector{"mother"}      = "$DetectorMother" ;
 | 
  
    | 104 | 	$detector{"description"} = "$DetectorName";
 | 
  
    | 105 | 	$detector{"pos"}         = "$X3*m 0*m $Z3*m";
 | 
  
    | 106 | 	$detector{"rotation"}    = "0*deg -$e_ds_dipole1_Theta*deg 0*deg";
 | 
  
    | 107 | 	$detector{"color"}       = "880000";
 | 
  
    | 108 | 	$detector{"type"}        = "Box";
 | 
  
    | 109 | 	$detector{"dimensions"}  = "30*cm 10*cm 0.1*cm";
 | 
  
    | 110 | 	$detector{"material"}    = "Kryptonite";
 | 
  
    | 111 | 	$detector{"mfield"}     = "no";
 | 
  
    | 112 | 	$detector{"ncopy"}      = 1;
 | 
  
    | 113 | 	$detector{"pMany"}       = 1;
 | 
  
    | 114 | 	$detector{"exist"}       = 1;
 | 
  
    | 115 | 	$detector{"visible"}     = 1;
 | 
  
    | 116 | 	$detector{"style"}       = 1;	
 | 
  
    | 117 | 	$detector{"sensitivity"} ="flux";
 | 
  
    | 118 | 	$detector{"hit_type"}    ="flux";
 | 
  
    | 119 | 	$detector{"identifiers"} ="id manual 22512";
 | 
  
    | 120 | 	print_det(\%configuration, \%detector);	
 | 
  
    | 121 | }
 |