diff --git a/calorimeters/CentralBarrel_AMEGOX.xml b/calorimeters/CentralBarrel_AMEGOX.xml deleted file mode 100644 index ba8d8534cfd8253e36fed819421e7c350a053f03..0000000000000000000000000000000000000000 --- a/calorimeters/CentralBarrel_AMEGOX.xml +++ /dev/null @@ -1,122 +0,0 @@ -<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> - - <!-- Some information about detector --> - <info name="Central_Barrel_EMCal_Module_example" title="Central Barrel EMCal Module Example" - author="Chao Peng" - url="https://eicweb.phy.anl.gov/EIC/NPDet" - status="development" - version="v2.0 2020-07-30"> - <comment>A Module of Central Barrel EMCal</comment> - </info> - - <!-- Use DD4hep elements and materials definitions --> - <includes> - <gdmlFile ref="elements.xml"/> - <gdmlFile ref="materials.xml"/> - </includes> - - <!-- Define the dimensions of the world volume --> - <define> - <constant name="world_side" value="50*m"/> - <constant name="world_x" value="world_side"/> - <constant name="world_y" value="world_side"/> - <constant name="world_z" value="world_side"/> - - <constant name="tracker_region_zmax" value="6.0 * m"/> - <constant name="tracker_region_rmax" value="6.0 * m"/> - - <constant name="cb_ECal_rmin" value="1.3*m" /> - <constant name="cb_ECal_length" value="4.0*m"/> - <constant name="cb_ECal_mod_length" value="0.5*m"/> - <constant name="cb_ECal_mod_width" value="0.5*m"/> - - <constant name="cb_ECal_SiliconThickness" value="0.5*mm"/> - <constant name="cb_ECal_ElectronicsThickness" value="0.15*mm"/> - <constant name="cb_ECal_CopperThickness" value="0.1*mm"/> - <constant name="cb_ECal_KaptonThickness" value="0.2*mm"/> - <constant name="cb_ECal_EpoxyThickness" value="0.1*mm"/> - <constant name="cb_ECal_CarbonThickness" value="0.5*mm"/> - <constant name="cb_ECal_CarbonSpacerWidth" value="4*mm"/> - <constant name="cb_ECal_LayerSpacing" value="5*mm"/> - - <constant name="cb_ECal_AvailThickness" value="40*cm"/> - <constant name="cb_ECal_ReadoutLayerThickness" - value="cb_ECal_SiliconThickness+cb_ECal_ElectronicsThickness+cb_ECal_CopperThickness+cb_ECal_KaptonThickness+cb_ECal_EpoxyThickness+cb_ECal_CarbonThickness+cb_ECal_LayerSpacing" /> - <constant name="cb_ECal_ReadoutLayerNumber" value="floor(cb_ECal_AvailThickness/cb_ECal_ReadoutLayerThickness)"/> - - </define> - - <limits> - <limitset name="cal_limits"> - <limit name="step_length_max" particles="*" value="5.0" unit="mm"/> - </limitset> - </limits> - - <regions> - </regions> - - <!-- Common Generic visualization attributes --> - <comment>Common Generic visualization attributes</comment> - <display> - <vis name="InvisibleNoDaughters" showDaughters="false" visible="false"/> - <vis name="InvisibleWithDaughters" showDaughters="true" visible="false"/> - <vis name="GreenVis" alpha="0.5" r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/> - <vis name="RedVis" alpha="0.5" r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/> - <vis name="BlueVis" alpha="0.5" r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="OrangeVis" alpha="0.5" r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/> - <vis name="RedGreenVis" alpha="0.5" r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/> - <vis name="BlueGreenVis" alpha="0.5" r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="PurpleVis" alpha="0.5" r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="DoubleRedG" alpha="0.5" r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/> - <vis name="RBG015" alpha="0.5" r= "0.0" g=".2" b="1.0" showDaughters="true" visible="true"/> - <vis name="RBG510" alpha="0.5" r= "1.0" g=".2" b="0.0" showDaughters="true" visible="true"/> - <vis name="RBG" alpha="0.5" r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/> - <vis name="GrayVis" alpha="0.5" r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/> - <vis name="EcalBarrelVis" alpha="1.0" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true" /> - </display> - - <!-- Define detector --> - <detectors> - <comment> - --------------------- - Barrel EM Calorimeter - --------------------- - A layered EM calorimeter with tungsten and silicon (or scintillator) strips - </comment> - <detector - id="131" - name="EcalBarrel" - type="DD4hep_EcalBarrel" - readout="EcalBarrelHits" - calorimeterType="EM_BARREL"> - <dimensions numsides="16" rmin="cb_ECal_rmin" z="cb_ECal_mod_length"/> - <staves vis="EcalBarrelVis"/> - <layer repeat="cb_ECal_ReadoutLayerNumber"> - <slice material="Silicon" thickness="cb_ECal_SiliconThickness" sensitive="yes" limits="cal_limits"/> - <slice material="Silicon" thickness="cb_ECal_ElectronicsThickness"/> - <slice material="Copper" thickness="cb_ECal_CopperThickness"/> - <slice material="Kapton" thickness="cb_ECal_KaptonThickness"/> - <slice material="Epoxy" thickness="cb_ECal_EpoxyThickness"/> - <slice material="CarbonFiber" thickness="cb_ECal_CarbonThickness"/> - <slice material="Air" thickness="cb_ECal_LayerSpacing"/> - </layer> - </detector> - </detectors> - - <!-- Definition of the readout segmentation/definition --> - <readouts> - <readout name="EcalBarrelHits"> - <segmentation type="CartesianGridXY" grid_size_x="2.0 * cm" grid_size_y="2.0 * cm"/> - <id>system:8,barrel:3,module:4,layer:10,slice:5,x:32:-16,y:-16</id> - </readout> - </readouts> - - - <plugins> - </plugins> - - <fields> - </fields> -</lccdd> diff --git a/calorimeters/options/emcal_barrel_reco.py b/calorimeters/options/emcal_barrel_reco.py index 8daa925316958a6e42eb60993f272118477b41be..37565e42c1162056f1a2d8173dc6af312b42d6c5 100644 --- a/calorimeters/options/emcal_barrel_reco.py +++ b/calorimeters/options/emcal_barrel_reco.py @@ -37,13 +37,6 @@ from Configurables import PodioInput from Configurables import Jug__Base__InputCopier_dd4pod__Geant4ParticleCollection_dd4pod__Geant4ParticleCollection_ as MCCopier from Configurables import Jug__Base__InputCopier_dd4pod__CalorimeterHitCollection_dd4pod__CalorimeterHitCollection_ as CalCopier -from Configurables import Jug__Digi__EcalTungstenSamplingDigi as EcalTungstenSamplingDigi - -from Configurables import Jug__Reco__EcalTungstenSamplingReco as EcalTungstenSamplingReco -from Configurables import Jug__Reco__SamplingECalHitsMerger as SamplingECalHitsMerger -from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster -from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG - podioinput = PodioInput("PodioReader", collections=["mcparticles","EcalBarrelAstroPixHits"], OutputLevel=DEBUG) # Thrown Information @@ -56,55 +49,13 @@ embarrelcopier = CalCopier("CalBarrelCopier", inputCollection="EcalBarrelAstroPixHits", outputCollection="EcalBarrelAstroPixHits2", OutputLevel=DEBUG) -# Digitization -embarreldigi = EcalTungstenSamplingDigi("ecal_barrel_digi", - inputHitCollection="EcalBarrelAstroPixHits", - outputHitCollection="RawEcalBarrelAstroPixHits", - inputEnergyUnit=units.GeV, - inputTimeUnit=units.ns, - dynamicRangeADC=700*units.keV, - energyResolutions=[0., 0.02, 0.], - pedestalSigma=40, - OutputLevel=DEBUG) -# Reconstruction -embarrelreco = EcalTungstenSamplingReco("ecal_barrel_reco", - inputHitCollection="RawEcalBarrelAstroPixHits", - outputHitCollection="RecoEcalBarrelAstroPixHits", - dynamicRangeADC=700*units.keV, - pedestalSigma=40, - OutputLevel=DEBUG) -# 2D+1 Clusterings -# readout id definition for barrel ecal -# <id>system:8,barrel:3,module:4,layer:10,slice:5,x:32:-16,y:-16</id> -# xy_merger sum layers/slices, masking (8+3+4, 8+3+4+5+10-1) -embarrelxymerger = SamplingECalHitsMerger("ecal_barrel_xy_merger", - cellIDMaskRanges=[(15, 29)], - inputHitCollection="RecoEcalBarrelAstroPixHits", - outputHitCollection="RecoEcalBarrelAstroPixHitsXY") -# xy_merger sum modules, masking (8+3+4+5+10, 8+3+4+5+10+32-1) -embarrelzmerger = SamplingECalHitsMerger("ecal_barrel_z_merger", - cellIDMaskRanges=[(30, 61)], - inputHitCollection="RecoEcalBarrelAstroPixHits", - outputHitCollection="RecoEcalBarrelAstroPixHitsZ") -# Clustering -embarrelcluster = IslandCluster("ecal_barrel_cluster", - inputHitCollection="RecoEcalBarrelAstroPixHitsXY", - outputClusterCollection="EcalBarrelAstroPixClusters", - minClusterCenterEdep=0.5*units.MeV, - splitCluster=False, - groupRanges=[2.0*units.cm, 2.0*units.cm, 2.0*units.cm]) -# Reconstruct the cluster with Center of Gravity method -embarrelclusterreco = RecoCoG("ecal_barrel_clusterreco", - clusterCollection="EcalBarrelAstroPixClusters", - logWeightBase=6.2) out = PodioOutput("out", filename=output_rec_file) out.outputCommands = ["keep *"] ApplicationMgr( - TopAlg = [podioinput, copier, embarrelcopier, embarreldigi, - embarrelreco, embarrelxymerger, embarrelzmerger, embarrelcluster, embarrelclusterreco, out], + TopAlg = [podioinput, copier, embarrelcopier, out], EvtSel = 'NONE', EvtMax = n_events, ExtSvc = [podioevent], diff --git a/calorimeters/scripts/emcal_barrel_electrons_analysis.cxx b/calorimeters/scripts/emcal_barrel_electrons_analysis.cxx index 828ba6130046a3ab2fd2667024099fbc86570ced..06c5ee80b1b8911023522243c1a3cb955b8b28ad 100644 --- a/calorimeters/scripts/emcal_barrel_electrons_analysis.cxx +++ b/calorimeters/scripts/emcal_barrel_electrons_analysis.cxx @@ -8,13 +8,6 @@ #include "dd4pod/Geant4ParticleCollection.h" #include "dd4pod/CalorimeterHitCollection.h" -#include "dd4pod/TrackerHitCollection.h" -#include "eicd/RawCalorimeterHitCollection.h" -#include "eicd/RawCalorimeterHitData.h" -#include "eicd/CalorimeterHitCollection.h" -#include "eicd/CalorimeterHitData.h" -#include "eicd/ClusterCollection.h" -#include "eicd/ClusterData.h" #include "TCanvas.h" #include "TStyle.h" @@ -49,35 +42,17 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/rec_e return result; }; - // Reconstructed Energy [GeV] in XY merger - auto ErecXY = [] (const std::vector<eic::CalorimeterHitData> & evt) { - std::vector<double> result; - auto total_eng = 0.0; - for (const auto& i: evt) - total_eng += i.energy; - result.push_back(total_eng / 1.e+3); - return result; - }; - - // Reconstructed Energy [GeV] in Z merger - auto ErecZ = [] (const std::vector<eic::CalorimeterHitData> & evt) { - std::vector<double> result; - auto total_eng = 0.0; - for (const auto& i: evt) - total_eng += i.energy; - result.push_back(total_eng / 1.e+3); - return result; - }; + // Number of hits + auto nhits = [] (const std::vector<dd4pod::CalorimeterHitData>& evt) {return (int) evt.size(); }; - // Number of Clusters - auto ncluster = [] (const std::vector<eic::ClusterData>& evt) {return (int) evt.size(); }; - - // Cluster Energy [GeV] - auto Ecluster = [] (const std::vector<eic::ClusterData>& evt) { + // Energy deposition [GeV] + auto Esim = [](const std::vector<dd4pod::CalorimeterHitData>& evt) { std::vector<double> result; + auto total_edep = 0.0; for (const auto& i: evt) - result.push_back(i.energy / 1.e+3); - return result; + total_edep += i.energyDeposit; + result.push_back(total_edep); + return result; }; // Sampling fraction = Esampling / Ethrown @@ -91,21 +66,17 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/rec_e }; // Define variables - auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"}) - .Define("ErecXY", ErecXY, {"RecoEcalBarrelAstroPixHitsXY"}) - .Define("ErecZ", ErecZ, {"RecoEcalBarrelAstroPixHitsZ"}) - .Define("ncluster", ncluster, {"EcalBarrelAstroPixClusters"}) - .Define("Ecluster", Ecluster, {"EcalBarrelAstroPixClusters"}) - .Define("fsam", fsam, {"Ecluster","Ethr"}) + auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"}) + .Define("nhits", nhits, {"EcalBarrelAstroPixHits2"}) + .Define("Esim", Esim, {"EcalBarrelAstroPixHits2"}) + .Define("fsam", fsam, {"Esim","Ethr"}) ; // Define Histograms - auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, -0.5, 10.5}, "Ethr"); - auto hErecXY = d1.Histo1D({"hErecXY", "Reconstructed Energy in XY merger; Reconstructed Energy [GeV]; Events", 100, -0.5, 10.5}, "ErecXY"); - auto hErecZ = d1.Histo1D({"hErecZ", "Reconstructed Energy in Z merger; Reconstructed Energy [GeV]; Events", 100, -0.5, 10.5}, "ErecZ"); - auto hNCluster = d1.Histo1D({"hNCluster", "Number of Clusters; # of Clusters; Events", 20, -0.5, 20.5}, "ncluster"); - auto hEcluster = d1.Histo1D({"hEcluster", "Cluster Energy; Cluster Energy [GeV]; Events", 100, -0.5, 10.5}, "Ecluster"); - auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 100, 0.0, 0.1}, "fsam"); + auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, 0.0, 7.5}, "Ethr"); + auto hNhits = d1.Histo1D({"hNhits", "Number of hits per events; Number of hits; Events", 100, 0.0, 2000.0}, "nhits"); + auto hEsim = d1.Histo1D({"hEsim", "Energy Deposit; Energy Deposit [GeV]; Events", 100, 0.0, 1.0}, "Esim"); + auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 100, 0.0, 0.1}, "fsam"); // Event Counts auto nevents_thrown = d1.Count(); @@ -118,47 +89,29 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/rec_e hEthr->SetLineWidth(2); hEthr->SetLineColor(kBlue); hEthr->DrawClone(); - c1->SaveAs("results/emcal_electrons_Ethr.png"); - c1->SaveAs("results/emcal_electrons_Ethr.pdf"); + c1->SaveAs("results/emcal_barrel_electrons_Ethr.png"); + c1->SaveAs("results/emcal_barrel_electrons_Ethr.pdf"); TCanvas *c2 = new TCanvas("c2", "c2", 700, 500); c2->SetLogy(1); - hErecXY->GetYaxis()->SetTitleOffset(1.4); - hErecXY->SetLineWidth(2); - hErecXY->SetLineColor(kBlue); - hErecXY->DrawClone(); - c2->SaveAs("results/emcal_electrons_ErecXY.png"); - c2->SaveAs("results/emcal_electrons_ErecXY.pdf"); + hNhits->GetYaxis()->SetTitleOffset(1.4); + hNhits->SetLineWidth(2); + hNhits->SetLineColor(kBlue); + hNhits->DrawClone(); + c2->SaveAs("results/emcal_barrel_electrons_nhits.png"); + c2->SaveAs("results/emcal_barrel_electrons_nhits.pdf"); TCanvas *c3 = new TCanvas("c3", "c3", 700, 500); c3->SetLogy(1); - hErecZ->GetYaxis()->SetTitleOffset(1.4); - hErecZ->SetLineWidth(2); - hErecZ->SetLineColor(kBlue); - hErecZ->DrawClone(); - c3->SaveAs("results/emal_electrons_ErecZ.png"); - c3->SaveAs("results/emal_electrons_ErecZ.pdf"); + hEsim->GetYaxis()->SetTitleOffset(1.4); + hEsim->SetLineWidth(2); + hEsim->SetLineColor(kBlue); + hEsim->DrawClone(); + c3->SaveAs("results/emcal_barrel_electrons_Esim.png"); + c3->SaveAs("results/emcal_barrel_electrons_Esim.pdf"); TCanvas *c4 = new TCanvas("c4", "c4", 700, 500); - c4->SetLogy(1); - hNCluster->GetYaxis()->SetTitleOffset(1.6); - hNCluster->SetLineWidth(2); - hNCluster->SetLineColor(kBlue); - hNCluster->DrawClone(); - c4->SaveAs("results/emcal_electrons_ncluster.png"); - c4->SaveAs("results/emcal_electrons_ncluster.pdf"); - - TCanvas *c5 = new TCanvas("c5", "c5", 700, 500); - c5->SetLogy(1); - hEcluster->GetYaxis()->SetTitleOffset(1.4); - hEcluster->SetLineWidth(2); - hEcluster->SetLineColor(kBlue); - hEcluster->DrawClone(); - c5->SaveAs("results/emcal_electrons_Ecluster.png"); - c5->SaveAs("results/emcal_electrons_Ecluster.pdf"); - - TCanvas *c6 = new TCanvas("c6", "c6", 700, 500); - c6->SetLogy(1); + c4->SetLogy(1); hfsam->GetYaxis()->SetTitleOffset(1.4); hfsam->SetLineWidth(2); hfsam->SetLineColor(kBlue); @@ -166,6 +119,6 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "sim_output/rec_e hfsam->GetFunction("gaus")->SetLineWidth(2); hfsam->GetFunction("gaus")->SetLineColor(kRed); hfsam->DrawClone(); - c6->SaveAs("results/emcal_electrons_fsam.png"); - c6->SaveAs("results/emcal_electrons_fsam.pdf"); + c4->SaveAs("results/emcal_barrel_electrons_fsam.png"); + c4->SaveAs("results/emcal_barrel_electrons_fsam.pdf"); } diff --git a/calorimeters/scripts/emcal_barrel_pions_analysis.cxx b/calorimeters/scripts/emcal_barrel_pions_analysis.cxx index 5a91f99a147416417ed84f24f3d4073a9e6a3974..cde99f323c38bdca23894dd733fae7973432d6b9 100644 --- a/calorimeters/scripts/emcal_barrel_pions_analysis.cxx +++ b/calorimeters/scripts/emcal_barrel_pions_analysis.cxx @@ -8,13 +8,6 @@ #include "dd4pod/Geant4ParticleCollection.h" #include "dd4pod/CalorimeterHitCollection.h" -#include "dd4pod/TrackerHitCollection.h" -#include "eicd/RawCalorimeterHitCollection.h" -#include "eicd/RawCalorimeterHitData.h" -#include "eicd/CalorimeterHitCollection.h" -#include "eicd/CalorimeterHitData.h" -#include "eicd/ClusterCollection.h" -#include "eicd/ClusterData.h" #include "TCanvas.h" #include "TStyle.h" @@ -49,35 +42,17 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/rec_emcal return result; }; - // Reconstructed Energy [GeV] in XY merger - auto ErecXY = [] (const std::vector<eic::CalorimeterHitData> & evt) { - std::vector<double> result; - auto total_eng = 0.0; - for (const auto& i: evt) - total_eng += i.energy; - result.push_back(total_eng / 1.e+3); - return result; - }; - - // Reconstructed Energy [GeV] in Z merger - auto ErecZ = [] (const std::vector<eic::CalorimeterHitData> & evt) { - std::vector<double> result; - auto total_eng = 0.0; - for (const auto& i: evt) - total_eng += i.energy; - result.push_back(total_eng / 1.e+3); - return result; - }; + // Number of hits + auto nhits = [] (const std::vector<dd4pod::CalorimeterHitData>& evt) {return (int) evt.size(); }; - // Number of Clusters - auto ncluster = [] (const std::vector<eic::ClusterData>& evt) {return (int) evt.size(); }; - - // Cluster Energy [GeV] - auto Ecluster = [] (const std::vector<eic::ClusterData>& evt) { + // Energy deposition [GeV] + auto Esim = [](const std::vector<dd4pod::CalorimeterHitData>& evt) { std::vector<double> result; + auto total_edep = 0.0; for (const auto& i: evt) - result.push_back(i.energy / 1.e+3); - return result; + total_edep += i.energyDeposit; + result.push_back(total_edep); + return result; }; // Sampling fraction = Esampling / Ethrown @@ -91,21 +66,17 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/rec_emcal }; // Define variables - auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"}) - .Define("ErecXY", ErecXY, {"RecoEcalBarrelAstroPixHitsXY"}) - .Define("ErecZ", ErecZ, {"RecoEcalBarrelAstroPixHitsZ"}) - .Define("ncluster", ncluster, {"EcalBarrelAstroPixClusters"}) - .Define("Ecluster", Ecluster, {"EcalBarrelAstroPixClusters"}) - .Define("fsam", fsam, {"Ecluster","Ethr"}) + auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"}) + .Define("nhits", nhits, {"EcalBarrelAstroPixHits2"}) + .Define("Esim", Esim, {"EcalBarrelAstroPixHits2"}) + .Define("fsam", fsam, {"Esim","Ethr"}) ; // Define Histograms - auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, -0.5, 10.5}, "Ethr"); - auto hErecXY = d1.Histo1D({"hErecXY", "Reconstructed Energy in XY merger; Reconstructed Energy [GeV]; Events", 100, -0.5, 10.5}, "ErecXY"); - auto hErecZ = d1.Histo1D({"hErecZ", "Reconstructed Energy in Z merger; Reconstructed Energy [GeV]; Events", 100, -0.5, 10.5}, "ErecZ"); - auto hNCluster = d1.Histo1D({"hNCluster", "Number of Clusters; # of Clusters; Events", 20, -0.5, 20.5}, "ncluster"); - auto hEcluster = d1.Histo1D({"hEcluster", "Cluster Energy; Cluster Energy [GeV]; Events", 100, -0.5, 10.5}, "Ecluster"); - auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 100, 0.0, 0.1}, "fsam"); + auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, 0.0, 7.5}, "Ethr"); + auto hNhits = d1.Histo1D({"hNhits", "Number of hits per events; Number of hits; Events", 100, 0.0, 2000.0}, "nhits"); + auto hEsim = d1.Histo1D({"hEsim", "Energy Deposit; Energy Deposit [GeV]; Events", 100, 0.0, 1.0}, "Esim"); + auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 100, 0.0, 0.1}, "fsam"); // Event Counts auto nevents_thrown = d1.Count(); @@ -118,54 +89,36 @@ void emcal_barrel_pions_analysis(const char* input_fname = "sim_output/rec_emcal hEthr->SetLineWidth(2); hEthr->SetLineColor(kBlue); hEthr->DrawClone(); - c1->SaveAs("results/emcal_pions_Ethr.png"); - c1->SaveAs("results/emcal_pions_Ethr.pdf"); + c1->SaveAs("results/emcal_barrel_pions_Ethr.png"); + c1->SaveAs("results/emcal_barrel_pions_Ethr.pdf"); TCanvas *c2 = new TCanvas("c2", "c2", 700, 500); c2->SetLogy(1); - hErecXY->GetYaxis()->SetTitleOffset(1.4); - hErecXY->SetLineWidth(2); - hErecXY->SetLineColor(kBlue); - hErecXY->DrawClone(); - c2->SaveAs("results/emcal_pions_ErecXY.png"); - c2->SaveAs("results/emcal_pions_ErecXY.pdf"); + hNhits->GetYaxis()->SetTitleOffset(1.4); + hNhits->SetLineWidth(2); + hNhits->SetLineColor(kBlue); + hNhits->DrawClone(); + c2->SaveAs("results/emcal_barrel_pions_nhits.png"); + c2->SaveAs("results/emcal_barrel_pions_nhits.pdf"); TCanvas *c3 = new TCanvas("c3", "c3", 700, 500); c3->SetLogy(1); - hErecZ->GetYaxis()->SetTitleOffset(1.4); - hErecZ->SetLineWidth(2); - hErecZ->SetLineColor(kBlue); - hErecZ->DrawClone(); - c3->SaveAs("results/emal_pions_ErecZ.png"); - c3->SaveAs("results/emal_pions_ErecZ.pdf"); + hEsim->GetYaxis()->SetTitleOffset(1.4); + hEsim->SetLineWidth(2); + hEsim->SetLineColor(kBlue); + hEsim->DrawClone(); + c3->SaveAs("results/emcal_barrel_pions_Esim.png"); + c3->SaveAs("results/emcal_barrel_pions_Esim.pdf"); TCanvas *c4 = new TCanvas("c4", "c4", 700, 500); - c4->SetLogy(1); - hNCluster->GetYaxis()->SetTitleOffset(1.6); - hNCluster->SetLineWidth(2); - hNCluster->SetLineColor(kBlue); - hNCluster->DrawClone(); - c4->SaveAs("results/emcal_pions_ncluster.png"); - c4->SaveAs("results/emcal_pions_ncluster.pdf"); - - TCanvas *c5 = new TCanvas("c5", "c5", 700, 500); - c5->SetLogy(1); - hEcluster->GetYaxis()->SetTitleOffset(1.4); - hEcluster->SetLineWidth(2); - hEcluster->SetLineColor(kBlue); - hEcluster->DrawClone(); - c5->SaveAs("results/emcal_pions_Ecluster.png"); - c5->SaveAs("results/emcal_pions_Ecluster.pdf"); - - TCanvas *c6 = new TCanvas("c6", "c6", 700, 500); - c6->SetLogy(1); + c4->SetLogy(1); hfsam->GetYaxis()->SetTitleOffset(1.4); hfsam->SetLineWidth(2); hfsam->SetLineColor(kBlue); - hfsam->Fit("gaus","","",0.01,0.1); + hfsam->Fit("gaus","","",0.005,0.1); hfsam->GetFunction("gaus")->SetLineWidth(2); hfsam->GetFunction("gaus")->SetLineColor(kRed); hfsam->DrawClone(); - c6->SaveAs("results/emcal_pions_fsam.png"); - c6->SaveAs("results/emcal_pions_fsam.pdf"); + c4->SaveAs("results/emcal_barrel_pions_fsam.png"); + c4->SaveAs("results/emcal_barrel_pions_fsam.pdf"); } diff --git a/calorimeters/topside_defs.xml b/calorimeters/topside_defs.xml deleted file mode 100644 index 7bc0cc49ef3c3b2aaefcee4e491d4248b4b9de5f..0000000000000000000000000000000000000000 --- a/calorimeters/topside_defs.xml +++ /dev/null @@ -1,462 +0,0 @@ - <define> - <comment>Although not explicit in the design study, the eRHIC crossing angle is not symmetric.</comment> - <constant name="CrossingAngle" value="0.025"/> - <constant name="ionCrossingAngle" value="0.0166667"/> - <constant name="electronCrossingAngle" value="0.00833333"/> - <constant name="CrossingSlope" value="0.0166682"/> - - <constant name="Pi" value="3.14159265359"/> - <constant name="world_side" value="30*m"/> - <constant name="world_x" value="world_side"/> - <constant name="world_y" value="world_side"/> - <constant name="world_z" value="100*m"/> - - <constant name="mil" value="0.0254*mm"/> - - <comment> - ------------ - Detector IDs - ------------ - - Note about ACTS tracking geometry construction - ---------------------------------------------- - - The tracking surfaces need to be structured in a barrel + endcapP + endcapN where - endcapP/endcapN are the endcaps at positive/negative z values. - See https://acts.readthedocs.io/en/latest/plugins/dd4hep.html for more details. - - The tracking geometry needs to beconstructed from cylinders from the inside out. For this reason - each layer needs its own subsystem assembly. This increases the number of top level system IDs. - For example the silicon tracker needs 3 IDs for each area (endcap+barrel+endcap) and a subassembly for each - layer. Therefore it needs a minimum of 20 IDs. Therefore we will allocate blocks of ~25 for each major subsystem. - Note, future improvements will likely include a more sophisticated ACTS-dd4hep plugin, - eliminating the need for so many system IDs at construction time. - - This barrel/endcap structure needs IDs to be in increasing order going outward. - The space of IDs for the subassemblies starts at (Subassembly_ID*10+101). - - The unused IDs below are saved for future use. - </comment> - - - <comment> - =================== - (1-9) Reserved IDs - =================== - Unused IDs: 1-9 - - ==================================== - (10-24) Interaction region beamline - ==================================== - - Beampipe ID : 10 - Unused IDs: 11-24 - - </comment> - <constant name="BeamPipe_ID" value="10"/> - - - <comment> - =============================== - (25-49) Silicon Vertex Tracker - =============================== - SiVertex subsystem ID: 25 - Layer 1 subassembly ID: 26 - Layer 2 subassembly ID: 27 - Layer 3 subassembly ID: 28 - Layer 4 subassembly ID: 29 - Layer 5 subassembly ID: 30 - </comment> - <constant name="SiVertexSubAssembly_ID" value="25"/> - <comment> - Unused values reserved for vertex: - constant name="SiVertexSubAssemblyLayer1_ID" value="121" - constant name="SiVertexSubAssemblyLayer2_ID" value="122" - constant name="SiVertexSubAssemblyLayer3_ID" value="123" - constant name="SiVertexSubAssemblyLayer4_ID" value="124" - constant name="SiVertexSubAssemblyLayer5_ID" value="125" - </comment> - - <comment> - =============================== - (50-74) Silicon Tracker System - =============================== - - SiTracker subsystem ID: 50 - Layer 1 subassembly ID: 51 - Layer 2 subassembly ID: 52 - Layer 3 subassembly ID: 53 - Layer 4 subassembly ID: 54 - Layer 5 subassembly ID: 55 - - (56-70) etc... - - Unused IDs: 71-74 - - </comment> - - <constant name="SiTrackerSubAssembly_ID" value="50"/> - <constant name="SiTrackerSubAssemblyLayer1_ID" value="51"/> - <constant name="SiTrackerSubAssemblyLayer2_ID" value="52"/> - <constant name="SiTrackerSubAssemblyLayer3_ID" value="53"/> - <constant name="SiTrackerSubAssemblyLayer4_ID" value="54"/> - <constant name="SiTrackerSubAssemblyLayer5_ID" value="55"/> - - <constant name="SiTrackerBarrel_Layer1_ID" value="56"/> - <constant name="SiTrackerEndcapP_Layer1_ID" value="57"/> - <constant name="SiTrackerEndcapN_Layer1_ID" value="58"/> - - <constant name="SiTrackerBarrel_Layer2_ID" value="59"/> - <constant name="SiTrackerEndcapP_Layer2_ID" value="60"/> - <constant name="SiTrackerEndcapN_Layer2_ID" value="61"/> - - <constant name="SiTrackerBarrel_Layer3_ID" value="62"/> - <constant name="SiTrackerEndcapP_Layer3_ID" value="63"/> - <constant name="SiTrackerEndcapN_Layer3_ID" value="64"/> - - <constant name="SiTrackerBarrel_Layer4_ID" value="65"/> - <constant name="SiTrackerEndcapP_Layer4_ID" value="66"/> - <constant name="SiTrackerEndcapN_Layer4_ID" value="67"/> - - <constant name="SiTrackerBarrel_Layer5_ID" value="68"/> - <constant name="SiTrackerEndcapP_Layer5_ID" value="69"/> - <constant name="SiTrackerEndcapN_Layer5_ID" value="70"/> - - <comment> - =================== - (75-99 Reserved IDs - =================== - - Unused IDs: 75-99 - TBD - </comment> - - <comment> - ===================================== - (100-109) Electromagnetic Calorimeter - ===================================== - - ECal subsystem ID: 100 - Barrel subassembly ID: 101 - EndcapP subassembly ID: 102 - EndcapN subassembly ID: 103 - Crystal subassembly ID: 104 - - Unused IDs: 105-109 - - </comment> - <constant name="ECalSubAssembly_ID" value="100"/> - <constant name="ECalBarrel_ID" value="101"/> - <constant name="ECalEndcapP_ID" value="102"/> - <constant name="ECalEndcapN_ID" value="103"/> - <constant name="CrystalEndcap_ID" value="104"/> - - <comment> - ===================================== - (110-119Hadronic Calorimeter - ===================================== - - HCal subsystem ID: 110 - Barrel subassembly ID: 111 - EndcapP subassembly ID: 112 - EndcapN subassembly ID: 113 - - Unused IDs: 114-119 - </comment> - <constant name="HCalSubAssembly_ID" value="110"/> - <constant name="HCalBarrel_ID" value="111"/> - <constant name="HCalEndcapP_ID" value="112"/> - <constant name="HCalEndcapN_ID" value="113"/> - - <comment> - ===================================== - (120-129) (near) Forward reserved - ===================================== - - Forwardtracking ID: 120 - Forward RICH ID: 121 - - Unused IDs: 122-129 - </comment> - <constant name="ForwardTracking_ID" value="120"/> - <constant name="ForwardRICH_ID" value="121"/> - - <comment> - ===================================== - (130-139) Backward reserved - ===================================== - - TBD - - </comment> - - <comment> - ===================================== - (140-149) Central Magnet - ===================================== - - Solenoid ID: 140 - Solenoid support ID: 141 - Solenoid Yoke ID: 142 - - Unused IDs: 143-149 - - </comment> - <constant name="Solenoid_ID" value="140"/> - <constant name="SolenoidSupport_ID" value="141"/> - <constant name="SolenoidYoke_ID" value="142"/> - - <comment> - ===================================== - (150-169) Far Forward Detectors - ===================================== - - Forward Roman Pot ID: 150 - Zero Degree Cal. ID: 160 - - </comment> - <constant name="ForwardRomanPot_ID" value="150"/> - <constant name="ZDC_ID" value="160"/> - - <comment> - ===================================== - (170-189) Forward Beamline Magnets - ===================================== - </comment> - - <comment> - ===================================== - (190-199) Backward Beamline Magnets - ===================================== - </comment> - - - - <comment> - For reference, here are the sPhenix solenoid and calorimeter Parameters. - </comment> - <constant name="sPhenixCoilInnerRadius" value="1420.0*mm"/> - <constant name="sPhenixCoilOuterRadius" value="1800.0*mm"/><!-- guestimate --> - <constant name="sPhenixCoilLength" value="4050.0*mm"/> <!-- guestimate --> - <constant name="sPhenixEMCalInnerRadius" value="890.00*mm"/> - <constant name="sPhenixEMCalOuterRadius" value="1155.8*mm"/> - <constant name="sPhenixEMCalLength" value="1727.2*2*mm"/> - <constant name="sPhenixInnerHCalInnerRadius" value="sPhenixEMCalOuterRadius - 1.0*cm"/> <!-- guestimate --> - <constant name="sPhenixInnerHCalOuterRadius" value="1370.0*mm"/> - <constant name="sPhenixInnerHCalLength" value="2175*2*mm"/> - - <comment> - -------------------------- - Solenoid Magnet Parameters - -------------------------- - </comment> - <constant name="Solenoid_rmin" value="1420.0*mm"/> - <constant name="Solenoid_rmax" value="1800.0*mm"/> - <constant name="SolenoidLength" value="4050.0*mm"/> - - <constant name="SolenoidBarrelCryostatThickness" value=" 1.0 * cm"/> - <constant name="SolenoidBarrelGapThickness" value=" 3.3 * cm"/> - <constant name="SolenoidBarrelAlConductorThickness" value="12.0 * cm"/> - <constant name="SolenoidBarrelQuenchbackThickness" value=" 1.5 * cm"/> - <constant name="SolenoidBarrelOuterGapThickness" value=" 5.6 * cm"/> - <constant name="SolenoidBarrelOuterCryostatThickness" value=" 1.2 * cm"/> - - <constant name="SolenoidEndPlateGapThickness" value=" 5.7 * cm"/> - <constant name="SolenoidEndPlateCryostatThickness" value=" 1.5 * cm"/> - - <constant name="SolenoidBarrel_rmin" value="Solenoid_rmin"/> - <constant name="SolenoidBarrelLenth" value="SolenoidLength"/> - <constant name="SolenoidBarrel_zmax" value="SolenoidBarrelLenth/2.0"/> - - <constant name="SolenoidCoilConductor_rmin" - value="SolenoidBarrel_rmin + SolenoidBarrelCryostatThickness + SolenoidBarrelGapThickness"/> - <constant name="SolenoidCoilConductor_rmax" - value="SolenoidCoilConductor_rmin + SolenoidBarrelAlConductorThickness + SolenoidBarrelQuenchbackThickness"/> - <constant name="SolenoidBarrel_rmax" - value="SolenoidCoilConductor_rmax + SolenoidBarrelOuterGapThickness + SolenoidBarrelOuterCryostatThickness"/> - - <constant name="SolenoidCoil_zmax" - value="SolenoidBarrel_zmax - SolenoidEndPlateCryostatThickness - SolenoidEndPlateGapThickness"/> - - <constant name="SolenoidalFieldRadius" - value="SolenoidCoilConductor_rmin + SolenoidBarrelAlConductorThickness / 2.0"/> - - <constant name="SolenoidCoilLength" value="SolenoidCoil_zmax*2.0"/> - - <constant name="SolenoidThickness" value="Solenoid_rmax - Solenoid_rmin"/> - - <constant name="SolenoidYokeEndcapP_rmin" value="800*mm"/> - <constant name="SolenoidYokeEndcapN_rmin" value="800*mm"/> - <constant name="SolenoidYokeEndcapThickness" value="0.2 * m"/> - <constant name="SolenoidYokeEndcap_zmin" value="SolenoidBarrel_zmax"/> - <constant name="SolenoidYokeEndcap_zmax" value="SolenoidYokeEndcap_zmin + SolenoidYokeEndcapThickness"/> - - <constant name="SolenoidYokeChamferAngle" value="0.2"/> - - <comment> - ------------------------- - Vertex Tracker Parameters - ------------------------- - </comment> - <constant name="VertexTrackerInnerRadius" value="30.0*mm"/> - <constant name="VertexTrackerOuterRadius" value="90.0*mm"/> - <constant name="VertexTrackerOuterBarrelLength" value="300.0*mm"/> - <constant name="tracker_region_rmax" value="Solenoid_rmax"/> - <constant name="tracker_region_zmax" value="SolenoidLength/2.0"/> - - <comment> - -------------------------- - Silicon Tracker Parameters - -------------------------- - </comment> - <constant name="SiliconTrackerInnerRadius" value="95.0*mm"/> - <constant name="SiliconTrackerInnerBarrelLength" value="400.0*mm"/> - <constant name="SiliconTrackerOuterRadius" value="860.0*mm"/> - <constant name="SiliconTrackerOuterBarrelLength" value="SiliconTrackerOuterRadius*2"/> - - <comment> - ------------ - Calorimeters - ------------ - </comment> - <constant name="EcalBarrel_rmin" value="SiliconTrackerOuterRadius + 3.0 * cm"/> - <constant name="HcalBarrel_rmax" value="Solenoid_rmin - 5.0 *cm "/> - <constant name="AvailTotalBarrelCalorimetryThickness" value="HcalBarrel_rmax - EcalBarrel_rmin"/> - <constant name="CalBarrelDivider" value="0.5"/> <!-- Ecal and Hcal have the same thickness --> - <constant name="EcalBarrelAvailTotalThickness" value="AvailTotalBarrelCalorimetryThickness * CalBarrelDivider"/> - <constant name="HcalBarrelAvailTotalThickness" value="AvailTotalBarrelCalorimetryThickness * (1.0 - CalBarrelDivider)"/> - - <constant name="EcalBarrelLength" value="SiliconTrackerOuterBarrelLength+50.0*cm"/> - <constant name="EcalEndcap_zmin" value="EcalBarrelLength/2.0"/> - - <constant name="AvailTotalEndcapCalorimetryThickness" value="(SolenoidYokeEndcap_zmin - 10.0 * mm) - (EcalEndcap_zmin + 10.0 * mm)"/> - <constant name="CalEndcapDivider" value="0.5"/> <!-- Ecal and Hcal have the same thickness --> - <constant name="EcalEndcapAvailTotalThickness" value="AvailTotalEndcapCalorimetryThickness * CalEndcapDivider"/> - <constant name="HcalEndcapAvailTotalThickness" value="AvailTotalEndcapCalorimetryThickness * (1.0 - CalEndcapDivider)"/> - - <constant name="EcalEndcapP_rmin" value="250.0*mm"/> - <constant name="EcalEndcapN_rmin" value="350.0*mm"/> - - <constant name="HcalEndcapP_rmin" value="250.0 * mm"/> - <constant name="HcalEndcapN_rmin" value="350.0 * mm"/> - - <comment> - ------------------------- - EM Calorimeter Parameters - ------------------------- - </comment> - <constant name="CaloSides" value="12"/> - - <!-- Material Thickness --> - <constant name="EcalSiliconThickness" value="9.00 * mm"/> - <constant name="EcalCopperThickness" value="0.05 * mm"/> - <constant name="EcalKaptonThickness" value="0.30 * mm"/> - <constant name="EcalAir1Thickness" value="0.33 * mm"/> - <constant name="EcalAir2Thickness" value="0.25 * mm"/> - <constant name="EcalThinTungstenThickness" value="2.50 * mm"/> - <constant name="EcalThickTungstenThickness" value="5.00 * mm"/> - - <!-- Layer Thickness --> - <constant name="EcalFirstLayerThickness" - value="EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/> - <constant name="EcalThinOneLayerThickness" - value="EcalThinTungstenThickness + EcalAir2Thickness + EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/> - <constant name="EcalThickOneLayerThickness" - value="EcalThickTungstenThickness + EcalAir2Thickness + EcalSiliconThickness + EcalCopperThickness + EcalKaptonThickness + EcalAir1Thickness"/> - - <!-- EM Barrel N Layer; same number of layers for EcalThin and EcalThick --> - <constant name="EcalBarrelLayers" - value="floor((EcalBarrelAvailTotalThickness - EcalFirstLayerThickness) / (EcalThinOneLayerThickness + EcalThickOneLayerThickness))"/> - <constant name="EcalBarrelThinLayers" value="EcalBarrelLayers"/> - <constant name="EcalBarrelThickLayers" value="EcalBarrelLayers"/> - <!-- EM Barrel Thickness --> - <constant name="EcalBarrelThickness" - value="EcalFirstLayerThickness + (EcalBarrelThinLayers * EcalThinOneLayerThickness) + (EcalBarrelThickLayers * EcalThickOneLayerThickness)"/> - <constant name="EcalBarrel_rmax" value="EcalBarrel_rmin + EcalBarrelThickness"/> - - <!-- EM Endcap N Layer; same number of layers for EcalThin and EcalThick --> - <constant name="EcalEndcapLayers" - value="floor((EcalEndcapAvailTotalThickness - EcalFirstLayerThickness) / (EcalThinOneLayerThickness + EcalThickOneLayerThickness))"/> - <constant name="EcalEndcapThinLayers" value="EcalEndcapLayers"/> - <constant name="EcalEndcapThickLayers" value="EcalEndcapLayers"/> - <!-- EM Endcap Thickness --> - <constant name="EcalEndcapThickness" - value="EcalFirstLayerThickness + (EcalEndcapThinLayers * EcalThinOneLayerThickness) + (EcalEndcapThickLayers * EcalThickOneLayerThickness)"/> - - <comment> - ------------------------------- - Hadronic Calorimeter Parameters - ------------------------------- - </comment> - <constant name="HcalBarrel_rmin" value="EcalBarrel_rmax+10.0*mm"/> - <constant name="HcalBarrelAvailThickness" value="HcalBarrel_rmax - HcalBarrel_rmin"/> - <constant name="HcalBarrelLength" value="EcalBarrelLength+2.0*EcalEndcapThickness + 10.0*mm "/> - <constant name="HcalEndcap_zmin" value="HcalBarrelLength/2.0"/> - <constant name="HcalEndcapAvailThickness" value="(SolenoidYokeEndcap_zmin - 10.0 * mm) - HcalEndcap_zmin"/> - - <!-- Material Thickness --> - <constant name="HcalSteelThickness" value="1.89 * cm"/> - <constant name="HcalPyrexThickness" value="1.10 * mm"/> - <constant name="HcalRPCGasThickness" value="1.20 * mm"/> - <constant name="HcalG10Thickness" value="3.00 * mm"/> - <constant name="HcalAirThickness" value="1.60 * mm"/> - - <!-- Layer Thickness --> - <constant name="HcalOneLayerThickness" - value="HcalSteelThickness + (2 * HcalPyrexThickness) + HcalRPCGasThickness + HcalG10Thickness + HcalAirThickness"/> - - <!-- H Barrel Layers and Thickness --> - <constant name="HcalBarrelLayers" value="floor(HcalBarrelAvailThickness / HcalOneLayerThickness)"/> - <constant name="HcalBarrelThickness" value="HcalBarrelLayers * HcalOneLayerThickness"/> - - <!-- H Endcap Layers and Thickness --> - <constant name="HcalEndcapLayers" value="floor(HcalEndcapAvailThickness / HcalOneLayerThickness)"/> - <constant name="HcalEndcapThickness" value="HcalEndcapLayers * HcalOneLayerThickness"/> - - <comment> - ----------------------- - Gaseous RICH Parameters - ----------------------- - </comment> - <constant name="RICHZMin" value="SolenoidYokeEndcap_zmin + 1 * cm"/> - <constant name="RICHRMin" value="15 * cm"/> - <constant name="RICHDepth" value="1 * m"/> - - - <comment> - -------------------------- - Forward Tracker Parameters - -------------------------- - </comment> - <constant name="TempForwardTrackerSpace" value="1.5 * m"/> - <constant name="ForwardEcalZMin" value="RICHZMin + RICHDepth + TempForwardTrackerSpace"/> - <constant name="ForwardCaloAngle" value="2 * SolenoidYokeChamferAngle"/> - <constant name="ForwardEcalRInner" value="10 * cm"/> - <constant name="ForwardEcalROuter" value="EcalBarrel_rmin + tan(SolenoidYokeChamferAngle) * (RICHDepth) + tan(ForwardCaloAngle) * (ForwardEcalZMin - RICHZMin - RICHDepth)"/> - <constant name="ForwardHcalZMin" value="RICHZMin + RICHDepth + TempForwardTrackerSpace + EcalEndcapThickness + 1 * mm"/> - <constant name="ForwardHcalAngle" value="ForwardCaloAngle"/> - <constant name="ForwardHcalRInner" value="10 * cm"/> - <constant name="ForwardHcalROuter" value="ForwardEcalROuter + tan(ForwardCaloAngle) * (ForwardHcalZMin - ForwardEcalZMin)"/> - - <comment> - -------------------------- - Forward ECal Parameters - -------------------------- - </comment> - - <comment> - -------------------------- - Forward HCal Parameters - -------------------------- - </comment> - - <comment> - For DDsim. See ddsim --help for details. - </comment> - <constant name="tracker_region_zmax" value="SiliconTrackerOuterBarrelLength/2.0"/> - <constant name="tracker_region_rmax" value="SiliconTrackerOuterRadius"/> - - - - </define> -