Esempio n. 1
0
CMS::CMS() : Detector() {
  // ECAL detector Element
  m_ecal = std::make_shared<const CMSECAL>(
      VolumeCylinder(Layer::kEcal, 1.55, 2.1, 1.30, 2),
      Material("CMS_ECAL", 8.9e-3, 0.275),
      1.479,                        // eta_crack
      std::vector<double>{0.3, 1},  // emin barrel and endcap
      std::vector<std::vector<double>>{{4.22163e-02, 1.55903e-01, 7.14166e-03},
                                       {-2.08048e-01, 3.25097e-01, 7.34244e-03}},
      std::vector<std::vector<double>>{{1.00071, -9.04973, -2.48554},
                                       {9.95665e-01, -3.31774, -2.11123}});  // barrel and endcap

  // HCAL detector element
  m_hcal = std::make_shared<const CMSHCAL>(
      VolumeCylinder(Layer::kHcal, 2.9, 3.6, 1.9, 2.6),
      Material("CMS_HCAL", 0.0, 0.17),
      1.3,  // eta crack
      std::vector<std::vector<double>>{{0.8062, 2.753, 0.1501}, {6.803e-06, 6.676, 0.1716}},
      std::vector<std::vector<double>>{{1.036, 4.452, -2.458}, {1.071, 9.471, -2.823}});
  // Tracker detector element
  m_tracker = std::make_shared<const CMSTracker>(VolumeCylinder(Layer::kTracker, 1.29, 1.99));

  // Field detector element
  m_field = std::make_shared<const CMSField>(VolumeCylinder(Layer::kField, 2.9, 3.6), 3.8);
  setupElements();  // sets up a list of all detector elements (m_elements) (needed for propagation)
}
Esempio n. 2
0
CMSECAL::CMSECAL(double innerRadius,
                 double innerZ,
                 double outerRadius,
                 double outerZ,
                 double x0,
                 double lambdaI,
                 double clusterSizePhoton,
                 double clusterSize,
                 double etaCrack,
                 double etaAcceptanceThreshold,
                 double ptAcceptanceThreshold,
                 double etaEndcapMin,
                 double etaEndcapMax,
                 const std::vector<double>
                     emin,
                 const std::vector<std::vector<double>>
                     eres,
                 const std::vector<std::vector<double>>
                     eresp)
    : Calorimeter(Layer::kEcal,
                  VolumeCylinder(Layer::kEcal, outerRadius, outerZ, innerRadius, innerZ),
                  Material("CMS_ECAL", x0, lambdaI)),
      m_etaCrack(etaCrack),
      m_clusterSizePhoton(clusterSizePhoton),
      m_clusterSize(clusterSize),
      m_etaAcceptanceThreshold(etaAcceptanceThreshold),
      m_ptAcceptanceThreshold(ptAcceptanceThreshold),
      m_etaEndcapMin(etaEndcapMin),
      m_etaEndcapMax(etaEndcapMax),
      m_emin(emin),
      m_eres(eres),
      m_eresp(eresp) {}
Esempio n. 3
0
CMSHCAL::CMSHCAL(double innerRadius, double innerZ, double outerRadius, double outerZ, double clusterSize, double x0,
                 double lambdaI, double etacrack, const std::vector<std::vector<double>> eres,
                 const std::vector<std::vector<double>> eresp, const std::vector<double> acceptanceParameters)
    : Calorimeter(Layer::kHcal,
                  VolumeCylinder(Layer::kHcal, outerRadius, outerZ, innerRadius, innerZ),
                  Material("Clic_HCAL", x0, lambdaI)),
      m_clusterSize(clusterSize),
      m_etaCrack(etacrack),
      m_eres(eres),
      m_eresp(eresp),
      m_acceptanceParameters(acceptanceParameters) {}
Esempio n. 4
0
ClicECAL::ClicECAL(double innerRadius,
                   double innerZ,
                   double depth,
                   double clusterSizePhoton,
                   double clusterSize,
                   double etaAcceptance,
                   const std::vector<double>
                       emin,
                   const std::vector<double>
                       eresBarrel,
                   int nX0,
                   int nLambdaI,
                   double eResponse)
    : Calorimeter(Layer::kEcal,
                  VolumeCylinder(Layer::kEcal, innerRadius + depth, innerZ + depth, innerRadius, innerZ),
                  Material("Clic_ECAL", depth / nX0, depth / nLambdaI)),
      m_clusterSize(clusterSize),
      m_clusterSizePhoton(clusterSizePhoton),
      m_emin(emin),
      m_eresBarrel(eresBarrel),
      m_eResponse(eResponse),
      m_etaAcceptance(etaAcceptance) {}