From a8796aa14a2ee18142588de680d1d7b21b4c27d7 Mon Sep 17 00:00:00 2001 From: Nikiforos Nikiforou <Nikiforos.Nikiforou@cern.ch> Date: Wed, 19 Aug 2015 12:20:57 +0000 Subject: [PATCH] Modified createGearForCLIC to accommoddate new DDRec structures --- DDRec/src/gear/createGearForCLIC.cpp | 18 +++++++++++------- doc/release.notes | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/DDRec/src/gear/createGearForCLIC.cpp b/DDRec/src/gear/createGearForCLIC.cpp index dcdcbc513..9f9c5d93b 100644 --- a/DDRec/src/gear/createGearForCLIC.cpp +++ b/DDRec/src/gear/createGearForCLIC.cpp @@ -340,21 +340,25 @@ namespace DD4hep{ gear::CalorimeterParametersImpl* gearCalo = ( calo->layoutType == LayeredCalorimeterData::BarrelLayout ? - new gear::CalorimeterParametersImpl( calo->extent[0]/dd4hep::mm, calo->extent[3]/dd4hep::mm, calo->inner_symmetry, calo->phi0 ) : + new gear::CalorimeterParametersImpl( calo->extent[0]/dd4hep::mm, calo->extent[3]/dd4hep::mm, calo->inner_symmetry, calo->inner_phi0 ) : //CalorimeterParametersImpl (double rMin, double zMax, int symOrder=8, double phi0=0.0) - C'tor for a cylindrical (octagonal) BARREL calorimeter. - new gear::CalorimeterParametersImpl( calo->extent[0]/dd4hep::mm, calo->extent[1]/dd4hep::mm, calo->extent[2]/dd4hep::mm, calo->outer_symmetry, calo->phi0 ) ) ; + new gear::CalorimeterParametersImpl( calo->extent[0]/dd4hep::mm, calo->extent[1]/dd4hep::mm, calo->extent[2]/dd4hep::mm, calo->outer_symmetry, calo->outer_phi0 ) ) ; //CalorimeterParametersImpl (double rMin, double rMax, double zMin, int symOrder=2, double phi0=0.0) - C'tor for a cylindrical (octagonal) ENDCAP calorimeter. for( unsigned i=0, nL = calo->layers.size() ; i <nL ; ++i ){ LayeredCalorimeterData::Layer& l = calo->layers[i] ; + + //Do some arithmetic to get thicknesses and (approximate) absorber thickneses from "new" DDRec structures + //The positioning should come out right, but the absorber thickness should be overestimated due to the presence of + //other less dense material if( i == 0 ) { - gearCalo->layerLayout().positionLayer( l.distance/dd4hep::mm, l.thickness/dd4hep::mm , - l.cellSize0/dd4hep::mm, l.cellSize1/dd4hep::mm, l.absorberThickness/dd4hep::mm ) ; + gearCalo->layerLayout().positionLayer( l.distance/dd4hep::mm, (l.inner_thickness+l.sensitive_thickness/2.)/dd4hep::mm , + l.cellSize0/dd4hep::mm, l.cellSize1/dd4hep::mm, (l.inner_thickness-l.sensitive_thickness/2.)/dd4hep::mm ) ; }else{ - gearCalo->layerLayout().addLayer( l.thickness/dd4hep::mm , - l.cellSize0/dd4hep::mm, l.cellSize1/dd4hep::mm, l.absorberThickness/dd4hep::mm ) ; + gearCalo->layerLayout().addLayer((l.inner_thickness+l.sensitive_thickness/2.+calo->layers[i-1].outer_thickness-calo->layers[i-1].sensitive_thickness/2.)/dd4hep::mm , + l.cellSize0/dd4hep::mm, l.cellSize1/dd4hep::mm, (l.inner_thickness-l.sensitive_thickness/2.+calo->layers[i-1].outer_thickness-calo->layers[i-1].sensitive_thickness/2.)/dd4hep::mm) ; } } @@ -362,7 +366,7 @@ namespace DD4hep{ if( it->first == "HCalBarrel" ){ // additional parameters needed by MarlinPandora gearCalo->setIntVal("Hcal_outer_polygon_order" , calo->outer_symmetry ) ; - gearCalo->setDoubleVal("Hcal_outer_polygon_phi0" , calo->phi0 ) ; + gearCalo->setDoubleVal("Hcal_outer_polygon_phi0" , calo->outer_phi0 ) ; } diff --git a/doc/release.notes b/doc/release.notes index 3308e9f20..ea5ddcfc8 100644 --- a/doc/release.notes +++ b/doc/release.notes @@ -17,7 +17,7 @@ DD4hep ---- Release Notes - The variables "absorberThickness" and "thickness" are now DEPRECATED - The variable "distance" is understood to contain the distance from the IP or the Z axis to the innermost face of the layer. - + - DDRec/createGearForCLIC.cpp: Made compatible with new DDRec structure 2015-08-12 N.Nikiforou ----------------------- -- GitLab