//-------------------------------------------------------------------------- // file: CalParameters.hh // birth: May 15, 1997 // author: Jodi Lamoureux, Brandeis University // // revisions: // Oct 20, 1997 JIL- add some mini-plug parameters. // Nov 30, 1999 RGW- Add constants that indicate eta ranges for // each calorimeter // Jan 04, 2000 RGW- Add radius of CES to list of constants. // Label is TLYCES // Jun 05, 2000 RGW- Add some constants specific to Lshr calculation // They are coil radiation lengths used by Lshr, // outer radius of CEM, and Moliere radius of CEM // Jun 12, 2000 DSW- Add TLZPESL0, TLZPESL1 - distances to the two // plug shower-maximum planes. These numbers were // previously hard-wired in PlugStripClusterModule. // Feb 01, 2001 RGW- Attenuation length and calorimeter width parameters // moved here from CalorObjects/CalThresholds.hh // //---------------------------------------------------------------------- // // Calorimeter Parameters used in reconstruction code. // //---------------------------------------------------------------------- #ifndef __CAL_PARAMETERS_HH_ #define __CAL_PARAMETERS_HH_ #include #include #include "misc.hh" #include "CalConstants.hh" const int MASK7 = 127; // 7 bit mask // tower theta boundaries with respect to the center of the // CDF detector. (Z=0.) Units are degrees. float const TOWER_THETA[TOWER_NETA/2+1] = { // Mini plug region 0.46831, 0.94304, 1.40681, 2.09858, // Plug region 3.000, 5.700, 8.400, 11.100, 13.800, 16.500, 19.200, 21.900, 24.600, 27.300, 30.000, 33.524, // Central region 36.822, 40.261, 43.614, 47.436, 51.790, 56.735, 62.310, 68.516, 75.297, 82.526, 90.000 }; float const TLDTHE[TENETA/2+1] = { // Mini plug region 0.46831, 0.94304, 1.40681, 2.09858, // Plug region 3.000, 5.700, 8.400, 11.100, 13.800, 16.500, 19.200, 21.900, 24.600, 27.300, 30.000, 33.524, // Central region 36.822, 40.261, 43.614, 47.436, 51.790, 56.735, 62.310, 68.516, 75.297, 82.526, 90.000 }; // to calculate the locations of energy in the calorimeter, we need // various geometric constants. // Y or Z to detector front face. float const TLYCES = 184.15; float const TLYCEM = 175.26; float const TLYCHA = 214.63; float const TLZWHA = 252.37; float const TLZPEM = 172.72; float const TLZPHA = 226.00; float const TLZPESL0 = 184.8; // plug shower-max layer 0 float const TLZPESL1 = 186.0; // plug shower-max layer 1 float const TLZMEM = 623.20; // mini-plug EM float const TLZMHA = 706.10; // mini-plug HA // Length of CEM along beamline, z=0 to end of tower 9 float const TLZCEM = 248.92; // Outer radius of CEM. Used by CdfEmObject::lshr float const TLYOUTCEM = 204.8; float const TLYDIFFCEM = TLYOUTCEM - TLYCEM; // Radial thickness CEM // special cases. float const TLZTOW10 = 192.4; // PEM back face for tower 10. (type=3) float const TLYTOW7 = 76.19; // CHA back face for tower 7. (type=1) // total absorption and radiation lengths of detector. float const TLATOT = 3.; float const TLRTOT = 10.; // average absorption-length of the calorimeters (90 degree impact angle). float const TLACEM = .646; float const TLACHA = 4.14; float const TLAWHA = 3.98; float const TLAPEM = 0.66; float const TLAPHA = 4.90; float const TLAMEM = 1.29; // mini-plug EM float const TLAMHA = 6.42; // mini-plug HA float const TLACOIL = .14; // solenoid coil float const TLAEND = .021; // end-plate of central tracking chamber // average radiation-length of the calorimeters (90 degree impact angle). float const TLRCEM = 17.97; float const TLRPEM = 16.94; float const TLRMEM = 28.50; float const TLRCOIL = 0.83; float const TLRCOILLSHR = 0.97; // Coil rad. length used by lshr float const TLREND = 0.107; // cm/radiation length for the detectors. float const TLDXDRCEM = 1.764; float const TLDXDRPEM = 3.149; float const TLDXDRMEM = 2.807; // Moliere radius of CEM in centimeters. Used by CdfEmObject::lshr float const TLRMOLCEM = 3.53; // cm/interaction length for the detectors. float const TLDXDACHA = 31.5; float const TLDXDAWHA = 27.9; float const TLDXDAPHA = 29.8; float const TLDXDAMHA = 35.64; // float const TLYTOW = 76.19; float const TLZTOW = 192.4; // yem and zem for tower 25 from ANNULUS_LOCATION init routine // to calculate vertex from SETA bank. (read_SETA() routine) float const TLYEM = 191.433; float const TLZEM = 12.5035; // Attenuation lengths for the CEM, CHA, and WHA scintillator // Nominal widths of the calorimeters. // For the CEM, the nominal width is calculated at the radius of the CES // It is the physical extent of the scintillator. // It has been calculated using TLYCES * tan(15 degrees/2) - width of steel // skins, wavelength shifter plates and foam backing. I have included these // values to try to make the sense of the calculation more decipherable. // Other values are taken from calorimetry.inc. // Bob Wagner(Argonne) 01 Feb 2001 // const float ACEM_92 = 78.7; // 1992 Attenuation length of CEM const float ACHA_92 = 150.0; // 1992 Attenuation length of CHA const float AWHA_92 = 150.0; // 1992 Attenuation length of WHA // Wedge steel skin is 3/16" thick // Foam backing, aluminum sheet, and wavelength shifter total 0.25" thick const float WSteelSkin = 2.54 * (3.0/16.0); const float WFoamWLS = 2.54 * 0.25; const float WedgeHalfAngle = 3.14159265358979 * 7.5 / 180.0; // Width of CEM scintillator at CES radius const float WCEM = (2.0 * TLYCES * 0.131652498) - (2.0 * (WSteelSkin+WFoamWLS) / 0.991444861); const float WCHA = 73.7; // Width of CHA const float WWHA = 71.2; // Width of WHA // Parameters used in azimuthal center of gravity calculations for towers const float RCEM_92 = WCEM/ACEM_92; const float RCHA_92 = WCHA/ACHA_92; const float RWHA_92 = WWHA/AWHA_92; const float RCEMI_92 = ACEM_92/WCEM; const float RCHAI_92 = ACHA_92/WCHA; const float RWHAI_92 = AWHA_92/WWHA; const float RCEM = RCEM_92; const float RCHA = RCHA_92; const float RWHA = RWHA_92; const float RCEMI = RCEMI_92; const float RCHAI = RCHAI_92; const float RWHAI = RWHAI_92; const float ATCEMM = exp(-RCEM*0.5); const float ATCHAM = exp(-RCHA*0.5); const float ATWHAM = exp(-RWHA*0.5); // // The detector numbers that Anwar uses in QFL. // const int KCEM =1; const int KCHA =2; const int KWHA =3; const int KPEM =4; const int KPHA =5; // // The tower indices that Anwar uses in QFL. // const int MIDETA=TENETA/2; // index in towe eta where a perticular detector // is stored. It allows for the overlap of // calorimeters. // em calorimeter const int I1PEME= MIDETA-21; // 5 const int I2PEME= MIDETA-10; // 16 const int I1CEM= MIDETA-9; // 17 const int I2CEM= MIDETA+10; // 36 const int I1PEMW= MIDETA+11; // 37 const int I2PEMW= MIDETA+22; // 48 // hadronic calorimeter const int I1PHAE= MIDETA-21; // 5 const int I2PHAE= MIDETA-11; // 15 const int I1WHAE= MIDETA-11; // 15 const int I2WHAE= MIDETA-6; // 20 const int I1CHA = MIDETA-7; // 19 const int I2CHA = MIDETA+8; // 34 const int I1WHAW= MIDETA+07; // 33 const int I2WHAW= MIDETA+12; // 38 const int I1PHAW= MIDETA+12; // 38 const int I2PHAW= MIDETA+22; // 48 //============================================================================= // TOWE Eta index ranges for each EM calorimeter using numbering scheme that // begins at zero for tower on WEST side nearest the beam // These parameters were added by Bob Wagner, Argonne 30-Nov-1999 //============================================================================= // To update the values below, you must insert values for the following: // TOWER_NETA (defined previously), CEMNumberEtaSeg, MIPNumberEtaSeg, and // MinEtaMIPW. // All other constants below are derived from these four // These parameters give the number of eta segments per side // for each calorimeter const size_t CEMNumberEtaSeg = 10; const size_t MIPNumberEtaSeg = 4; const size_t PEMNumberEtaSeg = (TOWER_NETA/2) - CEMNumberEtaSeg - MIPNumberEtaSeg; // Mini-plug min/max eta for West const size_t MinEtaMIPW = 0; const size_t MaxEtaMIPW = MinEtaMIPW + MIPNumberEtaSeg - 1; // Plug EM Calorimeter min/max eta for West const size_t MinEtaPEMW = MaxEtaMIPW + 1; const size_t MaxEtaPEMW = MinEtaPEMW + PEMNumberEtaSeg - 1; // Central EM Calorimeter min/max eta for West const size_t MinEtaCEMW = MaxEtaPEMW + 1; const size_t MaxEtaCEMW = MinEtaCEMW + CEMNumberEtaSeg - 1; // Central EM Calorimeter min/max eta for East const size_t MinEtaCEME = MaxEtaCEMW + 1; const size_t MaxEtaCEME = MinEtaCEME + CEMNumberEtaSeg - 1; // Plug EM Calorimeter min/max eta for East const size_t MinEtaPEME = MaxEtaCEME + 1; const size_t MaxEtaPEME = MinEtaPEME + PEMNumberEtaSeg - 1; // Mini-plug min/max eta for East const size_t MinEtaMIPE = MaxEtaPEME + 1; const size_t MaxEtaMIPE = MinEtaMIPE + MIPNumberEtaSeg - 1; // Time slewing correction for TDC (was 9.3 in Run 1) const float HTDC_Time_Slew =0.; // Constants describing Photstatistics // ======================================== const int NPHOCEM = 100; const int NPHOCHA = 10; const int NPHOWHA = 6; #endif