diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/CMakeLists.txt b/InnerDetector/InDetValidation/InDetPhysValMonitoring/CMakeLists.txt index 886c20f374d83d94f58e2dea26a5e5e5cad266db..3ae3de73ee1c535822d90037155a1a5b47a1b940 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/CMakeLists.txt +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/CMakeLists.txt @@ -81,7 +81,7 @@ atlas_add_component( InDetPhysValMonitoring atlas_install_headers( InDetPhysValMonitoring ) atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py share/*.txt ) -atlas_install_runtime( share/*.hdef share/*.xml share/*.xsl ) +atlas_install_runtime( share/*.xml ) atlas_install_runtime( test/InDetPhysValMonitoring_TestConfiguration.xml ) # build postprocessing program diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/AlgTestHistoDefSvc.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/AlgTestHistoDefSvc.h deleted file mode 100644 index d2a5c8a8ab3ae9ea28397fd9ffcaec28dbfcded4..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/AlgTestHistoDefSvc.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef AlgTestHistoDefSvc_h -#define AlgTestHistoDefSvc_h -/** - * @file AlgTestHistoDefSvc.h - * Header file for Algorithm to test histogram definition svc - * @author Shaun Roe - * @date 5 September, 2015 - **/ -//STL -#include <string> - -//Gaudi -#include "AthenaBaseComps/AthAlgorithm.h" -#include "GaudiKernel/ServiceHandle.h" - -//package includes -#include "IHistogramDefinitionSvc.h" - -class ISvcLocator; -class StatusCode; - -/** - * AlgTestHistoDefSvc exercises the routines of the histogram definition service - **/ -class AlgTestHistoDefSvc:public AthAlgorithm{ - public: - AlgTestHistoDefSvc( const std::string & name, ISvcLocator * pSvcLocator); - ~AlgTestHistoDefSvc(); - // Standard Gaudi functions - StatusCode initialize(); //!< Gaudi initialiser - StatusCode execute(); //!< Gaudi executer - StatusCode finalize(); //!< Gaudi finaliser - - private: - ServiceHandle<IHistogramDefinitionSvc> m_histoDefSvc; -}; -#endif diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ToolTestMonitoringPlots.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ToolTestMonitoringPlots.h deleted file mode 100644 index f7345235d4c0eb66796f96d76c8489771764f0f2..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ToolTestMonitoringPlots.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETPHYSVALMONITORING_ToolTestMonitoringPlots_H -#define INDETPHYSVALMONITORING_ToolTestMonitoringPlots_H -/** - * @file ToolTestMonitoringPlots.h - * header file for class of same name - * @author shaun roe - * @date 14 September 2015 -**/ -//STL includes -#include <string> - -//#gaudi includes -#include "GaudiKernel/ToolHandle.h" - -//local include -#include "AthenaMonitoring/ManagedMonitorToolBase.h" - -//fwd declaration -class InDetTestPlot; - - -/** - * @brief Tool to book and fill test histograms in monitoring framework - */ -class ToolTestMonitoringPlots:public ManagedMonitorToolBase{ -public: - ///Constructor with parameters - ToolTestMonitoringPlots(const std::string & type, const std::string & name, const IInterface* parent); - ///Destructor - virtual ~ToolTestMonitoringPlots(); - /** \name BaseclassMethods Baseclass methods reimplemented - }**/ - //@{ - virtual StatusCode initialize(); - virtual StatusCode bookHistograms(); - virtual StatusCode fillHistograms(); - virtual StatusCode procHistograms(); - //@} -private: - ///prevent default construction - ToolTestMonitoringPlots(); - - ///histograms - std::unique_ptr< InDetTestPlot > m_monPlots; -}; - -#endif diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/run/TestPlots.py b/InnerDetector/InDetValidation/InDetPhysValMonitoring/run/TestPlots.py deleted file mode 100644 index 37111d45489cb4b2a1be49abd9f0a7a363e37575..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/run/TestPlots.py +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from AthenaCommon.AppMgr import ServiceMgr - -from AthenaCommon.AppMgr import theApp - - -#-------------------------------------------------------------- -# Load Geometry -#-------------------------------------------------------------- -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetDescrVersion = "ATLAS-R1-2010-02-00-00" -globalflags.DetGeo="atlas" -globalflags.InputFormat="pool" -globalflags.DataSource="geant4" -print globalflags - - - -import AtlasGeoModel.SetGeometryVersion -import AtlasGeoModel.GeoModelInit - - -#-------------------------------------------------------------- -# Load ReadCalibData Alg and Service -#-------------------------------------------------------------- -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -from InDetPhysValMonitoring.InDetPhysValMonitoringConf import HistogramDefinitionSvc -ToolSvc = ServiceMgr.ToolSvc -ServiceMgr+=HistogramDefinitionSvc() -ServiceMgr.HistogramDefinitionSvc.DefinitionSource="../share/testHDef.xml" -ServiceMgr.HistogramDefinitionSvc.DefinitionFormat="text/xml" - -from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager -monMan = AthenaMonManager( "PhysValMonManager" ) -monMan.ManualDataTypeSetup = True -monMan.DataType = "monteCarlo" -monMan.Environment = "altprod" -monMan.ManualRunLBSetup = True -monMan.Run = 1 -monMan.LumiBlock = 1 -monMan.FileKey = "TestPlots" -topSequence += monMan - - - -from InDetPhysValMonitoring.InDetPhysValMonitoringConf import ToolTestMonitoringPlots -tool1 = ToolTestMonitoringPlots() - -ToolSvc += tool1 -monMan.AthenaMonTools += [tool1] - - -from GaudiSvc.GaudiSvcConf import THistSvc -ServiceMgr += THistSvc() -svcMgr.THistSvc.Output += ["TestPlots DATAFILE='TestPlots.root' OPT='RECREATE'"] - - -#-------------------------------------------------------------- -# Event selector settings. Use McEventSelector -#-------------------------------------------------------------- -import AthenaCommon.AtlasUnixGeneratorJob - -theApp.EvtMax = 1 - - -#-------------------------------------------------------------- -# Set output lvl (VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL) -#-------------------------------------------------------------- -ServiceMgr.MessageSvc.OutputLevel = INFO -ServiceMgr.HistogramDefinitionSvc.OutputLevel = INFO -ServiceMgr.MessageSvc.infoLimit = 100000 - -#-------------------------------------------------------------- -# Load IOVDbSvc -#-------------------------------------------------------------- -#IOVDbSvc.GlobalTag='OFLCOND-RUN12-SDR-25' -#IOVDbSvc.OutputLevel = DEBUG - diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/inDetPhysValMonitoringPlotDefinitions.hdef b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/inDetPhysValMonitoringPlotDefinitions.hdef deleted file mode 100644 index ed98f609135a185f7b3644e690dea3d54707b2ff..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/inDetPhysValMonitoringPlotDefinitions.hdef +++ /dev/null @@ -1,419 +0,0 @@ -TH1F num_truthmatch_match "num_truthmatch_match" 10 0 10 "Num. matching truth" "Entries" default -TH1F nparticle "Number of Truth Particles" 200 0 2000 "Num. truth particles" "Entries" default -TH1F ntracksel "Number of Selected Tracks" 200 0 1000 "Num. tracks" "Entries" default -TH1F ntrack "Number of Tracks" 200 0 1000 "Num. tracks" "Entries" default -# -#testing -TH1F 002_Al_N_01 "Test Case: Visible E_{T} (SRoe)" 100 0 100 "Visible E_{T} (sroe)" "Entries" default -TH1F test "Test Case: Visible E_{T} (GeV)" 100 0 100 "Visible E_{T} (GeV)" "Entries" default -TProfile testProfile "Test of TProfile" 20 -50 50 0 200 "#eta" "Entries" default -# -#pT -TH1F recpT "p_{T} of selected rec tracks (in GeV)" 200 0. 200 "p_{T} (GeV/c)" "Entries" default -TH1F recpTLow "p_{T} of selected rec tracks (in GeV)" 200 0. 20 "p_{T} (GeV/c)" "Entries" default -# -#basic plots -TH1F basicd0 "d_{0} of selected tracks (in mm)" 200 -2 2 "d_{0}(mm)" "Entries" default -TH1F basicz0 "z_{0} of selected tracks (in mm)" 120 -300 300 "z_{0}(mm)" "Entries" default -TH1F basicphi "#phi of selected tracks" 100 -4 4 "#phi" "Entries" default -TH1F basiceta "#eta of selected tracks" 100 -5 5 "#eta" "Entries" default -TH1F basictheta "#theta of selected tracks" 100 0 3.1415926 "#theta" "Entries" default -TH1F basicqOverP "q/p of selected tracks (in GeV)" 200 -0.01 0.01 "p_{T}(GeV/c)" "Entries" default -TH1F truthd0 "d_{0} of selected truth (in mm)" 200 -2 2 "d_{0}(mm)" "Entries" default -TH1F truthz0 "z_{0} of selected truth (in mm)" 120 -300 300 "z_{0}(mm)" "Entries" default -TH1F truthphi "#phi of selected truth" 100 -4 4 "#phi" "Entries" default -TH1F trutheta "#eta of selected truth" 100 -5 5 "#theta" "Entries" default -TH1F truththeta "#theta of selected truth" 100 0 3.1415926 "#theta" "Entries" default -TH1F truthqOverP "q/p of selected truth (in GeV)" 200 -0.005 0.005 "p_{T}(GeV/c)" "Entries" default -TH1F truthz0st "z_{0} sin(#theta) of selected truth " 200 -300 300 "p_{T}(GeV/c)" "Entries" default -TH1F truthprodR "Radial distance (r) of truth vtx parameter from origin" 100 0.0 2.0 "(mm)" "Entries" default -TH1F truthprodZ "Longitudinal (z) distance of truth vtx parameter from origin" 100 0 300 "(mm)" "Entries" default - -# -#fakes -TH1F fakepT "p_{T} of selected fake tracks (in GeV)" 200 0. 200 "p_{T}(GeV/c)" "Entries" default -TH1F fakepTlow "p_{T} of selected fake tracks (in GeV)" 200 0 20 "p_{T}(GeV/c)" "Entries" default -TH1F fakephi "#phi of selected fake tracks" 100 -3.1415926 3.1415926 "#phi" "Entries" default -TH1F fakeeta "#eta of selected fake tracks" 100 -5 5 "#eta" "Entries" default -TH1F faked0 "d_{0} of selected fake tracks (in mm)" 200 -5 5 "d_{0}(mm)" "Entries" default -TH1F fakez0 "z_{0} of selected fake tracks (in mm)" 120 -300 300 "z_{0}(mm)" "Entries" default -TProfile track_fakerate_vs_eta "Fraction of tracks with <50% truth match probability" 40 -4.0 4.0 0 1 "#eta" "Fake Rate" default -TProfile track_fakerate_vs_pt "Fraction of tracks with <50% truth match probability" 40 0 200 0 1 "p_{T} [GeV]" "Fake Rate" default -TProfile track_fakerate_vs_phi "Fraction of tracks with <50% truth match probability" 40 -3.1415926 3 .1415926 0 1 "#phi" "Fake Rate" default -TProfile track_fakerate_vs_d0 "Fraction of tracks with <50% truth match probability" 40 -300 300 0 1 "d_{0} [mm]" "Fake Rate" default -TProfile track_fakerate_vs_z0 "Fraction of tracks with <50% truth match probability" 40 -1500 1500 0 1 "z_{0} [mm]" "Fake Rate" default -# - -# -# Extended fakerate plots -# - -# -- "Kinematics" -TProfile track_fakerate_vs_RfirstHit " " 40 0. 300. 0 1 "R of first track measurement [mm]" "Fakerate" default -TProfile track_fakerate_vs_ZfirstHit " " 40 -1500. 1500. 0 1 "z of first track measurement [mm]" "Fak"rate" default - -# -- B-layer -TProfile track_fakerate_vs_nBLayerHits " " 5 -0.5 4.5 0 1 "Number of B-layer hits" "Fakerate" default -TProfile track_fakerate_vs_nBLayerOutliers " " 5 -0.5 4.5 0 1 "Number of B-layer outliers" "Fakerate"default -TProfile track_fakerate_vs_nBLayerSplitHits " " 5 -0.5 4.5 0 1 "Number of B-layer split hits" "Fakerate" default -TProfile track_fakerate_vs_nBLayerSharedHits " " 5 -0.5 4.5 0 1 "Number of B-layer shared hits" "Fakerate" default - -# -- Pixel -TProfile track_fakerate_vs_nPixHits " " 16 -0.5 15.5 0 1 "Number of pixel hits" "Fakerate" default -TProfile track_fakerate_vs_nPixHoles " " 11 -0.5 10.5 0 1 "Number of pixel holes" "Fakerate" default -TProfile track_fakerate_vs_nPixSharedHits " " 11 -0.5 10.5 0 1 "Number of pixel shared hits" "Fakerate" default -TProfile track_fakerate_vs_nPixOutliers " " 11 -0.5 10.5 0 1 "Number of pixel outliers" "Fakerate" default -TProfile track_fakerate_vs_nPixContribLayers " " 6 -0.5 5.5 0 1 "Number of contributing pixel layers" "Fakerate" default -TProfile track_fakerate_vs_nPixSplitHits " " 11 -0.5 10.5 0 1 "Number of pixel split hits" "Fakerate" default -TProfile track_fakerate_vs_nPixGangedHits " " 11 -0.5 10.5 0 1 "Number of pixel ganged hits" "Fakerate" default - -# -- SCT -TProfile track_fakerate_vs_nSCTHits " " 21 -0.5 20.5 0 1 "Number of SCT hits" "Fakerate" default -TProfile track_fakerate_vs_nSCTHoles " " 21 -0.5 20.5 0 1 "Number of SCT holes" "Fakerate" default -TProfile track_fakerate_vs_nSCTDoubleHoles " " 21 -0.5 20.5 0 1 "Number of SCT double holes" "Fakerate" default -TProfile track_fakerate_vs_nSCTSharedHits " " 21 -0.5 20.5 0 1 "Number of SCT shared hits" "Fakerate" default -TProfile track_fakerate_vs_nSCTOutliers " " 21 -0.5 20.5 0 1 "Number of SCT outliers" "Fakerate" default - -# -- Silicon -TProfile track_fakerate_vs_nSiHits " " 21 -0.5 20.5 0 1 "Number of Si hits" "Fakerate" default - -# -- TRT -TProfile track_fakerate_vs_nTRTHits " " 61 -0.5 60.5 0 1 "Number of TRT hits" "Fakerate" default -TProfile track_fakerate_vs_nTRTHighThresholdHits " " 61 -0.5 60.5 0 1 "Number of TRT HT hits" "Fakerate" default -TProfile track_fakerate_vs_nTRTOutliers " " 61 -0.5 60.5 0 1 "Number of TRT outliers" "Fakerate" default -TProfile track_fakerate_vs_nTRTHighThresholdOutliers " " 61 -0.5 60.5 0 1 "Number of TRT HT outliers" "Fakerate" default - -#GOOD eff plots -TProfile trackeff_vs_eta "Fraction of reco-matched truth track" 20 -2.5 2.5 0 2 "#eta" "Efficiency" default -TProfile trackeff_vs_pt "Fraction of reco-matched truth track" 40 0 50 0 2 "Pt (GeV)" "Efficiency" default -TProfile trackeff_vs_phi "Fraction of reco-matched truth track" 100 -3.1415926 3.1415926 0 2 "#phi" "Efficiency" default -TProfile trackeff_vs_d0 "Fraction of reco-matched truth track" 100 -25 25 0 2 "d0" "Efficiency" default -TProfile trackeff_vs_z0 "Fraction of reco-matched truth track" 100 -250 250 0 2 "z0" "Efficiency" default -TProfile trackeff_vs_R "Fraction of reco-matched truth track" 100 0 50 0 2 "R" "Efficiency" default -TProfile trackeff_vs_Z "Fraction of reco-matched truth track" 100 -350 350 0 2 "Z" "Efficiency" default -TProfile trackeff_vs_prodR "Track Efficiency vs Production Vertex Radius" 100 0 1500 0 2 "prod_R" "Efficiency" default -TProfile trackeff_vs_prodZ "Track Efficiency vs Production Vertex Z" 100 0 2000 0 2 "prod_Z" "Efficiency" default -TProfile low_Pt_lepton_frac "Fraction of Primary Leptons with Pt below 3 GeV" 100 0 1500 0 2 "prod_R" "Efficiency" default - -#layer-by-layer efficiencies -TEfficiency eff_hit_vs_eta_l0pix_barrel "Cluster Efficiency: Pixel Barrel IBL" 10 0 2.5 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_pix_barrel "Cluster Efficiency: Pixel Barrel" 10 0 2.5 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_pix_endcap "Cluster Efficiency: Pixel Endcap" 4 1.5 2.5 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_sct_barrel "Cluster Efficiency: SCT Barrel" 7 0 1.75 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_sct_endcap "Cluster Efficiency: SCT Endcap" 6 1 2.5 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_trt_barrel "Cluster Efficiency: TRT Barrel" 5 0 1.25 0 2 "#eta" "Cluster Efficiency" default -TEfficiency eff_hit_vs_eta_trt_endcap "Cluster Efficiency: TRT Endcap" 6 0.75 2.25 0 2 "#eta" "Cluster Efficiency" default - -#vertices -TH1F vx_x "X position of vertex" 200 -1.0 1.0 "X (mm)" "Entries" default -TH1F vx_y "Y position of vertex" 200 -1.0 1.0 "Y (mm)" "Entries" default -TH1F vx_z "Z position of vertex" 100 -300.0 300.0 "Z (mm)" "Entries" default -TH1F vx_err_x "X position error of vertex" 100 0.0 0.2 "#sigma(X) (mm)" "Entries" default -TH1F vx_err_y "Y position error of vertex" 100 0.0 0.2 "#sigma(Y) (mm)" "Entries" default -TH1F vx_err_z "Z position error of vertex" 100 0.0 1.0 "#sigma(Z) (mm)" "Entries" default -TH1F vx_chi2_over_ndf "vertex #chi^2 / ndf" 50 0 10. "#chi^{2}/ndf" "Entries" default -TH1F vx_type "Vertex type" 7 0 7 "Vertex type" "Entries" default -TH1F vx_type_truth "Vertex Truth-Matched type" 5 -0.5 4.5 "Vertex Truth-Matched type" "Vertex Truth-Matched type" "Entries" default -TH1F vx_hs_classification 5 -0.5 4.5 "Event hardscatter vertex classification" "Hardscatter classification" "Entries" default -TProfile vx_nReco_vs_nTruth_inclusive "Number of reco vertices (INCLUSIVE) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_matched "Number of reco vertices (MATCHED) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_merged "Number of reco vertices (MERGED) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_split "Number of reco vertices (SPLIT) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_fake "Number of reco vertices (FAKE) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_dummy "Number of reco vertices (DUMMY) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_clean "Number of reco vertices (CLEAN) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_lowpu "Number of reco vertices (LOWPU) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_highpu "Number of reco vertices (HIGHPU) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_hssplit "Number of reco vertices (HSSPLIT) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TProfile vx_nReco_vs_nTruth_none "Number of reco vertices (NONE) vs Number of interactions" 81 -0.5 80.5 0.0 60.0 "Number of interactions" "Number of reco vertices" default -TEfficiency m_vx_hs_reco_eff "HS vertex reconstruction efficiency" 4 0.0 2.0 0.8 1.2 "Local PU density [vertices/mm]" "HS vertex reconstruction efficiency" default -TEfficiency m_vx_hs_sel_eff "HS vertex selection efficiency (sum[pt,track^2])" 4 0.0 2.0 0.6 1.2 "Local PU density [vertices/mm]" "HS vertex selection efficiency" default -TProfile m_vx_hs_reco_long_reso "Reco Longitudinal Resolution" 4 0.0 2.0 0.0 0.012 "Local PU density [vertices/mm]" "Reco longitudinal resolution [mm]" default -TProfile m_vx_hs_reco_trans_reso "Reco Transverse Resolution" 4 0.0 2.0 0.0 0.012 "Local PU density [vertices/mm]" "Reco transverse resolution [mm]" default -TH2F vx_hs_truth_long_reso_vs_PU "Truth Longitudinal Resolution vs. PU (2D)" 4 0.0 2.0 20 -0.08 0.08 "Local PU density [vertices/mm]" "|Reco-truth| longitudinal resolution [mm]" default -TH2F vx_hs_truth_trans_reso_vs_PU "Truth Transverse Resolution vs. PU (2D)" 4 0.0 2.0 20 0.0 0.02 "Local PU density [vertices/mm]" "|Reco-truth| transverse resolution [mm]" default -TH1F m_vx_hs_truth_long_reso "Truth Longitudinal Resolution" 4 0.0 2.0 "Local PU density [vertices/mm]" "(Reco-truth) longitudinal resolution [mm]" default -TH1F m_vx_hs_truth_trans_reso "Truth Transverse Resolution" 4 0.0 2.0 "Local PU density [vertices/mm]" "(Reco-truth) transverse resolution [mm]" default -TH1F vx_nTracks "Number of tracks at vertex" 150 0 150 "Number of Tracks" "Entries" default -TH1F vx_track_weights "Weights of tracks at vertex" 100 0. 10.0 "Weight" "Entries" default -TH1F vx_track_pt "Tracks at vertex p_{T}" 100 0 20. "p_{T} (GeV)" "Entries" default -TH1F vx_track_eta "Tracks at vertex #eta" 100 -2.7 2.7 "#eta" "Entries" default -TH1F vx_track_nSiHits "Tracks at vertex number of Silicon Hits" 15 5 20 "Num. Si Hits" "Entries" default -TH1F vx_track_nSiHoles "Tracks at vertex number of Silicon Holes" 5 0 5 "Num. Si Holes" "Entries" default -TH1F vx_track_d0 "Tracks at vertex d_{0}" 100 -2.0 2.0 "d_{0} (mm)" "Entries" default -TH1F vx_track_err_d0 "Tracks at vertex d_{0} error" 50 0.0 1.0 "#sigma(d_{0}) (mm)" "Entries" default -TH1F vx_track_z0 "Tracks at vertex z_{0} - z_{0}^{vertex}" 100 -5.0 5.0 "z_{0}-z_{0}^{vertex} (mm)" "Entries" default -TH1F vx_track_err_z0 "Tracks at vertex z_{0} error" 50 0.0 5.0 "#sigma(z_{0}) (mm)" "Entries" default -# -# Bad Match Rate (BMR) plots -TProfile BadMatchRate "Fraction of Tracks with < 50.1% Truth Matching Probability" 20 -2.5 2.5 0 2 "x" "Bad Match Rate" default -TProfile BadMatchRate_vs_logpt "Fraction of Tracks with < 50.1% TMP vs Log(Pt)" 10 -0.5 2 0 2 "x" "Bad Match Rate vs Log(Pt)" default - -TProfile ReallyFakeRate "Fraction of Tracks with < 50.0% Truth Matching Probability" 20 -2.5 2.5 0 2 "x" "Really Fake Rate" default -# - -# Dummy Plots -TH2 primary_photon_eta_vs_conversion_radius "Primary Photon #eta vs Conversion Radius" 100 0 1500 20 -2.5 2.5 "Conversion Radius [mm]" "#eta" default -TH2 primary_photon_pt_vs_decay_radius "Primary Photon p_{T} vs Decay Radius" 100 0 1500 100 0 500 "Decay Radius [mm]" "p_{T} (GeV)" default -TH1F primary_photon_pt "Primary Photon p_{T}" 100 0 500 "p_{T} (GeV)" "Entries" default -TH2 brem_photon_eta_vs_radius_of_conversion "Brem Photon #eta vs Radius of Conversion" 100 0 1500 20 -2.5 2.5 "Radius of Conversion [mm]" "#eta" default -TH2 brem_photon_pt_vs_radius_of_origin_of_conversion "Brem Photon p_{T} vs Radius of Origin of Conversion" 100 0 1500 100 0 500 "Radius of Origin of Conversion [mm]" "p_{T} (GeV)" default -TH1F lepton_disappearance_radius "Radius at which electrons and positrons from the primary disappear" 100 0 1500 "Radius of Disappearance [mm]" "Entries" default -TH1F nOut_of_lepdeath "Number of Particles out of the electron/positron endpoint" 6 0 5 "Number of Particles" "Entries" default -TH2 brem_spectrum "log of the Energy of Brem Photons vs Radius of Emission" 100 0 1500 100 -3 3 "Radius of Emission [mm]" "log(Energy (GeV))" default -TH2 energy_remaining "Fraction of electron/positron energy left at ECal vs production radius" 100 0 1500 100 0 1.25 "Radius of Initial Conversion [mm]" "Fraction of Energy Remaining" default -TH2 energy_remaining_vs_eta "Fraction of electron/positron energy left at ECal vs Initial #eta" 20 -2.5 2.5 100 0 1.25 "#eta" "Fraction of Energy Remaining" default -TH2 energy_remaining_vs_prodR_TRT_barrel "Fraction of electron/positron energy left at ECal vs production radius (0 < |#eta| < 0.625)" 100 0 1500 100 0 1.25 "Radius of Initial Conversion [mm]" "Fraction of Energy Remaining" default -TH2 energy_remaining_vs_prodR_type_A_endcap "Fraction of electron/positron energy left at ECal vs production radius (1.070 < |#eta| < 1.304)" 100 0 1500 100 0 1.25 "Radius of Initial Conversion [mm]" "Fraction of Energy Remaining" default -TH2 energy_remaining_vs_prodR_type_A_and_B "Fraction of electron/positron energy left at ECal vs production radius (1.304 < |#eta| < 1.752)" 100 0 1500 100 0 1.25 "Radius of Initial Conversion [mm]" "Fraction of Energy Remaining" default -TH2 energy_remaining_vs_prodR_type_B_endcap "Fraction of electron/positron energy left at ECal vs production radius (1.752 < |#eta| < 2.0)" 100 0 1500 100 0 1.25 "Radius of Initial Conversion [mm]" "Fraction of Energy Remaining" default -TH2 truthMatchProbability_vs_delta_R "Truth Matching Probability of electron/positron vs #DeltaR" 50 0 1.0 100 0 1.0 "#DeltaR" "Truth Matching Probability" default -TH1 minimum_delta_R "Minimum #DeltaR for primary conversions within 100 mm of the origin" 50 0 1.0 "#DeltaR" "Entries" default - -# Track Parameter Resolution Plots -#Track Parameter TH2s vs eta -TH2 res_d0_vs_eta "d_{0}: deviation vs #eta" 20 -2.5 2.5 2000 -1.0 1.0 "#eta" "d_{0}^{rec} - d_{0}^{tru}" default -TH2 res_z0_vs_eta "z_{0}: deviation vs #eta" 20 -2.5 2.5 200 -1.5 1.5 "#eta" "z_{0}^{rec} - z_{0}^{tru}" default -TH2 res_phi_vs_eta "#phi: deviation vs #eta" 20 -2.5 2.5 3000 -0.03 0.03 "#eta" "#phi^{rec} - #phi^{tru}" default -TH2 res_theta_vs_eta "#theta: deviation vs #eta" 20 -2.5 2.5 2000 -0.1 0.1 "#eta" "#theta^{rec} - #theta^{tru}" default -TH2 res_z0*sin(theta)_vs_eta "z_{0}*sin(#theta): deviation vs #eta" 20 -2.5 2.5 200 -1.5 1.5 "#eta" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru}" default -TH2 res_qopt_vs_eta "qopt: deviation vs #eta" 20 -2.5 2.5 200 -0.4 0.4 "#eta" "(q/pt)^{rec} - (q/pt)^{tru}" default - -#Track Parameter Means vs eta -TH1F resmean_d0_vs_eta "d_{0} Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "d_{0}^{rec} - d_{0}^{tru}" default -TH1F resmean_z0_vs_eta "z_{0} Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "z_{0}^{rec} - z_{0}^{tru}" default -TH1F resmean_phi_vs_eta "#phi Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "#phi^{rec} - #phi^{tru}" default -TH1F resmean_theta_vs_eta "#theta Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "#theta^{rec} - #theta^{tru}" default -TH1F resmean_z0*sin(theta)_vs_eta "z_{0}*sin(#theta) Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru}" default -TH1F resmean_qopt_vs_eta "q/pt Track Measurement Bias vs #eta" 20 -2.5 2.5 "#eta" "(q/pt)^{rec} - (q/pt)^{tru}" default - -#Track Parameter Resolutions vs eta -TH1F reswidth_d0_vs_eta "d_{0} Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(d_{0}^{rec} - d_{0}^{tru})" default -TH1F reswidth_z0_vs_eta "z_{0} Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(z_{0}^{rec} - z_{0}^{tru})" default -TH1F reswidth_phi_vs_eta "#phi Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(#phi^{rec} - #phi^{tru})" default -TH1F reswidth_theta_vs_eta "#theta Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(#theta^{rec} - #theta^{tru})" default -TH1F reswidth_z0*sin(theta)_vs_eta "z_{0}*sin(#theta) Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru})" default -TH1F reswidth_qopt_vs_eta "q/pt Track Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma((q/pt)^{rec} - (q/pt)^{tru})" default - -#Track Parameter TH2s vs log(Pt) -TH2 res_d0_vs_pt "d_{0}: deviation vs log(Pt)" 10 -0.5 2.0 2000 -1.0 1.0 "log(Pt) (GeV)" "d_{0}^{rec} - d_{0}^{tru}" default -TH2 res_z0_vs_pt "z_{0}: deviation vs log(Pt)" 10 -0.5 2.0 200 -1.5 1.5 "log(Pt) (GeV)" "z_{0}^{rec} - z_{0}^{tru}" default -TH2 res_phi_vs_pt "#phi: deviation vs log(Pt)" 10 -0.5 2.0 3000 -0.03 0.03 "log(Pt) (GeV)" "#phi^{rec} - #phi^{tru}" default -TH2 res_theta_vs_pt "#theta: deviation vs log(Pt)" 10 -0.5 2.0 2000 -0.1 0.1 "log(Pt) (GeV)" "#theta^{rec} - #theta^{tru}" default -TH2 res_z0*sin(theta)_vs_pt "z_{0}*sin(#theta): deviation vs log(Pt)" 10 -0.5 2.0 200 -1.5 1.5 "log(Pt) (GeV)" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru}" default -TH2 res_qopt_vs_pt "qopt: deviation vs log(Pt)" 10 -0.5 2.0 200 -0.4 0.4 "log(Pt) (GeV)" "(q/pt)^{rec} - (q/pt)^{tru}" default - -#Track Parameter Means vs log(Pt) -TH1F resmean_d0_vs_pt "d_{0} Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "d_{0}^{rec} - d_{0}^{tru}" default -TH1F resmean_z0_vs_pt "z_{0} Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "z_{0}^{rec} - z_{0}^{tru}" default -TH1F resmean_phi_vs_pt "#phi Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#phi^{rec} - #phi^{tru}" default -TH1F resmean_theta_vs_pt "#theta Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#theta^{rec} - #theta^{tru}" default -TH1F resmean_z0*sin(theta)_vs_pt "z_{0}*sin(#theta) Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru}" default -TH1F resmean_qopt_vs_pt "q/pt Track Measurement Bias vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "(q/pt)^{rec} - (q/pt)^{tru}" default - -#Track Parameter Resolutions vs log(Pt) -TH1F reswidth_d0_vs_pt "d_{0} Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma(d_{0}^{rec} - d_{0}^{tru})" default -TH1F reswidth_z0_vs_pt "z_{0} Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma(z_{0}^{rec} - z_{0}^{tru})" default -TH1F reswidth_phi_vs_pt "#phi Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma(#phi^{rec} - #phi^{tru})" default -TH1F reswidth_theta_vs_pt "#theta Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma(#theta^{rec} - #theta^{tru})" default -TH1F reswidth_z0*sin(theta)_vs_pt "z_{0}*sin(#theta) Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma(z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru})" default -TH1F reswidth_qopt_vs_pt "q/pt Track Resolution vs log(Pt)" 10 -0.5 2.0 "log(Pt) (GeV)" "#sigma((q/pt)^{rec} - (q/pt)^{tru})" default - -#Basic Track Pulls -TH1F pull_d0 "Pull of d_{0}" 200 -5.0 5.0 "pull" "counts" default -TH1F pull_z0 "Pull of z_{0}" 200 -5.0 5.0 "pull" "counts" default -TH1F pull_phi "Pull of #phi" 200 -5.0 5.0 "pull" "counts" default -TH1F pull_theta "Pull of #theta" 200 -5.0 5.0 "pull" "counts" default -TH1F pull_z0*sin(theta) "Pull of z_{0}*sin(#theta)" 200 -5.0 5.0 "pull" "counts" default -TH1F pull_qopt "Pull of (q/pt)" 200 -5.0 5.0 "pull" "counts" default - -#Track Pull TH2s vs eta -TH2 pull_d0_vs_eta "d_{0}: Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "d_{0}^{rec} - d_{0}^{tru})/#sigma_d_0" default -TH2 pull_z0_vs_eta "z_{0}: Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "z_{0}^{rec} - z_{0}^{tru})/#sigma_z_0" default -TH2 pull_phi_vs_eta "#phi: Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "#phi^{rec} - #phi^{tru})/#sigma_#phi" default -TH2 pull_theta_vs_eta "#theta: Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "#theta^{rec} - #theta^{tru})/#sigma_#theta" default -TH2 pull_z0*sin(theta)_vs_eta "z_{0}*sin(#theta): Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru})/#sigma_z_0*sin(#theta)" default -TH2 pull_qopt_vs_eta "q/pt: Pull vs #eta" 20 -2.5 2.5 200 -5.0 5.0 "#eta" "(q/pt)^{rec} - (q/pt)^{tru})/#sigma_(q/pt)" default - -#Track Pull Means vs eta -TH1F pullmean_d0_vs_eta "d_{0} Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "d_{0}^{rec} - d_{0}^{tru}" default -TH1F pullmean_z0_vs_eta "z_{0} Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "z_{0}^{rec} - z_{0}^{tru}" default -TH1F pullmean_phi_vs_eta "#phi Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "#phi^{rec} - #phi^{tru}" default -TH1F pullmean_theta_vs_eta "#theta Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "#theta^{rec} - #theta^{tru}" default -TH1F pullmean_z0*sin(theta)_vs_eta "z_{0}*sin(#theta) Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru}" default -TH1F pullmean_qopt_vs_eta "q/pt Track Pull Mean vs #eta" 20 -2.5 2.5 "#eta" "(q/pt)^{rec} - (q/pt)^{tru}" default - -#Track Pull Resolutions vs eta -TH1F pullwidth_d0_vs_eta "d_{0} Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(d_{0}^{rec} - d_{0}^{tru})" default -TH1F pullwidth_z0_vs_eta "z_{0} Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(z_{0}^{rec} - z_{0}^{tru})" default -TH1F pullwidth_phi_vs_eta "#phi Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(#phi^{rec} - #phi^{tru})" default -TH1F pullwidth_theta_vs_eta "#theta Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(#theta^{rec} - #theta^{tru})" default -TH1F pullwidth_z0*sin(theta)_vs_eta "z_{0}*sin(#theta) Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma(z_{0}*sin(#theta)^{rec} - z_{0}*sin(#theta)^{tru})" default -TH1F pullwidth_qopt_vs_eta "q/pt Track Pull Resolution vs #eta" 20 -2.5 2.5 "#eta" "#sigma((q/pt)^{rec} - (q/pt)^{tru})" default - -# -#hitResidual plots -#x residuals - -#TH1F residualx_pixel_barrel "Residual: Pixel Barrel X" 120 -3000 3000 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_pixel_barrel "Residual: Pixel Barrel X" 120 -50 50 "x residual(#mum)" "Entries" default - -TH1F residualx_pixel_barrel_1hit "Residual: Pixel Barrel X 1 hit" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_pixel_barrel_2ormorehits "Residual: Pixel Barrel X >=2 hits" 120 -50 50 "x residual(#mum)" "Entries" default - -#TH1F residualx_sct_barrel "Residual: SCT Barrel X" 120 -50 50 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_sct_barrel "Residual: SCT Barrel X" 120 -300 300 "x residual(#mum)" "Entries" default - -TH1F residualx_sct_barrel_1hit "Residual: SCT Barrel X 1 hit" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_sct_barrel_2ormorehits "Residual: SCT Barrel X >=2 hits" 120 -50 50 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_barrel "Residual: B-Layer Barrel X" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_barrel_1hit "Residual: B-Layer Barrel X 1 hit" 120 -50 50 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_barrel_2ormorehits "Residual: B-Layer Barrel X >=2 hits" 120 -50 50 "x residual(#mum)" "Entries" default - -#TH1F residualx_trt_barrel "Residual: TRT Barrel X" 120 -3000 3000 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_trt_barrel "Residual: TRT Barrel X" 200 -500 500 "x residual(#mum)" "Entries" default - -#endcaps - -#TH1F residualx_pixel_endcap "Residual: Pixel Endcap X" 120 -3000 3000 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_pixel_endcap "Residual: Pixel Endcap X" 120 -50 50 "x residual(#mum)" "Entries" default - -TH1F residualx_pixel_endcap_1hit "Residual: Pixel Endcap X 1 hit" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_pixel_endcap_2ormorehits "Residual: Pixel Endcap X >=2 hits" 120 -50 50 "x residual(#mum)" "Entries" default - -#TH1F residualx_sct_endcap "Residual: SCT Endcap X" 120 -3000 3000 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_sct_endcap "Residual: SCT Endcap X" 140 -70 70 "x residual(#mum)" "Entries" default - -TH1F residualx_sct_endcap_1hit "Residual: SCT Endcap X 1 hit" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_sct_endcap_2ormorehits "Residual: SCT Endcap X >=2 hits" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_endcap "Residual: B-Layer Endcap X" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_endcap_1hit "Residual: B-Layer Endcap X 1 hit" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_blayer_endcap_2ormorehits "Residual: B-Layer Endcap X >=2 hits" 120 -3000 3000 "x residual(#mum)" "Entries" default - -#TH1F residualx_trt_endcap "Residual: TRT Endcap X" 120 -50 50 "x residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualx_trt_endcap "Residual: TRT Endcap X" 200 -500 500 "x residual(#mum)" "Entries" default - -TH1F residualx_dbm_neg "Residual: DBM -side X" 120 -3000 3000 "x residual(#mum)" "Entries" default -TH1F residualx_dbm_pos "Residual: DBM +side X" 120 -3000 3000 "x residual(#mum)" "Entries" default -#y residuals - -#TH1F residualy_pixel_barrel "Residual: Pixel Barrel Y" 120 -50 50 "y residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualy_pixel_barrel "Residual: Pixel Barrel Y" 120 -300 300 "y residual(#mum)" "Entries" default - -TH1F residualy_pixel_barrel_1hit "Residual: Pixel Barrel Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_pixel_barrel_2ormorehits "Residual: Pixel Barrel Y >=2 hits" 120 -50 50 "x residual(#mum)" "Entries" default -TH1F residualy_sct_barrel "Residual: SCT Barrel Y" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_sct_barrel_1hit "Residual: SCT Barrel Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_sct_barrel_2ormorehits "Residual: SCT Barrel Y >=2 hits" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_barrel "Residual: B-Layer Barrel Y" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_barrel_1hit "Residual: B-Layer Barrel Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_barrel_2ormorehits "Residual: B-Layer Barrel Y >=2 hits" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_trt_barrel "Residual: TRT Barrel Y" 120 0 2500 "y residual(#mum)" "Entries" default - -#endcaps - -#TH1F residualy_pixel_endcap "Residual: Pixel Endcap Y" 120 -50 50 "y residual(#mum)" "Entries" default #ORIGINAL LINE -TH1F residualy_pixel_endcap "Residual: Pixel Endcap Y" 120 -300 300 "y residual(#mum)" "Entries" default - -TH1F residualy_pixel_endcap_1hit "Residual: Pixel Endcap Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_pixel_endcap_2ormorehits "Residual: Pixel Endcap Y >=2 hits" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_sct_endcap "Residual: SCT Endcap Y" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_sct_endcap_1hit "Residual: SCT Endcap Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_sct_endcap_2ormorehits "Residual: SCT Endcap Y >=2 hits" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_endcap "Residual: B-Layer Endcap Y" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_endcap_1hit "Residual: B-Layer Endcap Y 1 hit" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_blayer_endcap_2ormorehits "Residual: B-Layer Endcap Y >=2 hits" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_trt_endcap "Residual: TRT Endcap Y" 120 -50 50 "y residual(#mum)" "Entries" default -TH1F residualy_dbm_neg "Residual: DBM -side Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualy_dbm_pos "Residual: DBM +side Y" 10 -5 5 "y residual(#mum)" "Entries" default -#pulls -#barrel, x -TH1F residualpullx_blayer_barrel "Residualpull: B-Layer Barrel X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_pixel_barrel "Residualpull: Pixel Barrel X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_sct_barrel "Residualpull: SCT Barrel X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_trt_barrel "Residualpull: TRT Barrel X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_dbm_barrel "Residualpull: DBM -side X" 10 -5 5 "x residual(#mum)" "Entries" default -#endcap, x -TH1F residualpullx_blayer_endcap "Residualpull: B-Layer Endcap X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_pixel_endcap "Residualpull: Pixel Endcap X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_sct_endcap "Residualpull: SCT Endcap X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_trt_endcap "Residualpull: TRT Endcap X" 10 -5 5 "x residual(#mum)" "Entries" default -TH1F residualpullx_dbm_endcap "Residualpull: DBM +side X" 10 -5 5 "x residual(#mum)" "Entries" default -#barrel, y -TH1F residualpully_blayer_barrel "Residualpull: B-Layer Barrel Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_pixel_barrel "Residualpull: Pixel Barrel Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_sct_barrel "Residualpull: SCT Barrel Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_trt_barrel "Residualpull: TRT Barrel Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_dbm_barrel "Residualpull: DBM -side Y" 10 -5 5 "y residual(#mum)" "Entries" default -#endcap,y -TH1F residualpully_blayer_endcap "Residualpull: B-Layer Endcap Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_pixel_endcap "Residualpull: Pixel Endcap Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_sct_endcap "Residualpull: SCT Endcap Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_trt_endcap "Residualpull: TRT Endcap Y" 10 -5 5 "y residual(#mum)" "Entries" default -TH1F residualpully_dbm_endcap "Residualpull: DBM +side Y" 10 -5 5 "y residual(#mum)" "Entries" default -# -#TrackInJets -TH1F recInJetpT "p_{T} of selected rec tracks in jets(in GeV)" 200 0. 200 "p_{T}(GeV/c)" "Entries" default -TH1F nTrackInJet "Number of Tracks in Jet" 50 0. 50 "N Tracks" "Entries" "default" -TH1F sumPtinJet "Sum p_{T} of Tracks in Jet" 25 0 500 "sum p_{T}(GeV/c)" "Entries" default -TH1F fracPtInJet "Sum p_{T} of Tracks over jet p_{T}" 60 0 3 "sum Track p_{T}/jet p_{T}" "Entries" default - -#spectrum plots -TH1F nSCTHits "# SCT hits" 20 0. 20 "# SCT Hits" "Entries" default -TH1F nPixHits "# Pix hits" 20 0. 20 "# Pix Hits" "Entries" default -TH1F nTotHits "# Total hits" 20 0. 20 "# Totat Hits" "Entries" default -TH1F nSCTDeadSensors "# SCT DeadSensors" 20 0. 20 "# SCT DeadSensors" "Entries" default -TH1F nPixDeadSensors "# Pix DeadSensors" 20 0. 20 "# Pix DeadSensors" "Entries" default -TH1F nTotDeadSensors "# Total DeadSensors" 20 0. 20 "# Total DeadSensors" "Entries" default -TProfile nSCTHits_vs_eta "# SCT hits vs Eta" 80 -4 4 0 20 "#eta" "# SCT Hits" default -TProfile nPixHits_vs_eta "# Pix hits vs Eta" 80 -4 4 0 20 "#eta" "# Pix Hits" default -TProfile nTotHits_vs_eta "# total hits vs Eta" 80 -4 4 0 20 "#eta" "# total Hits" default -TProfile nSCTDeadSensors_vs_eta "# SCT deadsensors vs Eta" 80 -4 4 0 20 "#eta" "# SCT deadsensors" default -TProfile nPixDeadSensors_vs_eta "# pix deadsensors vs Eta" 80 -4 4 0 20 "#eta" "# pix deadsensors" default -TProfile nTotDeadSensors_vs_eta "# total deadsensors vs Eta" 80 -4 4 0 20 "#eta" "# total deadsensors" default -TH1F recoMatchProbabilitySpectrum "truth match probability spectrum" 40 0. 1 "truth match probability" "Entries" default -TH1F recoEtaSpectrum "reco eta spectrum" 80 -4 4 "#eta" "Entries" default -TH1F recoPhiSpectrum "reco phi spectrum" 60 -3 3 "#phi" "Entries" default -TH1F recoPtSpectrum "reco pt spectrum" 100 0. 100 "pt (GeV/c)" "Entries" default -TH1F truthEtaSpectrum "truth eta spectrum" 80 -4 4 "#eta" "Entries" default -TH1F truthPhiSpectrum "truth phi spectrum" 60 -3 3 "#phi" "Entries" default -TH1F truthPtSpectrum "truth pt spectrum" 100 0. 100 "pt (GeV/c)" "Entries" default - -#HitContent plots -TProfile HitContent_vs_eta_NBlayerHits "Number of B-Layer clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of B-layer clusters>" default -TProfile HitContent_vs_eta_NPixelHits "Number of Pixel clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel clusters>" default -TProfile HitContent_vs_eta_DBMHitsNeg "Number of DBM Clusters" 20 -3.8 -2.5 0 100 "#eta" "<Number of DBM clusters, - side>" default -TProfile HitContent_vs_eta_DBMHitsPos "Number of DBM Clusters" 20 2.5 3.8 0 100 "#eta" "<Number of DBM Clusters, + side>" default -TProfile HitContent_vs_eta_NPixelHoles "Number of Pixel Holes" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Holes>" default -TProfile HitContent_vs_eta_NSCTHits "Number of SCT Clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of SCT Clusters>" default -TProfile HitContent_vs_eta_NSCTHoles "Number of SCT Holes" 20 -2.5 2.5 0 100 "#eta" "<Number of SCT Holes>" default -TProfile HitContent_vs_eta_NTRTHits "Number of TRT Clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of TRT Hits>" default -TProfile HitContent_vs_eta_NTRTHighThresholdHits "Number of TRT high threshold clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of High Thresh TRT Hits>" default -TProfile HitContent_vs_eta_NBlayerOutliers "Number of B-layer outliers" 20 -2.5 2.5 0 100 "#eta" "<Number of B-layer Outliers>" default -TProfile HitContent_vs_eta_NBlayerSharedHits "Number of shared B-layer clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of B-layer Shared Hits>" default -TProfile HitContent_vs_eta_NBLayerSplitHits "Number of split B-layer clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of B-layer Split Hits>" default -TProfile HitContent_vs_eta_NPixelOutliers "Number of Pixel outliers" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Outliers>" default -TProfile HitContent_vs_eta_NPixelContribLayers "Number of contributed Pixel layers" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Layers>" default -TProfile HitContent_vs_eta_NPixelSharedHits "Number of shared Pixel clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Shared Hits>" default -TProfile HitContent_vs_eta_NPixelSplitHits "Number of split Pixel clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Split Hits>" default -TProfile HitContent_vs_eta_NPixelGangedHits "Number of ganged Pixel clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of Pixel Ganged Hits>" default -TProfile HitContent_vs_eta_NPixelGangedHitsFlaggedFakes "Number of ganged flagged fake Pixel hits vs eta" 20 -2.5 2.5 0 2 "#eta" "Flagged Fakes in Pixel" default -TProfile HitContent_vs_eta_NSCTOutliers "Number of SCT Outliers" 20 -2.5 2.5 0 100 "#eta" "<Number of SCT Outliers>" default -TProfile HitContent_vs_eta_NSCTDoubleHoles "Number of SCT double holes" 20 -2.5 2.5 0 100 "#eta" "<Number of SCT Double Holes>" default -TProfile HitContent_vs_eta_NSCTSharedHits "Number of SCT Shared clusters" 20 -2.5 2.5 0 100 "#eta" "<Number of SCT Shared Hits>" default -TProfile HitContent_vs_eta_NTRTOutliers "Number of TRT outliers" 20 -2.5 2.5 0 100 "#eta" "<Number of TRT Outliers>" default -TProfile HitContent_vs_eta_NTRTHighThresholdOutliers "Number of TRT High Threshold outliers" 20 -2.5 2.5 0 100 "#eta" "<Number of TRT High Thresh Outliers>" default - -#trackinjet efficiencies -TProfile trackinjeteff_vs_eta "Track in jets efficiency vs #eta" 20 -2.5 2.5 0 2.0 "#eta" "Efficiency" default -TProfile trackinjeteff_vs_phi "Track in jets efficiency vs #phi" 24 180 180 0 2.0 "#phi" "Efficiency" default -TProfile trackinjeteff_vs_pt "Track in jets efficiency vs p_{T} for |#eta| < 2.5 (Det. Paper def.)" 25 0 50 0 2.0 "p_{T} (GeV/c)" "Efficiency" default -TProfile trackinjeteff_vs_dr "Track in jets efficiency vs #DeltaR for |#eta| < 2.5 (Det. Paper def.)" 10 0 0.4 0 2.0 "#DeltaR" "Efficiency" default -TProfile trackinjeteff_vs_dr_lt_j50 "Track in jets efficiency vs #DeltaR for |#eta| < 2.5 (E_{T}(jet) < 50 GeV)" 10 0 0.2 0 2.0 "#DeltaR" "Efficiency" default -TProfile trackinjeteff_vs_dr_gr_j100 "Track in jets efficiency vs #DeltaR for |#eta| < 2.5 (E_{T}(jet) > 100 GeV)" 10 0 0.2 0 2.0 "#DeltaR" "Efficiency" default -TProfile trackinjeteff_vs_jetet "Track in jets efficiency vs jet E_{T} for |#eta| < 2.5 " 10 0 250 0 2.0 "E_{jet} (GeV)" "Efficiency" default - - -#trackinjet bad match rates -TProfile trackinjet_badmatchrate_vs_dr_gr_j100 "Fraction of tracks with < 80% truth matching probability in Jets with E_{T} > 100 GeV" 10 0 0.2 0 2 "#DeltaR" "Bad Match Rate" default - diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/AlgTestHistoDefSvc.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/AlgTestHistoDefSvc.cxx deleted file mode 100644 index ba07d88e2b4432658450f39644b1cf9efbd5d045..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/AlgTestHistoDefSvc.cxx +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file AlgTestHistoDefSvc.cxx - * Implementation file for HistogramDefinitionSvc service test algorithm - * @author Shaun Roe - * @date 5 September, 2015 - **/ - -// STL -// to access environment - - -// Gaudi -#include "GaudiKernel/StatusCode.h" -#include "InDetPhysValMonitoring/HistogramDefinitionSvc.h" -// Athena -// Package -#include "InDetPhysValMonitoring/AlgTestHistoDefSvc.h" - - - -using namespace std; - -AlgTestHistoDefSvc::AlgTestHistoDefSvc (const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, - pSvcLocator), - m_histoDefSvc("HistogramDefinitionSvc", name) { // nop -} - -AlgTestHistoDefSvc::~AlgTestHistoDefSvc() { - // nop -} - -StatusCode -AlgTestHistoDefSvc::initialize() { - ATH_CHECK(m_histoDefSvc.retrieve()); - ATH_MSG_INFO("Test algorithm for HistogramDefinitionSvc"); - // - ATH_MSG_INFO("Printing histogram definition for 002_Al_N_01"); - std::string definition = m_histoDefSvc->definition("002_Al_N_01", "").str(); - ATH_MSG_INFO("Titles : " << m_histoDefSvc->definition("002_Al_N_01", "").allTitles); - ATH_MSG_INFO(definition); - // - ATH_MSG_INFO("Printing histogram definition for nparticles"); - definition = m_histoDefSvc->definition("nparticles", "").str(); - ATH_MSG_INFO(definition); - // - ATH_MSG_INFO("Printing histogram definition for testProfile"); - definition = m_histoDefSvc->definition("testProfile", "").str(); - ATH_MSG_INFO(definition); - // - ATH_MSG_INFO("Printing histogram definition for test2D"); - definition = m_histoDefSvc->definition("test2D", "").str(); - ATH_MSG_INFO(definition); - // - ATH_MSG_INFO("Printing histogram definition for testEfficiency"); - definition = m_histoDefSvc->definition("testEfficiency", "").str(); - ATH_MSG_INFO(definition); - ATH_MSG_INFO("Printing definition for inclusion test"); - definition = m_histoDefSvc->definition("include").str(); - ATH_MSG_INFO(definition); - // - ATH_MSG_INFO("Printing histogram definition for non-existent definition"); - definition = m_histoDefSvc->definition("utterRubbish", "").str(); - ATH_MSG_INFO(definition); - - return StatusCode::SUCCESS; -} - -StatusCode -AlgTestHistoDefSvc::execute() { - return StatusCode::SUCCESS; -} - -StatusCode -AlgTestHistoDefSvc::finalize() { - msg(MSG::INFO) << "finalize()" << endmsg; - return StatusCode::SUCCESS; -} diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ErrorHandler.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ErrorHandler.h deleted file mode 100644 index 7b7bcd9784a8aa3aafbed563a34aa37ddb36fad9..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ErrorHandler.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -// -// ErrorHandler.h -// HDef -// -// Created by sroe on 18/03/2016. -// - -#ifndef ErrorHandler_h -#define ErrorHandler_h -#include <stdexcept> -#include <xercesc/sax2/DefaultHandler.hpp> -#include <iostream> -class XmlErrorHandler: public xercesc::DefaultHandler { -public: - void - warning(const xercesc::SAXParseException& e) { - std::cout << "warning: " << toNative(e.getMessage()) << std::endl; - } - - void - error(const xercesc::SAXParseException& e) { - throw std::runtime_error(toNative(e.getMessage())); - } - - void - fatalError(const xercesc::SAXParseException& e) { - error(e); - } -}; - -#endif /* ErrorHandler_h */ diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/HistogramDefinitionSvc.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/HistogramDefinitionSvc.cxx index 04517d84a46e5c03aeac533daedc6a13c303f4be..793a3a05045d9397d84f3ef674f830df7ac792da 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/HistogramDefinitionSvc.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/HistogramDefinitionSvc.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // @@ -10,8 +10,6 @@ // #include "InDetPhysValMonitoring/HistogramDefinitionSvc.h" -#include "ReadFromText.h" -#include "ReadFromXml.h" #include "ReadFromXmlDom.h" #include "IReadHistoDef.h" namespace { @@ -47,7 +45,8 @@ HistogramDefinitionSvc::initialize() { ATH_MSG_INFO("Set format:" << m_formatString.value()); ATH_MSG_INFO("format " << m_format); if (m_format == TEXT_PLAIN) { - m_reader.reset(new ReadFromText(m_source.value())); + ATH_MSG_FATAL("Text format histogram definition files are deprecated."); + return StatusCode::FAILURE; } if (m_format == TEXT_XML) { m_reader.reset(new ReadFromXmlDom(m_source.value())); diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.cxx deleted file mode 100644 index 8914fbf1294e44c255ac17ec6cca92c4c72090dd..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.cxx +++ /dev/null @@ -1,260 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// -// ReadFromText.cpp -// HDef -// -// Created by sroe on 16/07/2015. -// 2015 sroe -// - -#include "ReadFromText.h" -#include <fstream> -#include <iostream> -// #include <regex> //buggy?? -#include <sys/stat.h> -#include <algorithm> -// to find the file: -#include "PathResolver/PathResolver.h" -namespace { - std::vector<std::string> - split(const std::string& str, int delimiter(int) = std::isspace) { - std::vector<std::string> result; - auto e = str.end(); - auto i = str.begin(); - - while (i != e) { - i = std::find_if_not(i, e, delimiter); - if (i == e) { - break; - } - auto j = std::find_if(i, e, delimiter); - result.push_back(std::string(i, j)); - i = j; - } - return result; - } -} - - -ReadFromText::ReadFromText() : m_source("unspecified file"), m_format("text/plain") { -} - -ReadFromText::ReadFromText(const std::string& source) : m_source(source), m_format("text/plain") { - m_source = PathResolver::find_file(source, "DATAPATH"); -} - -std::string -ReadFromText::source() const { - return m_source; -} - -std::string -ReadFromText::format() const { - return m_format; -} - -bool -ReadFromText::histoDefinitionMap(std::map<std::string, SingleHistogramDefinition>& usersmap) const { - bool ok(true); - - for (auto i:m_vectorOfDefinitions) { - if (i.empty()) { - continue; - } - if (not i.validType()) { - continue; - } - ok = (usersmap.insert(std::pair<std::string, SingleHistogramDefinition>(i.stringIndex(), i))).second; - if (not ok) { - std::cout << "ReadFromText: bad insertion for " << i.stringIndex() << std::endl; - } - } - return(not usersmap.empty()); -} - -bool -ReadFromText::insertDefinition(const SingleHistogramDefinition& oneDefinition) { - bool ok(true); - - m_vectorOfDefinitions.push_back(oneDefinition); - return ok; -} - -bool -ReadFromText::initialize() { - bool ok(true); - - std::ifstream myfile; - - myfile.open(source()); - if (myfile.is_open()) { - std::string line; - while (std::getline(myfile, line)) { - ok = insertDefinition(parseTextLine(line)); - } - myfile.close(); - } else { - std::cout << "ReadFromText: File '" << source() << "' not found" << std::endl; - ok = false; - } - - return ok; -} - -SingleHistogramDefinition -ReadFromText::parseTextLine(const std::string& line) { - SingleHistogramDefinition s; - - typedef std::vector<std::string> StringVec; - enum RegXHistoGroups { - TOTAL, TYPE, NAME, TITLE, NXBINS, XLO, XHI, NYBINS, YLO, YHI, XLABEL, YLABEL, FOLDER, NGROUPS - }; - enum HistoType { - TH1, TPROFILE, TH2, INVALID - }; - // bool found(true); - /** use lamda expression for delimiter function, get largest chunks between quotes (") - TH1 case: - [0] TH1F 002_Al_N_01 - [1] Visible E_{T} (GeV) - [2] 100 0 100 - [3] Visible E_{T} (GeV) - [4] <empty> - [5] Y axis label - [6] myfolder - - TProfile - [0] TProfile Identifier - [1] "title of this histogram" - [2] xbins xlo xhi ylo yhi - [3] "x axis title" - [4] <empty> - [5] "y axis title" - [6] myfolder - - TH2 case: - [0] TH2F 2D_Identifier - [1] "title of this histogram" - [2] xbins xlo xhi ybins ylo yhi - [3] "x axis title" - [4] <empty> - [5] "y axis title" - [6] myfolder - **/ - HistoType hType(TH1); - // todo: should make an array of functions and delegate - StringVec m(NGROUPS); - m[TOTAL] = line; - StringVec chunks = split(line, [](int d) -> int { - return d == (int) '"'; - }); - const int minimumPossibleSize(3); - if (chunks.size() < minimumPossibleSize) { - return s; - } - StringVec typeAndName = split(chunks[0]); - m[TYPE] = typeAndName[0]; - m[NAME] = typeAndName[1]; - m[TITLE] = chunks[1]; - StringVec nBinsStartEnd = split(chunks[2]); - std::cout << "chunks[2]: '" << chunks[2] << "'" << std::endl; - if (nBinsStartEnd.size() < 3) { - return s; - } - m[NXBINS] = nBinsStartEnd[0]; - m[XLO] = nBinsStartEnd[1]; - m[XHI] = nBinsStartEnd[2]; - if (nBinsStartEnd.size() == 5) { // TProfile; limits given for Y axis also - hType = TPROFILE; - m[NYBINS] = ""; - m[YLO] = nBinsStartEnd[3]; - m[YHI] = nBinsStartEnd[4]; - } - if (nBinsStartEnd.size() == 6) { // 2D histogram; limits given for Y axis also - hType = TH2; - m[NYBINS] = nBinsStartEnd[3]; - m[YLO] = nBinsStartEnd[4]; - m[YHI] = nBinsStartEnd[5]; - } - m[XLABEL] = chunks[3]; - // chunks[4] is the space between two quoted strings - m[YLABEL] = chunks[5]; - std::string str = chunks[6]; - // remove all spaces - str.erase(std::remove(str.begin(), str.end(), ' '), str.end()); - m[FOLDER] = str; - /** - for (const auto &s:m){ - if (s.empty()) std::cout<<"ReadFromText: Problem parsing this line: "<<line<<std::endl; - found&=!(s.empty()); - }**/ - unsigned int nbinsX(0); - float xLo(std::nanf("")); - float xHi(std::nanf("")); - try{ - nbinsX = (unsigned int) (std::stoul(m[NXBINS])); - xLo = std::stof(m[XLO]); - xHi = std::stof(m[XHI]); - } catch (std::invalid_argument& e) { - std::cout << "Problem converting some of the arguments : " << m[NXBINS] << "; " << m[XLO] << "; " << m[XHI] << - std::endl; - hType = INVALID; - } - - switch (hType) { - case TH1: - { - // SingleHistogramDefinition(Titles_t name, Titles_t histoType, Titles_t title, NBins_t nbinsX,Var_t xLo, Var_t - // xHi,Titles_t xName); - SingleHistogramDefinition sx(m[NAME], m[TYPE], m[TITLE], nbinsX, xLo, xHi, m[XLABEL], m[YLABEL], m[FOLDER]); - return sx; - - break; - } - - case TPROFILE: - { - const unsigned int nBinsY = 0; - const float yLo(std::stof(m[YLO])); - const float yHi(std::stof(m[YHI])); - // SingleHistogramDefinition(Titles_t name, Titles_t histoType, Titles_t title, NBins_t nbinsX, NBins_t - // nbinsY,Var_t xLo, Var_t xHi, Var_t yLo, Var_t yHi, Titles_t xName, Titles_t yName, Titles_t theFolder=""); - SingleHistogramDefinition sx(m[NAME], m[TYPE], m[TITLE], nbinsX, nBinsY, xLo, xHi, yLo, yHi, m[XLABEL], m[YLABEL], - m[FOLDER]); - return sx; - - break; - } - - case TH2: - { - const unsigned int nBinsY(std::stof(m[NYBINS])); - const float yLo(std::stof(m[YLO])); - const float yHi(std::stof(m[YHI])); - // SingleHistogramDefinition(Titles_t name, Titles_t histoType, Titles_t title, NBins_t nbinsX, NBins_t - // nbinsY,Var_t xLo, Var_t xHi, Var_t yLo, Var_t yHi, Titles_t xName, Titles_t yName, Titles_t theFolder=""); - SingleHistogramDefinition sx(m[NAME], m[TYPE], m[TITLE], nbinsX, nBinsY, xLo, xHi, yLo, yHi, m[XLABEL], m[YLABEL], - m[FOLDER]); - return sx; - - break; - } - - default: - { - std::cout << "ReadFromText.cxx: Possible problem in parsing this line: \n" << line << "\nof file " << source() << - std::endl; - return SingleHistogramDefinition(); - } - } -} - -bool -ReadFromText::sourceExists() const { - struct stat buffer; - - return(stat(m_source.c_str(), &buffer) == 0); -} diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.h deleted file mode 100644 index fe4e7934f643cef6c796b684df2417feb90f6e1a..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromText.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -// -// ReadFromText.h -// HDef -// -// Created by sroe on 16/07/2015. -// - -#ifndef ReadFromText_h -#define ReadFromText_h -#include "IReadHistoDef.h" -#include "InDetPhysValMonitoring/SingleHistogramDefinition.h" -#include <vector> - -class ReadFromText: public IReadHistoDef { -public: - ReadFromText(); - ReadFromText(const std::string& source); - std::string source() const final; - std::string format() const final; - bool histoDefinitionMap(std::map<std::string, SingleHistogramDefinition>& usersMap) const; - bool insertDefinition(const SingleHistogramDefinition& oneDefinition); - bool initialize() final; - bool sourceExists() const; -private: - std::vector <SingleHistogramDefinition> m_vectorOfDefinitions; - SingleHistogramDefinition parseTextLine(const std::string& line); - std::string m_source; - const std::string m_format; -}; -#endif /* defined(ReadFromText_h) */ diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.cxx deleted file mode 100644 index fc8bba18d0a44e65b24c8e678a1eb9a772201958..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.cxx +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -// -// ReadFromXml.cxx -// HDef -// -// Created by sroe on 15/03/2016. -// - -#include "ReadFromXml.h" -#include "xmlUtilities.h" -#include "XmlContentHandlers.h" -#include "ErrorHandler.h" -#include <sys/stat.h> -#include <xercesc/sax2/SAX2XMLReader.hpp> -#include <xercesc/sax2/XMLReaderFactory.hpp> -#include "PathResolver/PathResolver.h" - -ReadFromXml::ReadFromXml() : m_source("unspecified file"), m_format("text/xml") { -} - -ReadFromXml::ReadFromXml(const std::string& source) : m_format("text/xml") { - m_source = PathResolver::find_file(source, "DATAPATH"); -} - -std::string -ReadFromXml::source() const { - return m_source; -} - -std::string -ReadFromXml::format() const { - return m_format; -} - -bool -ReadFromXml::histoDefinitionMap(std::map<std::string, SingleHistogramDefinition>& usersmap) const { - bool ok(true); - - for (auto i:m_vectorOfDefinitions) { - // std::cout<<i.str()<<std::endl; - if (i.empty()) { - continue; - } - if (not i.validType()) { - continue; - } - ok &= (usersmap.insert(std::pair<std::string, SingleHistogramDefinition>(i.stringIndex(), i))).second; - } - return(ok and(not usersmap.empty())); -} - -bool -ReadFromXml::insertDefinition(const SingleHistogramDefinition& /*oneDefinition*/) { - bool ok(true); - - // m_vectorOfDefinitions.push_back(oneDefinition); - return ok; -} - -bool -ReadFromXml::initialize() { - bool ok(true); - - if (m_source.empty() or(not sourceExists())) { - throw std::runtime_error("Could not open file in ReadFromXml initialize"); - } - ; - myXerces::Lib xercesFrame; // RAII xerces context - std::unique_ptr<xercesc::SAX2XMLReader> parser(xercesc::XMLReaderFactory::createXMLReader()); - // using SAX2 API, so register content and error handlers - HDefContentHandler handler(m_vectorOfDefinitions); - XmlErrorHandler errHandler; - parser->setContentHandler(&handler); - parser->setErrorHandler(&errHandler); - // open file and parse - parser->parse(m_source.c_str()); - return ok; -} - -bool -ReadFromXml::sourceExists() const { - struct stat buffer; - - return(stat(m_source.c_str(), &buffer) == 0); -} diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.h deleted file mode 100644 index 84f2814a6c87d3274fe0c2e7ebf8a09ba93ba85a..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/ReadFromXml.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -// -// ReadFromXml.h -// HDef -// -// Created by sroe on 15/03/2016. -// - -#ifndef IDVPM_ReadFromXml_h -#define IDVPM_ReadFromXml_h -#include "IReadHistoDef.h" -#include <vector> -#include "InDetPhysValMonitoring/SingleHistogramDefinition.h" - - -class ReadFromXml: public IReadHistoDef { -public: - ReadFromXml(); - ReadFromXml(const std::string& source); - std::string source() const final; - std::string format() const final; - bool histoDefinitionMap(std::map<std::string, SingleHistogramDefinition>& usersMap) const final; - bool insertDefinition(const SingleHistogramDefinition& oneDefinition); - bool initialize() final; - bool sourceExists() const final; -private: - std::vector <SingleHistogramDefinition> m_vectorOfDefinitions; - SingleHistogramDefinition parseTextLine(const std::string& line); - std::string m_source; - const std::string m_format; -}; -#endif /* ReadFromXml_h */ \ No newline at end of file diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/XmlContentHandlers.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/XmlContentHandlers.h deleted file mode 100644 index 4ff85275f055a3137b3f48f9d10385a508e12643..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/XmlContentHandlers.h +++ /dev/null @@ -1,347 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -// -// XmlContentHandlers.hpp -// HDef -// -// Created by sroe on 16/03/2016. -// - -#ifndef XmlContentHandlers_h -#define XmlContentHandlers_h - -#include <stdexcept> -#include <vector> -#include <xercesc/sax2/Attributes.hpp> -#include <xercesc/sax2/DefaultHandler.hpp> -#include "xmlUtilities.h" -#include <array> -#include <regex> -#include <cmath> -#include "InDetPhysValMonitoring/SingleHistogramDefinition.h" - - -unsigned int -partialHdefFromAttributes(SingleHistogramDefinition& s, const xercesc::Attributes& attrs) { - unsigned int nFilled(0); - // id, type and title are *possible* attributes - XercesString histoStrings[] = { - fromNative("id"), fromNative("type"), fromNative("title") - }; - const XMLCh* val(nullptr); - unsigned int idx { - 0 - }; - - for (auto& h:histoStrings) { - if ((val = attrs.getValue(h.c_str())) != 0) { - switch (idx) { - case 0: - s.name = toNative(val); - break; - - case 1: - s.histoType = toNative(val); - break; - - case 2: - s.title = toNative(val); - break; - } - nFilled++; - } - idx++; - } - return nFilled; -} - -unsigned int -xAxisFromAttributes(SingleHistogramDefinition& s, const xercesc::Attributes& attrs) { - unsigned int nFilled(0); - // title, n, lo and hi are currently *necessary* attributes - XercesString histoStrings[] = { - fromNative("title"), fromNative("n"), fromNative("lo"), fromNative("hi") - }; - const XMLCh* val(nullptr); - unsigned int idx { - 0 - }; - - IHistogramDefinitionSvc::axesLimits_t xaxis(std::nanf(""), std::nanf("")); - - for (auto& h:histoStrings) { - if ((val = attrs.getValue(h.c_str())) != 0) { - switch (idx) { - case 0: - s.xTitle = toNative(val); - break; - - case 1: - s.nBinsX = std::stof(toNative(val)); - break; - - case 2: - xaxis.first = std::stof(toNative(val)); - break; - - case 3: - xaxis.second = std::stof(toNative(val)); - break; - } - nFilled++; - } - idx++; - } - s.xAxis = xaxis; - return nFilled; -} - -unsigned int -yAxisFromAttributes(SingleHistogramDefinition& s, const xercesc::Attributes& attrs) { - unsigned int nFilled(0); - // title, n, lo and hi are currently *necessary* attributes - XercesString histoStrings[] = { - fromNative("title"), fromNative("n"), fromNative("lo"), fromNative("hi") - }; - const XMLCh* val(nullptr); - unsigned int idx { - 0 - }; - - IHistogramDefinitionSvc::axesLimits_t yaxis(std::nanf(""), std::nanf("")); - - for (auto& h:histoStrings) { - if ((val = attrs.getValue(h.c_str())) != 0) { - switch (idx) { - case 0: - s.yTitle = toNative(val); - break; - - case 1: - s.nBinsY = std::stof(toNative(val)); - break; - - case 2: - yaxis.first = std::stof(toNative(val)); - break; - - case 3: - yaxis.second = std::stof(toNative(val)); - break; - } - nFilled++; - } - idx++; - } - s.yAxis = yaxis; - return nFilled; -} - -unsigned int -zAxisFromAttributes(SingleHistogramDefinition& s, const xercesc::Attributes& attrs) { - unsigned int nFilled(0); - // title, n, lo and hi are currently *necessary* attributes - XercesString histoStrings[] = { - fromNative("title"), fromNative("n"), fromNative("lo"), fromNative("hi") - }; - const XMLCh* val(nullptr); - unsigned int idx { - 0 - }; - - IHistogramDefinitionSvc::axesLimits_t zaxis(std::nanf(""), std::nanf("")); - - for (auto& h:histoStrings) { - if ((val = attrs.getValue(h.c_str())) != 0) { - switch (idx) { - case 0: - s.zTitle = toNative(val); - break; - - case 1: - s.nBinsZ = std::stof(toNative(val)); - break; - - case 2: - zaxis.first = std::stof(toNative(val)); - break; - - case 3: - zaxis.second = std::stof(toNative(val)); - break; - } - nFilled++; - } - idx++; - } - s.zAxis = zaxis; - return nFilled; -} - -unsigned int -partialHdefFromText(SingleHistogramDefinition& s, const std::string& line) { - unsigned int nFilled(0); - enum RegXHistoGroups { - TOTAL, TITLE, NBINS, XLO, XHI, XAXIS, YAXIS, DUMMY, FOLDER, NGROUPS - }; - - std::string rex = - R"delim(^\s+"([^"]+)"\s+(\d+)\s+([-+.0-9eE]+)\s+([-+.0-9eE]+)\s+"([^"]+)"\s+"([^"]+)"\s*(.*)\s*$)delim"; - std::regex reg(rex); - std::smatch m; - - if (std::regex_match(line, m, reg)) { - const bool hasFolder = (m.size() == NGROUPS); - s.title = m[TITLE].str(); - s.xTitle = m[XAXIS].str(); - s.yTitle = m[YAXIS].str(); - s.xAxis = IHistogramDefinitionSvc::axesLimits_t(std::stof(m[XLO].str()), std::stof(m[XHI].str())); - s.nBinsX = std::stoi(m[NBINS].str()); - if (hasFolder) { - s.folder = m[FOLDER].str(); - } - nFilled = (int) m.size() - 1; - } - return nFilled; -} - -unsigned int -partialHdefFromTProfText(SingleHistogramDefinition& s, const std::string& line) { - unsigned int nFilled(0); - enum RegXHistoGroups { - TOTAL, TITLE, NBINS, XLO, XHI, YLO, YHI, XAXIS, YAXIS, DUMMY, FOLDER, NGROUPS - }; - - // text like: "Test of TProfile" 20 -50 50 0 200 "#eta" "testEntries" - std::string rex = - R"delim(^\s+"([^"]+)"\s+(\d+)\s+([-+.0-9eE]+)\s+([-+.0-9eE]+)\s+([-+.0-9eE]+)\s+([-+.0-9eE]+)\s+"([^"]+)"\s+"([^"]+)"\s*(.*)\s*$)delim"; - std::regex reg(rex); - std::smatch m; - - if (std::regex_match(line, m, reg)) { - const bool hasFolder = (m.size() == NGROUPS); - s.title = m[TITLE].str(); - s.xTitle = m[XAXIS].str(); - s.yTitle = m[YAXIS].str(); - s.xAxis = IHistogramDefinitionSvc::axesLimits_t(std::stof(m[XLO].str()), std::stof(m[XHI].str())); - s.yAxis = IHistogramDefinitionSvc::axesLimits_t(std::stof(m[YLO].str()), std::stof(m[YHI].str())); - s.nBinsX = std::stoi(m[NBINS].str()); - if (hasFolder) { - s.folder = m[FOLDER].str(); - } - nFilled = (int) m.size() - 1; - } - return nFilled; -} - -class HDefContentHandler: public xercesc::DefaultHandler { -public: - enum HistoTypes { - UNKNOWN, TH1, TPROFILE, TH2, TH3, TEFFICIENCY, NTYPES - }; - HDefContentHandler(std::vector<SingleHistogramDefinition>& defs) : m_histoType(UNKNOWN), m_numberFilled(0), - m_currentDefinition{}, m_definitions(defs), m_currentText() { - // nop - } - - void - startElement(const XMLCh* const /*uri*/, const XMLCh* const localName, const XMLCh* const /*qName*/, - const xercesc::Attributes& attrs) { - const static XercesString hdefStr = fromNative("hdef"); - const static XercesString hStr = fromNative("h"); - const static XercesString xStr = fromNative("x"); - const static XercesString yStr = fromNative("y"); - const static XercesString zStr = fromNative("z"); - unsigned int nFilled(0); - - if (localName == hStr) { - setHistoType(attrs); - nFilled = partialHdefFromAttributes(m_currentDefinition, attrs); - m_currentText.clear(); - } - if (localName == xStr) { - nFilled = xAxisFromAttributes(m_currentDefinition, attrs); - } - if (localName == yStr) { - nFilled = yAxisFromAttributes(m_currentDefinition, attrs); - } - if (localName == zStr) { - nFilled = zAxisFromAttributes(m_currentDefinition, attrs); - } - m_currentText.clear(); - m_numberFilled += nFilled; - } - - void - endElement(const XMLCh* const /*uri*/, const XMLCh* const localName, const XMLCh* const /*qName*/) { - const static XercesString hdefStr = fromNative("hdef"); - const static XercesString hStr = fromNative("h"); - const static XercesString xStr = fromNative("x"); - const static XercesString yStr = fromNative("y"); - - if (localName == hStr) { - std::string line = toNative(m_currentText); - if (m_histoType == TH1) { - unsigned int n = partialHdefFromText(m_currentDefinition, line); - m_numberFilled += n; - } - if (m_histoType == TPROFILE) { - unsigned int n = partialHdefFromTProfText(m_currentDefinition, line); - m_numberFilled += n; - } - - m_currentDefinition.m_empty = (m_numberFilled == 0); - m_currentDefinition.allTitles = m_currentDefinition.titleDigest(); - m_definitions.push_back(m_currentDefinition); - } - } - - void - characters(const XMLCh* const chars, const XMLSize_t length) { - m_currentText.append(chars, length); - } - -private: - HistoTypes m_histoType; - unsigned int m_numberFilled; - SingleHistogramDefinition m_currentDefinition; - std::vector<SingleHistogramDefinition>& m_definitions; - XercesString m_currentText; - void - setHistoType(const xercesc::Attributes& attrs) { - m_histoType = UNKNOWN; - const XMLCh* val(nullptr); - const static XercesString TH1Str = fromNative("TH1F"); - const static XercesString TProfileStr = fromNative("TProfile"); - const static XercesString TH2Str = fromNative("TH2F"); - const static XercesString TH3Str = fromNative("TH3F"); - const static XercesString TEffStr = fromNative("TEfficiency"); - XercesString t = fromNative("type"); - val = attrs.getValue(t.c_str()); - if (val == 0) { - return; - } - if (val == TH1Str) { - m_histoType = TH1; - } - if (val == TProfileStr) { - m_histoType = TPROFILE; - } - if (val == TH2Str) { - m_histoType = TH2; - } - if (val == TH3Str) { - m_histoType = TH3; - } - if (val == TEffStr) { - m_histoType = TEFFICIENCY; - } - } -}; - - - - - -#endif /* XmlContentHandlers_hpp */ diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/components/InDetPhysValMonitoring_entries.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/components/InDetPhysValMonitoring_entries.cxx index 7799a62a513c3855cb6ec1e9b5a87b181da924ef..f7f4a4fd66cab8e78bcdd3ba400dee56462f1651 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/components/InDetPhysValMonitoring_entries.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/components/InDetPhysValMonitoring_entries.cxx @@ -1,3 +1,6 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ #include "InDetPhysValMonitoring/InDetPhysValMonitoringTool.h" #include "../InDetPhysValTruthDecoratorAlg.h" #include "../InDetPhysHitDecoratorAlg.h" @@ -7,12 +10,10 @@ #include "../dRMatchingTool.h" #include "../TrackSelectionTool.h" #include "InDetPhysValMonitoring/HistogramDefinitionSvc.h" -#include "InDetPhysValMonitoring/AlgTestHistoDefSvc.h" #include "../AthTruthSelectionTool.h" #include "../DummyTrackSlimmingTool.h" -DECLARE_COMPONENT( AlgTestHistoDefSvc ) DECLARE_COMPONENT( HistogramDefinitionSvc ) DECLARE_COMPONENT( InDetPhysValMonitoringTool ) DECLARE_COMPONENT( InDetPhysValTruthDecoratorAlg )